如果有任何未发现的错误,如何测试字数统计程序?

xia*_*o 啸 6 c testing word-count

我刚刚重温了经典的C教科书K&R.并阅读练习1-11:

你会如何测试字数计划?什么样的输入最有可能发现错误,如果有的话?

实际上,我只有一个基本的想法是手动计算现有段落以获得确切的单词数字,并将其与结果单词计数程序计算进行比较.

有什么我错过的吗?测试的诀窍是什么?

编辑

答案摘要:

单词的语义定义,一些特殊情况:

  • 链接词:"猫走"
  • 小词:a,b,c
  • biiiiiig words:"a fooooooooo <40MILLIONLETTERS> ooooooo a"有3个单词

边界条件:

  • 单词之间有多个空格的文本.
  • 文字大于2GB
  • 包含破折号但没有空格的单词.
  • 非ascii字.
  • 某些不同编码的文件(如果您的程序支持)
  • 被空格包围但不包含任何单词字符的字符(例如"hello - world")
  • 没有任何文字的文字
  • 单行上包含所有单词的文本

Gui*_*i13 2

嗯,这取决于在语义上对单词的定义。由于是编写字数统计程序,因此您应该知道单词是什么。

因此,要测试这个程序,您必须考虑极端情况在哪里:“链接单词”算作一个还是两个单词?你认为“我是”是一还是二?ETC..

至于 K&R 练习,我猜他们自愿忘记了其中一些极端情况,他们建议您分析他们的代码,找到这些警告。