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

标签 c testing word-count

刚刚重温了经典的C教材K&R。并阅读练习 1-11:

您将如何测试字数统计程序?如果有错误,什么样的输入最有可能发现错误?

其实,我只有一个基本的想法,就是手动统计一个现有的段落,得到准确的字数,并与字数统计程序计算的结果进行比较。

有什么我遗漏的吗?测试的技巧是什么?

编辑

答案摘要:

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

  • 链接词:“cat-walk”
  • 小词:a,b,c
  • biiiiiig 单词:“a foooooooooo<40MILLIONLETTERS>ooooooo a”有 3 个单词

边界条件:

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

最佳答案

好吧,这取决于在语义上将什么定义为单词。 因为是在编写字数统计程序,所以您应该知道什么是字。

因此,要测试此程序,您必须考虑边界情况在哪里:“链接词”算作一个还是两个词?你认为“我是”是一个还是两个?等等。

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

关于c - 如果有任何未发现的错误,如何测试字数统计程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5717411/

相关文章:

c - 为什么 char 与 signed char 或 unsigned char 不兼容?

c - 查找二维数组中的路径最大值

java - 为什么我每次尝试使用 selenium 测试脚本登录 Naukari.com 时都会收到 1001 错误?

python - django中的测试设置错误。 self 没有过去。

hadoop - 使用 Hadoop MapReduce 对字数进行排序

asp.net - 使用 RegularExpressionValidator 来限制字数?

c - opengl 白色窗口 - Visual Studio 2010

c++ - 实现自己的 memcpy(大小以字节为单位?)

testing - Testcafe 和软断言

hadoop - 文件的字数统计常用字