跳到正文
IGCSE·Tuition
资讯与通信科技(ICT) · 课程

用边界输入测试模型

公式在典型数值下能用,仍可能在规则改变的那个确切数字上出错。

本页内容
  1. 应该测试什么?
  2. 一步一步进行测试
  3. 例题
  4. 要留意的错误
  5. 自我检测
  6. 接下来学什么

测试模型的意思是:有目的地选择输入值,手算出答案,再和表格显示的结果比较。最重要的数值是在规则边界上的数值,因为结果就在那里切换。

这一课接在设置单位格式之后,属于电子表格建模与图表单元,用到的是分开输入、计算和输出里的布局。

应该测试什么?

对模型里的每个条件,测试三种数值:

  • 刚好低于边界。
  • 刚好等于边界。
  • 刚好高于边界。

另外,在模型会做除法的地方测试空白或零输入,在规则应该拒绝的地方测试无效输入。

一步一步进行测试

  1. 列出模型里的规则,例如门槛和除法。
  2. 写一张测试表,包含输入值以及每个值手算出的预期结果。
  3. 把每个数值输入输入单元格,一次一个。
  4. 比较表格结果和你的预期结果。
  5. 修正任何不符,然后重新运行整张测试表,因为修正可能弄坏其他情况。

例题

一家虚构的网店收取 RM8 运费,除非订单总额达到 RM150 或以上。总额在 B2,B3 里是:

=IF(B2>=150,0,8)

B2 的测试值预期运费表格结果
149.9988
15000
150.0100
08(或者题目要求时拒绝)8

每一行都相符,所以规则正确。关键在于测试了 150 本身,因为“RM150 或以上”包括它。

**除法测试:**B6 里的利润率是 =B4/B5,B5 是收入。如果 B5 是 0,表格会显示错误。更安全的写法是 =IF(B5=0,0,B4/B5)。B4 = 156、B5 = 300 时得到 0.52,B5 = 0 时得到 0。

要留意的错误

常见的失误是用错了比较符号,又只测试容易的数值。

错误的公式:=IF(B2>150,0,8)

用 200 和 50 测试,得到 0 和 8,看起来没错。但刚好 150 的订单要付 RM8,违反了规则。

正确的做法是使用 >=,并把边界放进测试表。只测试典型数值,有缺陷的公式也会通过。边界测试才能让它露馅。

自我检测

1. 公式 =IF(A1>=40,“Pass”,“Fail”) 的用意是让 40 分及以上及格。对 39、40 和 41,应该显示什么?

显示答案

**Fail、Pass、Pass。**边界 40 及格,因为规则使用 >=。

2. 一条规则给 18 岁以下的学生折扣,公式是 =IF(B2<18,0.2,0)。18 岁的人得到多少折扣?17 岁和 19 岁呢?

显示答案

18 岁得 0,17 岁得 0.2(20%),19 岁得 0。18 岁不是小于 18,所以边界在折扣之外。

3. 某单元格里是 =B4/B5,而 B5 可能是 0。写出更安全的版本,并写出 B4 = 50、B5 = 0 时的结果。

显示答案

=IF(B5=0,0,B4/B5)。B5 = 0 时返回 0,所以不会出现错误。

接下来学什么

最后一步是检查读者实际收到的内容:检查打印区域和隐藏行。只读 SQL 练习实验室把同样的边界思维用在数据库条件上。

如果测试一直通过,评分者的数值却出错,ICT 线上一对一补习里的老师可以帮你在动手写公式之前先建好测试表。

常见问题

什么是边界值?

边界值是规则改变的那个数值,例如“满 RM150 免运费”里的 150。要测试边界本身、低一步的数值和高一步的数值,因为“大于”和“大于或等于”的错误就出现在那里。

需要多少个测试值?

每条规则先用三个:刚好低于、等于和刚好高于边界。当模型有除法或计数时,再加上零和不可能的数值,例如负数的数量。先写下预期结果,再去看表格给出的答案。

为什么要先写预期结果?

如果先看表格的答案,很容易就相信它。事先手算出预期值,测试才是真正的检查。结果不符时,你就知道该检查哪个公式。

更新于:

下一步

如果你的表格通过了自己的测试,却在检查者的数值上出错,一对一的老师可以帮你先设计一个覆盖边界的测试表。

一小时付费试听课,按所安排老师确认的收费,RM80 起。

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

家长:在这里咨询

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