软件测试的重要原则-转载自《软件测试的艺术》
软件测试中大多数重要的问题都是心理学问题,我们可以归纳出一系列的测试指导原则。这些原则看上去大多都是显而易见的,但常常总是被我们忽视掉。
一.测试用例中一个必须部分是对预期输出或结果进行定义。
一个测试用例必须包括两个部分:
1.对程序的输入数据的描述。
2.对程序中上述输入数据下的正确输出结果的精确描述。
二.程序员应当避免产生自己编写的程序
任何作者都知道或应该知道,亲自编辑或校对自己的作品确实是个不好的做法。作者清楚某段文字要说明的是什么,实际表达出来的意思却南辕北辙,而自己可能却意识不到。况且实际上也不会想在自己的作品中找出什么错误来。对程序员而言,也存在相同的问题。
这并不意味着程序员测试自己的程序是不可能的。当然,我们的言下之意是,让其他人来测试程序会更加有效,也会更容易测试成功。这一论据并不适合于“调试”(纠正已知的错误)。“调试”由程序的编写人员来完成会有效得多。
三、应当彻底检查每个测试的执行结果
这个原则可能是最显而易见的原则,但也同样常常被忽视。我们见过大量的例子,即便错误的症状者输出清单中可以清楚地看到,但还是没有找出那些错误来。换言之,在后续测试中发现的错误,往往是前面的测试遗漏掉的。
四、测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况。
例如,很少有人会向程序输入1,2,5以证明程序不会错误地将其解释为一个不规则三角形,而不是一个无效三角形。因此,针对为预料到底和无效输入情况的测试用例,似乎比针对有效输入情况的那些用例更能发现问题。
五、检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”。
六、应避免测试用例后即弃,除非软件本身就是一个一次性的软件。
八、计划测试工作时不应默许假定不会发现错误
九、程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比。