Open summer506hai opened 1 year ago
(1)对程序的输入数据的描述 (2)对程序在上述输入数据下对正确输出结果的精确描述
由于程序员错误的理解了疑难定义或规范,导致程序中存在错误
检查程序是否 "未做其应该做的" 仅是测试的一半,测试的另一半是检查程序是否 "做了其不应该做的"
如果对程序的更改导致某个先前可以执行的部分发生了故障,这个故障往往是不会被发现的。保留测试用例,当程序其他部件发生变动后重新执行,这就是 "回归测试"
如果一个程序的某个部分远比其他部分更容易产生错误,那么这种现象告诉我们,为了使测试获得更大的成效,最好对这些容易存在错误的部分进行额外的测试
第2章 软件测试的心理学和经济学
测试是为发现错误而只想程序的过程
在大多数情况下,未能找出错误的测试被认为是 "不成功的"
软件测试的原则
1.测试用例中一个必需部分是对预期输出或结果的定义
2.一个测试用例必须包括两个部分:
(1)对程序的输入数据的描述
(2)对程序在上述输入数据下对正确输出结果的精确描述
3.程序员应该避免测试自己编写的程序
由于程序员错误的理解了疑难定义或规范,导致程序中存在错误
4.编写软件的组织不应当测试自己编写的程序
5.应当彻底检查每个测试的执行结果
6.测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况
检查程序是否 "未做其应该做的" 仅是测试的一半,测试的另一半是检查程序是否 "做了其不应该做的"
7.应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
如果对程序的更改导致某个先前可以执行的部分发生了故障,这个故障往往是不会被发现的。保留测试用例,当程序其他部件发生变动后重新执行,这就是 "回归测试"
8.计划测试工作时不应默许假定不会发现错误
9.程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
如果一个程序的某个部分远比其他部分更容易产生错误,那么这种现象告诉我们,为了使测试获得更大的成效,最好对这些容易存在错误的部分进行额外的测试
10.软件测试是一项极富创造性,极具智力挑战性的工作
小结