这个单元讲的是如何信任一个程序。**验证(validation)**阻止不可接受的数据进入,**核实(verification)**检查输入的数据是否与本意相符,测试(testing)则显示程序是否做到了需求所要求的事。考题奖励精确的术语和细心、逐步的演算。
确切的范围和现行代码,请查看适用于你考试年份的剑桥 IGCSE 计算机科学课程大纲页面。本单元属于更大的计算机科学学习指南。
需要先具备什么基础?
你应该能读懂含有 IF、循环和变量的短算法。如果追踪对你是新的内容,可参考硬件与处理和软件与系统了解背景,并看数据传输与检查理解检查数据的概念。
引导例子:一条规则,三项工作
一个虚构的社团规定:“年龄必须是 13 到 17 的整数。”
第一,验证执行这条规则。范围检查拒绝 20 和 12,类型检查拒绝 “abc”。
第二,测试问这个检查写得对不对。测试数据 13、17、12 和 18 能显示比较是否用了 >= 和 <=。
第三,核实问输入的年龄是否就是表上的年龄。真实年龄是 15 时,范围检查会接受 16,但重复输入能抓出来。
每一项工作抓出不同种类的错误,所以三者总是一起出现。
应该按什么顺序学习各课?
- 根据需求选择验证规则:五种检查,以及辨认它们的关键词。
- 区分核实与验证:重复输入、目视检查,以及有效数据为什么仍可能是错的。
- 设计正常、边界和无效测试数据:带预期结果的测试表。
- 在运行代码之前说明预期结果:用表格追踪来预测输出。
- 找出未测试的分支:确认代码中的每条路径都有测试。
请按这个顺序学习。每一课都用到前一课的内容,最后一课要你综合应用所有内容。
常见陷阱有哪些?
- 说验证”确保数据是正确的”。它只确保数据合理。
- 只选正常测试数据,忘了每个边界的两侧。
- 预测输出时把
>=读成>。 - 以为测试通过就证明所有代码都运行过。
怎样使用练习?
先在纸上做综合练习,再对照完整解答。受限伪代码追踪训练器和安全 Python 推理沙盒可以让你逐步运行循环和条件,错误记录与重测队列则帮你追踪重复出现的错误。如果你想让老师看你自己的演算,请参阅一对一线上计算机科学补习。