你要对系统中的哪个部分先进行测试?前置测试模型可以帮助你优化这些次序,管理项目级的计划并驾驭项目风险。
虽然大多数人都认同模型的重要性,但在开发周期中,测试模型并没有受到应有的关注。V模型是最广为人知的测试模型,不过很多测试人员仍对V模型不是很了解。V模型还受到很多质疑,其中Brian Marick(《The Craft of Software Testing9 (Prentice Hall, 1995)》一书的作者就曾对V模型提出过一些中肯的批评。在《软件测试:V模型,还是X模型?》文章中,我们讨论了X模型,该模型覆盖了Marick的意见,并由此形成了一个相适的测试模型,而在《软件测试:不可忽略的阶段》文章中,我们已经讨论了V模型。在《软件测试:前置测试分析》文章中,我们将V模型和X模型相结合,提出了前置测试模型,该模型沿用了前者的长处,同时又尽量弥补了前者的不足。在本文中,我们将说明实行“测试驱动开发”所能带来的益处。
前置测试的计划
附图“一个复杂的标准”描述的是IEEE标准829-1998中提供的测试计划的概念性结构。然而一些批评家曾认为该标准并不切合实际情况,仅仅是书面出版物而已。
图1 一个复杂的文档计划结构
从图中可以看到,该标准将测试计划分为多个不同的层次,其中也包括个人文档部分,这些文档可以作为整个较大规模的文档,即单独的测试计划(例如单元测试计划)的组成部分。而主测试计划则最终可以成为项目计划的一个组成部分。
我们将逐层往下看,并探讨一下这些层次是否真的对我们的工作有帮助。
主测试计划组合了一整套的测试计划,该计划主要考虑的是,系统作为一个整体时必须正常运作。通常,在一个分计划(详细计划)中应描述相应的单元测试、集成测试、特殊测试及系统测试。其中,特殊测试是一种综合性的测试,而并不是被应用所驱动的那种测试,可以是诸如压力测试、安全性测试或者可用性测试等等。相应地,在各分测试计划中,分别组合了各自的一套性能或功能,以确保相关的单元测试、集成测试、特殊测试及系统测试内容能够正常运作。对于每一个性能和功能来说,一份测试设计说明可以对如何验证其正常运作进行了描述。每一份测试用例的设计说明都要标明相关性能或功能是如何工作的。
测试计划结构带来了很多的益处。虽然很多测试人员认为IEEE标准提供了大量冗余的文档,这些文档并没有太多价值,但我们并不这么认为。我们并不反对象X模型中所提倡的写完即交付的测试计划文档,但我们更提倡记录重要的测试计划信息,并将其作为容易记忆的内容,进行充分的共享与重复利用,以及对其进行持续改进。
对很多人来说,测试计划主要是对测试用例的收集整理,但收集起来后文档可能会变得很大,很难进行管理。其实从图中可以看到,标准结构可以帮助组织和管理测试用例,由此也体现了该结构所具有的直接的价值。
我们应提前定义好可重用的测试设计说明,确定如何在通用的情形下进行测试。这些说明可以防止大量的重复工作,使我们能顺利开展可靠的测试,而不至于造成时间上的延误。同样地,该结构可以帮助我们定义好可重用的测试用例及可选择的资源分配。另外,该结构和测试设计说明将有助于在必要的时候重复创建测试用例。