第2章 软件测试的心理学和经济学
软件测试的心理学
对于测试,更为合适的定义应该是:
“测试是为发现错误而执行程序的过程”。
软件测试的经济学
黑盒测试
黑盒测试(又称为数据驱动的测试或输入/输出驱动的测试)是一种重要的测试策略。在这种方法中,测试数据完全来源于软件规范(不需要去了解程序的内部结构)。如果想通过黑盒测试发现程序的所有错误,判定的标准是“穷举输入测试”。但是基于多方面考虑,穷举输入测试是无法实现的。这个有两方面的含义,一是我们无法测试一个程序以确保它是无措的,而是软件测试中需要考虑的一个基本问题是软件测试的经济学。
白盒测试
白盒测试(又称为逻辑驱动测试),这种方法允许我们检查程序的内部结构。这种测试策略对程序的逻辑结构进行检查,从中获取测试数据。“穷举路径测试即完全的测试”是一个错误的论断,原因有三:
- 即使是穷举路径测试也决不能保证程序符合其设计规范
- 程序可能会因为缺少某些路径而存在问题
- 穷举路径测试可能不会暴露数据敏感错误
软件测试的原则
- 测试用例中的一个必须部分是对预期输出或结果的定义
- 程序员应当避免测试自己的程序
- 编写软件的组织不应当测试自己编写的软件
- 应当彻底检查每个测试的执行结果
- 测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况
- 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
- 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
- 计划测试工作时不应当默许假定不会发生错误
- 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
- 软件测试是一项极富创造性、极具智力挑战性的工作
第2章小结
- 软件测试是为发现错误而执行的过程
- 一个好的测试用例具有较高的发现某个尚未发现的错误的可能性
- 一个成功的测试用例能够发现某个尚未发现的错误