我只是重温了经典的C教科书K&R,并阅读了练习1-11:
你将如何测试单词计数程序?哪些类型的输入最有可能发现bug(如果有)?
实际上,我只有一个基本的想法,手动计数一个现有的段落,以获得准确的单词编号,并将其与结果的单词计数程序计算。
我错过了什么吗?考试的诀窍是什么?
编辑
答覆摘要:
词的语义定义,一些特殊情况:
边界条件:
发布于 2011-04-19 13:56:06
这取决于你在语义上把什么定义为单词。因为是你在写单词计数程序,所以你应该知道单词是什么。
因此,要测试这个程序,你必须考虑角落的情况是什么:一个“链接词”是否算作一个或两个单词?你认为“我”是一两个吗?等等。
至于K&R练习,我想他们是主动忘记了其中的一些情况,他们建议你,分析他们的代码,找出这些警告。
发布于 2011-04-19 13:58:05
以下是一些可以发现bug的文本示例:
发布于 2011-04-19 13:58:05
我还没有为这个答案重读练习1-11 .(我的书在60公里外)
可能被编码错误的东西
"a b c d"
有4个单词"a fooooooooo<40MILLIONLETTERS>ooooooo a"
有3个单词",.!? ...
可能未被理解的定义
"cat-walk"
1字?2字?"under-\nstood"
行断线(带连字符)https://stackoverflow.com/questions/5717411
复制相似问题