如何写一份靠谱的软件测试计划?

发表于:2014-08-08来源:uml.org.cn作者:吴朝东点击数: 标签:测试计划
测试计划应该是整个测试流程中第一份测试文档了,但是一般情况下去不是测试人员学习的第一站。或许是因为万事开头难的缘故,测试计划确实挺让人纠结了。

  (一)——万事开头难

  测试计划应该是整个测试流程中第一份测试文档了,但是一般情况下去不是测试人员学习的第一站。或许是因为万事开头难的缘故,测试计划确实挺让人纠结了。

  很多有了一定的经验的测试人员在教新人的时候第一步都不是按照测试流程先从测试计划开始,而是让从测试用例的执行开始——这虽是无奈之举,但是对于测试新手来讲,还是可以学习很多东西的。闲话扯得有点远,回到我要介绍的正题上面来,计划测试。

  对,是计划测试,不是测试计划。尽管我们刚才讨论了一些关于测试计划的内容。但是我们需要关心的的确是计划测试,而不是测试计划。永远要记住,我们是在做测试,而不是在完成文档,尽管我们经常需要诸如测试计划测试用例测试报告之类的各种各样的文档,但是那些都不是测试的本质。

  既然是计划测试,那么我们首先要搞明白测试到底要干什么。笔者将它抽象概括为:特定的人在特定的时间在特定的地方做了特定的事情以实现特定的目标。其实任何一项工作都可以抽象成前面这句话,所以我们还需要将这句话与我们所从事的测试工作联系起来。

  所谓人,当然是指测试人员了,而“特定的人”则坚持的是“按能力分工”各司其职的原则。测试用例设计人员做测试设计,测试用例执行人员做执行用例等等。

  所谓“特定的时间”,是指我们的测试过程是分成各种阶段的,各种阶段所侧重的测试要点是不一样的。

  所谓“特定的地方”则是指测试环境,这是指我们必须在计划我们的测试工作的时候就要考虑到某些特殊类型的测试是需要特殊的环境的,这个环境包括了硬件设施(如手机测试你总得拿个手机来试试吧,总不能一直纸上谈兵来着)环境,计算机硬件环境和软件环境。

  所谓“特定的事情”即是指我们测试技术本身了,也就是诸如测试用例设计,测试用例执行,写测试代码,部署测试环境等等。

  所谓“特定的目标”即是指我们测试的目的。测试是需要成本的,人力物力都是需要的,既然我们对测试有投入那么我们是期望获得一些东西的。测试最常喊的口号是改善质量水平,也有一些还在喊保证质量的,这就是我们所谓“目标”。不过,可惜的是这些口号并没有多大的用处,因为在实际的软件项目中我们更加看重的则是可度量的测试工作,也就是说我们要由一个可度量的“目标”——亦即“特定的目标”——可能是发现了多少bug可能是测试覆盖率达到了多少等等。

  我们在计划测试的时候,需要考虑的不仅仅是测试本身,从上面的分析可以看出,我们要关注“人、时、地、事、责”,也就是古代中华所讲究的“天时地利人和”之类的东西。需要指出的是,在我们计划测试的过程中,最常被人忽略的就是我们测试应该达到什么目标这个问题了。在计划测试的时候,切记要约定好测试的目标,这一目标反映在测试计划文档中即“测试结束标准”。

  关于计划测试的内容有很多,在接下来的文章中,笔者将逐一展开与大家分享。

  (二)——测试计划

  在前一篇文章中,我们提到了计划测试要考虑到人、事、时等诸多问题,也提到了计划测试重在计划这个过程而不在测试计划这个文档。

  这篇文章却要专门讨论一些测试计划相关的话题。网络上现在已经泛滥了关于测试计划的模板——用泛滥只是表示很多,并没有贬损的意思,笔者才疏一时想不到好的词语——这些模板对于制作一份测试计划文档来讲非常有用,但是生搬硬套这些文档却并不能帮助我们很好的计划我们的测试工作,但是这些测试计划中的主题却可以很好地帮助我们计划我们的测试工作并有效避免疏漏。

  我并不会给出一份我所常用的测试计划模板,因为这些模板实在已经太多,已经够用了。笔者在测试工作中,曾经写出两种测试计划,一种类似于当前网络上流传的版本,另外一种则是在笔者的某篇blog文章中提到的所谓“实用主义测试计划”——事实上是更接近测试设计书的一个文档,但是确实有些公司把它称之为测试计划,而在本系列文章中笔者将不再讨论这种测试计划,也不会考虑细到“怎样设计某个功能的测试用例”的程度的计划工作。

原文转自:http://www.uml.org.cn/Test/200911128.asp