所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。软件应当是可预测且稳定的,不会给用户带来意外惊奇。
软件测试的重要原则:
1. 测试用例中一个必需部分是对预期输出或结果进行定义
一个测试用例必需包括两部分:对程序的输入数据的描述,对程序在上述输入数据下的正确输出结果的精确描述
2. 程序员应当避免测试自己编写的程序
让其他人来测试程序会更加有效,也会更容易测试成功,但调试由程序的编写人员来完成会有效得多
3. 编写软件的组织不应当测试自己编写的软件
由客观、独立的第三方来测试会比项目或编程组织测试有效得多
4. 应当彻底检查每个测试的执行结果
在后续测试中发现的错误,往往是前面的测试遗漏掉的
5. 测试用例的编写不仅应当根据有效和预料到的输入情况,也应当根据无效和未预料到的输入情况
针对未预料到的和无效输入情况的测试用例,似乎比针对有效输入情况的那些用例更能发现问题
6. 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
为原则5的必然结果,必需检查程序是否有我们不希望的负作用
7. 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
保留测试用例,当程序其他部件发生更动后重新执行,即所谓的回归测试
8. 计划测试工作时不应默许假定不会发生错误
所谓测试,就是为发现错误而执行程序的过程
9. 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
错误总是倾向于聚集存在,而在一个具体的程序中,某些部分要比其他部分更容易存在错误。为了使测试获得更大的成效,最好对这些容易存在错误的部分进行额外的测试
10. 软件测试时一项极富创造性,极具智力挑战性的工作
记住:
1. 软件测试是为发现错误而执行程序的过程
2. 一个好的测试用例具有较高的发现某个尚未发现的错误的可能性
3. 一个成功的测试用例能够发现某个尚未发现的错误