跳到正文
IGCSE·Tuition
计算机科学 · 课程

用要求来说明测试用例的理由

挑选测试数据很容易,说明每个值为什么重要,却常常是被留空的那一部分。

本页内容
  1. 怎样为测试用例找理由?
  2. 例题
  3. 要提防的错误
  4. 自我检测
  5. 接下来学什么

测试用例(test case)是一个输入、你预期的输出,以及把两者与某条要求联系起来的理由。有了理由,一个数字才成为证据。题目可能要求你选择测试数据、说出数据类型,或解释为什么选某个值。

这一课属于解题说明单元。它运用了验证、核实与测试中的正常、边界和无效数据概念,也与说明变量的用途相连。

怎样为测试用例找理由?

分三步。

  1. 慢慢读要求。 在界限和决定界限的词下面画线:“从 0 到 20”包含两端,“超过 100”不包含 100。
  2. 按类型选值。 选一个正常值、每个界限上的值、每个界限外紧挨的值,必要时再加一个类型错误的值。
  3. 写出输入、预期结果和理由。 理由要指出被检验的是要求的哪一部分。

可以用这个句式:“这个测试检验 ___,因为要求说 ___,所以程序应该 ___。”

例题

要求:测验分数必须是 0 到 20(含)的整数。有效分数被接受,其他的被拒绝。

测试数据类型预期理由
10正常接受范围内的典型值。
0边界接受“从 0”包含下限,所以 0 必须通过。
20边界接受“到 20(含)”包含上限。
−1边界,无效拒绝比下限小 1,检验下限的判断是否太宽松。
21边界,无效拒绝比上限大 1,检验上限的判断是否太宽松。
“abc”类型无效拒绝要求说整数,所以文字不能被接受。

用错误的规则检验逻辑。 假设代码在 Score > 0 AND Score < 20 时接受。那么 0 和 20 会被拒绝,与表格矛盾。边界行 0 和 20 暴露了错误;只用正常值 10 会通过,错误就被掩盖。

要提防的错误

不好的计划是这样的:

测试数据: 5、10、15。理由: 检查它能不能用。

三个值都是正常值,所以发现不了错误的比较。“检查它能不能用”也没有提到要求。

改正:保留一个正常值,加上 0、20、−1 和 21,并给每个值一个引用规则的理由,例如“20 检验上限是否包含在内”。

自我检测

1. 要求:密码长度必须是 8 到 12 个字符。给出四个测试长度,并为每个写出理由。

显示答案
  • 8 个字符: 边界,接受,因为规则包含下限 8。
  • 7 个字符: 边界,拒绝,因为刚好低于下限。
  • 12 个字符: 边界,接受,因为规则包含上限 12。
  • 13 个字符: 边界,拒绝,因为刚好高于上限。

还可以加上第五个正常长度,例如 10。

2. 要求:订单总额超过 RM100 时给折扣。为什么测试 RM100 有用?预期结果是什么?

显示答案

“超过 RM100”表示严格大于 100,所以 RM100 本身没有折扣。测试 RM100 可以看出程序是否错用了 >= 而不是 >。第二个测试 RM101 应该得到折扣。

3. 某个测试计划对于规则“年龄从 12 到 18”只用了 4、9 和 14。缺了什么?

显示答案

缺少边界数据(12 和 18),也缺少刚好在规则之外的值(11 和 19)。只有 14 在范围内,4 和 9 都离范围很远,所以这个计划完全没有测试界限。应加上 12、18、11 和 19,并写出理由。

接下来学什么

测试失败之后,你需要说明如何修正错误。这是描述修正,而不只是写出代码这一课的技能。安全的 Python 推理沙盒可以让你对自己的规则运行小型测试。

如果你的测试值合理,但理由总是含糊,我们的老师可以在线上一对一计算机科学补习中和你一起整理。

常见问题

正常数据、边界数据和无效数据有什么区别?

正常数据是程序应该接受的典型值。边界数据正好位于规则的界限上,或紧挨着界限。无效数据是程序应该拒绝的值。好的测试计划会用到三种数据,并为每一种写出理由。

为什么要测试刚好在边界之外的值?

错误通常藏在边缘,例如规则需要 >= 却写成 >。界限上的值和刚好在界限外的值,能显示程序用的是哪种比较。只测试远离界限的值,发现不了这类错误。

需要写出预期结果吗?

需要。没有预期结果的测试无法判定通过或失败。要写出输入、预期输出和理由。理由应该引用要求,并用规则里的词,例如“至少”“超过”或“介于”。

资料来源

  1. Cambridge IGCSE Computer Science 0478 syllabus page

更新于:

下一步

如果你能列出合理的测试值,理由却只是“检查它能不能用”,一对一的老师可以帮你把每个值和它检验的规则对应起来。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生