我没系统的学习过软件测试相关的技术,从事软件测试岗位已经有3年的时间了。之前从事过2年的软件开发,所以在这里仅仅表述下这3年在软件测试工作中遇到的一些问题和想法。

  1、Testcase设计的源头

  这是个基本问题,偏离了主题的软件测试无论如何进行,结果都是错误的。软件测试工作中测试的testcase必须是从用户的使用角度和需求出发来设计,千万不能根据代码或者开发过程中的概要设计和详细设计来做testcase的设计。否则在细致的testcase都不能得出一个正确的结果。

  刚毕业的几年里我在**大型软件公司做开发工作,这是一家比较注重开发而轻测试的公司,所以大部分开发人员即承担着开发工作也承担着测试工作。

  中国有句古话“自刀削不了自刀把”,在软件测试上也同样可以应用。当时的testcase都是我一个人设计,然后测试。就是自己写代码自己测试,所以testcase的设计都是按照代码,概要设计,详细设计来写,因此测试的过程中当然会发现不到问题。如果是按照代码来设计testcase基本是发现不了任何问题,如果是安装详细设计和概要设计来写testcase,就发现不到需求上的错误,而且往往概要设计和详细设计在不同人的眼里也许理解也不一样,写出来的功能也可能会千差万别。

  所以testcase的设计一定要脱离开发,脱离实践。就按照用户的日常的使用和对用户软件的需求来做。这就要求QA一定要参加到前期的用户需求调研工作当中去。

  在一次客户交流的活动中听到客户如下的抱怨:“购买我们的产品就是因为我们产品设计特征符合他的需要,然而在我们的一次升级中却改变了这个特征。让他很不爽”。

  测试人员是软件交付的最后一道关口,正是因为没有真正了解到客户的需求,导致了整体软件的更新偏离了用户的需求,把用户关心的东西抹去。

  其实能抱怨的客户都是好客户,我们要长期与客户沟通,了解其真正的需求,从而去设计产品,测试产品,这样生产出的产品才有其存在的价值。因此我们不是要做全球最优秀的产品,也不是要做出没有bug的产品,只需要做出让客户满意的产品就好。而客户满意的产品,就是Testcase设计的目的。

  2、测试树

  这是我自己想到的一个词,测试的产品可以比做一棵大树,每个产品都有一个主干,分支就是这个产品的各个功能,每个功能还有它的枝叶。所以测试的过程就是沿着主干去测试各个分支以及分支的枝叶。

  每个release发布的时候,都需要确保主干中各个分支能够运行通过,这部分当然最好是由automation来做。不过这个测试希望是由发布release之前开发人员们自己测试好,所以开发者要做好UI和IT测试。因为一旦分支功能不能正常运行,后续的测试工作是无法进行的,而且一旦运行不通过也会让测试人员感到很懊恼。所以有的书中把这个路径定义为快乐路径,这个路径没走通,当然也不会快乐了。

  这样由主干道枝干,在进行到枝叶,一步步的测试就可以完成了。在测试每个枝叶的过程,加入error handle的测试,就基本可以构建出一颗大树了。

  3、不要相信开发人员的话

  测试过程中会发现各种问题,在找到开发人员分析问题的时候,开发人员经常会说出:“这个不是问题,我们就是这样设计的、我们不能调用到**的函数,所以只能这么做、这个问题解决不了。等……“身为开发者,往往都会对自己的代码有着充分的信心和自信。也许他们做的是对的,但是设计出了问题,他们看不到。也许是他们没有找到一种更好的解决方案。

  在软件细节的领域上测试人员不如开发人员掌握的详细,所以初级测试者往往会被开发人员”忽悠“。接受了开发人员的思想。所以导致很多问题的流出。

  因此在发现问题的时候,不要管产品当前的设计如何,因为也许设计本身就是错误的。

  不要管代码能不能做到,因为那是开发人员的事情。测试人员要做的事情就是以用的角度来使用这个产品,任何不爽的地方也许用户也和你一样不爽。

  人都是有定向思维,很难走出自己的圈子,所以开发人员站在开发的角度上认为一些问题都不是问题。所以在测试过程中要坚持自己立场,不要轻易被开发者讲出的技术理由改变看法。

  4、好的产品就是简单的产品

  美国的陪审员都是普通民众,他们不需要有任何专业知识,越普通越好,所以他们才能按照人情常理来断案。

  优秀的产品也一样,越优秀的产品,就可以让它的使用者越普通,没有任何专业知识就可以熟练的掌握和操作。

  我最早使用的搜索引擎是搜狐,它把搜索条放在了它主页的中间。后续的其他网站也是如此,当需要搜索时,都需要打开他们的门户网站,然后找到搜索条,在进行查找。直至百度,谷歌的出现。进入主页我就可以直接进行搜索,而百度后续又做出了词条联想功能,在搜索之后,网页下还有许多联想出来的词条供用户使用,叫做”相关搜索”所以因为这个功能,我更多的时候喜欢用百度,因为我的操作变得更简单了。现在谷歌也引进了这个功能,不过在商务中有个”领先法则“,这点注定了谷歌这个功能超越不了百度了。

  武功的最高境界是忘却,无招胜有招,测试也许也是如此,把”自己伴成用户“,”在用户的环境下“正常使用就完成测试了。这两个条件都不可缺少,第二个条件经常被人遗忘。这里举例说明下:

  用户的环境:“软件用户人数,同时在线人数,产品所处环境气候温度,产品网络环境等”。

  总之,明确测试目的是前提,在不偏离前提下模拟用户使用环境和方法进行针对性的测试,步步为营满足用户需要即可做好测试工作,保证软件质量。当然,天下武功唯快不破,加强自动化测试覆盖率更是提高软件产品质量的重中之重。

本文转载自51Testing软件测试网,查看更多:http://www.51testing.com/html/news.html