软件测试的艺术——一次自评价测试

一次自评价测试

所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。软件测试应当是可预测且稳定的,不会给用户带来意外惊奇。
测试一个相当简单的程序

这个程序从一个输入对话框中读取三个整数值。这三个整数值代表三角形的三边的长度。程序显示提示信息,指出该三角形究竟是不规则三角形、等腰三角形还是等边三角形。
对测试用例的评判:

是否有测试用例是一个有效的不规则三角形?
是否有测试用例是一个有效的等腰三角形?
是否有测试用例是一个有效的等边三角形?
是否至少有 3 个测试用例覆盖了等腰三角形的三种情况?如:3、3、4,3、4、3,4、3、3。
是否有测试用例为某边的长度为 0 ?
是否有测试用例为某边的长度为负数?
是否有测试用例其中两边之和等于第三边的长度?
是否至少有 3 测试用例覆盖了两边之和等于第三边的全部 3 种情况?
是否有测试用例其中两边之和小于第三边的长度?
是否至少有 3 测试用例覆盖了两边之和小于第三边的全部 3 种情况?
是否有测试用例为 3 条边的长度均为 0 ?
是否有测试用例输入的边长符合不规则三角形要求但为非整数?
是否有测试用例输入的边长个数不对?
对于每一个测试用例,除了定义输入情况以外是否同时定义了相对的预期输出值?

(——来自作者——)
当然,测试用例集即使满足了上述条件,也不能确保能查找出所有可能旳错误。但是,由于问题1至问}题13代表了该程序不同版本中已经实际出现的错误,对该程序进行的充分测试至少应该能够暴露这些错误。
开始关注自己的得分之前,请考虑以下情况:以我们的经验来看,高水平的专业程序员平
均得分仪7.8(满分14)。如果读者的得分更高,那么祝贺你。如果没有那么高,我们将尽力帮助你。

即使是这样一个小程序的测试,都不那么容易。由上面这个例子来看,若要完全地测试一个复杂的、实际运行的程序似乎是不太可能的。
情况并非如此! 尽管充分测试的难度令人望而生畏,但这是软件开发中一项非常必需的任务,也是可以实现的一部分工作。

你可能感兴趣的