跳到正文
IGCSE·Tuition
计算机科学 · 常见难点

我总是分不清验证和核实

两个词听起来都像检查,所以考试答题时,很容易把对的想法写在错的名字下面。

本页内容
  1. 考试中可用的判断方法
  2. 例题
  3. 要避免的错误
  4. 养成习惯
  5. 自测
  6. 接下来

验证(validation)检查数据是否合理、是否符合规则。核实(verification)检查输入的数据是否与原本要输入的一致。 验证问的是“这个允许吗?”,核实问的是“这和原始来源一样吗?”

这一对概念常出现在数据输入、表格和测试的题目里。更完整的内容见验证、核实与测试,两者的区分在区分核实与验证中单独讲。

考试中可用的判断方法

对这个检查问一个问题:它需要原件吗?

  • 如果程序只靠规则(范围、长度、格式)就能自己完成检查,就是验证。
  • 如果检查是把输入的数据与原始文件比较,或与同一数据的第二次输入比较,就是核实。

陷阱在“正确”这个词。验证从不证明数据正确,它只证明数据可以接受。

例题

学校图书馆的表格要求填写学生的年级,必须是 7 到 13 的整数。这位学生的真实年级是 10。

用户输入验证(范围 7 到 13)核实(输入两次)
10 再输入 10通过两次一致,通过
1 再输入 1拒绝,超出范围不会进行到这一步
12 再输入 12通过两次一致,通过
10 再输入 1第一个值通过两次不同,拒绝

第一步。 值 1 没通过验证,因为规则是 7 到 13。程序不需要原件就能判断。

第二步。 值 12 通过了验证,尽管真实年级是 10。规则无法知道真相。

第三步。 输入两次也发现不了 12 和 12,因为人可能重复同一个失误。核实能减少输入错误,但并不完美。把表格与学生记录对照才能发现。

所以:验证挡住了不可能的值,核实挡住了两次输入的不一致,而两者都不能证明数据是真的。

要避免的错误

错误答案:“验证检查数据是否正确,核实检查数据是否输入正确。”

听上去接近,但两处都不对。验证并不检查正确性,12 的例子已经说明这一点。核实关注的是与原本想输入的数据是否一致,而不是“输入得对不对”。

更正:“验证检查数据是否合理并符合规则,例如用范围检查拒绝 1。核实检查输入的数据是否与来源一致,例如输入两次再比较。”

养成习惯

  1. 每遇到一个检查,写下名称(范围、长度、输入两次)和一行:“需要原件:是或否”。
  2. 补充一个你自己想的情境,不要只用课本的。
  3. 看答案之前,先用一句话大声说出两者的区别。

你可以用伪代码跟踪训练器和Python 推理沙盒,在原创的小例子上练习逐步推理。

自测

1. 注册表格拒绝少于 6 个字符的用户名。这是验证还是核实?是哪一种检查?

Show answer验证。这是长度检查(length check),因为只应用规则,没有把输入与任何原件比较。

2. 一名职员把每条输入的记录与纸质表格逐条对照。是验证还是核实?

Show answer核实。把输入的数据与来源文件比较,看是否一致。

3. 用户把年龄输入为 140。哪种检查会拦下它?为什么把 41 误输成 14 仍然能通过?

Show answer范围检查(range check)会拦下 140。14 落在合理范围内,所以验证会接受,尽管这不是用户的本意。只有对照原始来源的核实才能发现。

接下来

在根据需求选择验证规则中练习设计检查,再做设计正常、边界和无效的测试数据。

如果你希望老师在你写答案时当场纠正用词,一对一线上计算机科学补习从 RM80 起的付费试听课开始。

常见问题

验证(validation)能证明数据是正确的吗?

不能。验证只检查数据是否合理、是否符合规则,例如范围、长度或类型。把 14 岁误输成 15 岁,依然能通过 11 到 18 的范围检查。只有对照原始来源的核实(verification)才可能发现这类错误。

输入两次再比较,算验证还是核实?

算核实(verification)。同一个值输入两次再比较,是检查输入的内容与原本想输入的是否一致。注意它不检查合理性:两次都输错成相同的值,仍然会通过。

一个系统可以同时使用两者吗?

可以,好的系统也是这样做的。表格可以用范围检查(验证)拒绝不可能的年龄,同时要求用户重新输入电子邮件地址(核实)。两者各自发现不同类型的错误。

答题时常见的验证检查有哪些?

常见的有范围检查、长度检查、类型检查、存在检查和格式检查。答题时先写出检查名称,再说明它在情境中检查什么,例如用长度检查拒绝少于八个字符的密码。

更新于:

下一步

如果这两个词在你的答案里总是互相换位,一对一老师可以用新的情境反复练习,并听你怎么解释,直到区别变成本能。

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

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

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

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