软件开发需要一个过程,而测试工作却渗透到从分析、设计直到编程的各个阶段中。随着测试的发展,软件测试原则也在逐渐完善。软件测试的基本原则有助于测试人员尽早尽可能多的发现缺陷,并负责跟踪和分析软件中的问题,从而持续改进测试过程。

原则1: 测试显示缺陷的存在
测试可以减少软件中存在缺陷的可能性,但即使测试没有发现任何缺陷,也不能证明软件或系统是完全正确的,或者说是不存在缺陷的。
原则2: 穷尽测试是不可能的
穷尽测试是不可能的,每个测试都只是抽样测试。因此,必须根据测试的风险和优先级,控制测试工作量,在测试成本、收益和风险之间求得平衡。
原则3: 测试的尽早介入
越是测试后期,为修复缺陷所付出的代价就会越大。因此,软件测试人员要尽早地且不断地进行软件测试,以提高软件质量,降低软件开发成本。
原则4: 缺陷的集群性
缺陷并不是平均而是集群分布的,如果在一个地方发现了很多缺陷,那么通常在这个模块中可以发现多的缺陷。因此,测试过程中要充分注意错误集群现象,对发现错误较多的程序段或者软件模块,应进行反复的深入的测试。
原则5: 杀虫剂悖论
在测试中,同样的测试用例被一遍一遍反复使用时,发现缺陷的能力就会越来越差。为克服这种现象,测试用例需要经常的评审和修改,不断增加新的不同的测试用例来测试软件或系统的不同部分,测试用例永远是新的。
原则6: 测试活动依赖于测试内容
项目测试相关的活动依赖于测试对象的内容,没有两个系统可以以完全相同的方式进行测试。对于每个软件系统,比如测试策略、测试技术、测试工具、测试阶段以及测试出口准则等等的选择,都是不一样的。
原则7: 没有失效不代表系统是可用的
系统的质量特征不仅仅是功能性要求,还包括了很多其他方面的要求比如稳定性、可用性、兼容性等等。假如系统无法使用,或者系统不能完成客户的需求和期望,那么,这个系统的研发是失败。
