(1)确定预期输出结果是测试用例必不可少的一部分。如果只有测试数据而无预期结果,那么就不易判断测试结果是否正确。
(2)程序员应避免测试自己的程序,程序设计机构不应测试自己的程序。
这是因为程序中的错误往往是由于程序员对问题说明的误解,由他来测试自己的程序就不易找出因这种误解而产生的错误。
此外,开发程序是一项建设性的工作,而测试则是一项破坏性的工作(证明程序有错),这对开发人员或机构来说在心理上是难以容忍的。
为了证明自己的程序没有错误或错误很少,他们往往不去选择容易发现错误的测试用例,而选择容易通过的测试用例。
当然,这并不意味着程序员都不能测试自己的程序,如单元测试通常就是由程序员自己测试的。
(3)彻底检查每个测试结果。如果不仔细检查测试结果,有些已经测试出来的错误也可能被遗漏掉。
(4)对非法的非预期的输入数据也要像合法的和预期的输入数据一样编写测试用例。
(5)检查程序是否做了应做的事是成功的一半,另一半是看程序是否做了不该做的事。
(6)除了真正没有用的程序外,一定不要扔掉测试用例。因为在改正错误或程序维护后还要进行重新测试。
(8)程序模块经测试后,残存的错误数目往往与已发现的错误数目成比例。
实践证明,程序中的大量错误仅与少量的程序模块有关,因此当A模块找出的错误比B模块多得多时,很可能A模块残存的错误仍比B模块残存的错误多多。