1. 测试是为发现错误而执行程序的过程

  人类行为总是倾向于具有高度目标性。如果我们的目标是为了证明程序中不存在错误,我们就会潜意识的选择可能较少导致程序失效的测试数据。如果我们的目标在于证明程序中存在错误,我们设计的测试数据就有可能发现更多的问题。

  软件测试更适宜被视为试图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试用例,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。

2. 原则

  1. 测试用例中一个必需部分是对预期输出或结果进行定义
  2. 应当彻底检查每个测试的执行结果
  3. 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
  4. 检查程序是否“未做应该做的”,还要检查程序是否“做了其不应该做的”
  5. 计划测试工作时不应默许假定不会发现错误

3.小结

  1. 软件测试是为发现错误而执行程序的过程
  2. 一个好的测试用例具有较高的发现某个尚未发现的错误的可能性。
  3. 一个成功的测试用例能够发现某个尚未发现的错误