在软件测试领域中有业界公认的7项基本原则。了解这7项原则,可以让我们正确的认识测试,更好的进行测试。
这7项原则分别是:
1.软件测试能够发现软件存在缺陷,但不能证明软件没有缺陷
软件测试能够发现软件潜在的缺陷,好的测试可以使软件中遗留的缺陷非常少。这使得软件测试的作用被夸大。甚至有些人认为只要通过了软件测试的软件,就不再存在任何缺陷,就可以放心的使用。这种把软件测试神话了的现象是违背这一原则的。实际上即使软件测试发现任何缺陷,也不能证明软件当中就没有缺陷,软件就是完全正确的。
2.穷尽软件测试是不可行的
理论上我们希望在软件投入使用之前能够通过软件测试,把各种输入和前提条件的组合都测试一遍。但在实际上这种穷尽的软件测试是不可能实现的。一方面这种穷尽的软件测试所消耗的工作量巨大,软件的收益和成本不成比例;另一方面软件中存在。一些无关紧要的缺陷,并不会影响软件的使用。所以软件通常会遵循一个 good enough原则——通过衡量测试的投入产出比,测试既不能太少,也不能太过。
3.软件测试应尽早介入
软件测试应当尽早地介入软件开发过程,这样就可以尽早的地发现软件缺陷,而越早发现软件缺陷,缺陷的修复成本就会越小。所以让测试人员参加需求开发过程,确认每条需求的正确性、可测试性等,可以有效地节省开发成本。
4.缺陷的集群性
软件测试也是符合28原则的,即80%的缺陷只存在20%的模块当中。在测试的实践当中也会发现,如果你在某个模块发现了缺陷,那么在这模块当中可能就会存在不止一个缺陷。这就是缺陷的集群性。
5.杀虫剂悖论
测试中的杀虫剂现象,有两种情况:一种情况是同一个软件由同一个人测试,那么他在几天后就会发生杀虫剂现象;另外一种情况是同样的测试用例对同一个软件重复测试,也会发生杀虫剂现象。对于后者需要对通过对测试用例的定期评审和完善来克服,对于前者则需要采用轮流测试的方式来克服。
6.软件测试活动依赖于软件测试背景
不同领域的软件测试都有它自己的特殊的测试策略。比如,军用软件会重视可靠性和安全性的测试,信息化系统软件则会强调压力测试等性能的测试。
7.无法使用的软件不需要测试
如果一个软件根本无法正常使用,或者他最主要的软件功能都不能正常使用这样的软件是完全没有必要进行测试的。