软件测试的定义
测试是为发现错误而执行程序的过程
软件测试的心理学
通过测试来增加程序的价值,是指测试提高了程序的可靠性或质量。提高了程序的可靠性,是指找出并最终修改了程序的错误。因此不要只是为了证明程序能够正确运行而去测试程序;相反,
应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都成立),然后测试程序,发现尽可能多的错误
如果我们的目的是证明程序中不存在错误,那就会在潜意识中倾向于实现这个目标,也就是说,我们会倾向于选择可能较少导致程序失效的测试数据。另一方面,如果我们的目标在于证明程序中存在错误,我们设计的测试数据就有可能更多地发现间题
把程序当成病人,要找出病因
软件测试的原则
- 测试用例中一个必需部分是对预期输出或结果的定义
- 程序员应当避免测试自己编写的程序
- 编写软件的组织不应当测试自己编写的软件
- 应当彻底检查每个测试的执行结果
- 测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况
- 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
- 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
- 计划测试工作时不应默许假定不会发现错误
- 程序某部分存在更多错误的可能性,与该部分已发现错误的数目成正比
- 软件测试是一项极富创造性、极具智力挑战性的工作
总结
- 软件测试是为发现错误而执行程序的过程
- 一个好的测试用例具有较高的发现某个尚未发现的错误的可能性
- 一个成功的测试用例能够发现某个尚未发现的错误
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。