测试无限输入域(例如解析器或基于规则的系统)的最佳实践?
测试文本转语音引擎是一项相当艰巨的任务。 引擎本身解析输入并根据单个单词的语音分析应用发音规则。 此外,还存在发音规则的例外列表,以改善最终结果。 古腾堡项目等项目让您可以真正地扔掉这本书 问题所在; 然而,问题仍然是,由于问题的范围,我永远不会感到舒服。 我追求的是六个九的解决方案(99.9999% 的防碰撞能力)。 在引擎上扔随机文本清楚地表明我只有三个九,随后的修复似乎没有帮助。 我知道在这种情况下该怎么做(重新访问引擎内的错误处理机制以使它们正常降级)。 一般问题依然存在。 在任何无限输入域中,如何证明软件质量?
Testing a text-to-speech engine is a rather daunting task. The engine itself parses input and applies rules for pronunciation based on phonetic analysis of individual words. In addition exception lists for the pronounciation rules exist to improve the end result. Projects such as The Guttenberg Project allow you to literally throw the book at the problem; however, the problem remains that I can never feel comfortable due to the domain of the problem. I am after a six nines solution (99.9999% crash proof). Throwing random text at the engine shows clearly that I am only at three nines and subsequent fixes don't appear to be helping. I know what to do in this case (revisit the error handling mechanisms within the engine to make them degrade gracefully). The general issue persists. In any infinite input domain how do you prove software quality?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
测试覆盖范围。 确保您触及所有分支和所有循环,执行所有代码并确保其正常工作或正确失败。 根据其重要性,尝试实现 100% MCDC 覆盖率(修改条件/决策覆盖率); 对于每个条件,确定影响结果的所有输入排列,并确保测试每个排列。
Test for coverage. Make sure that you're hitting all of your branches and all of your loops, exercising all your code and making sure that it works correctly or fails correctly. Depending on how important it is, try to achieve 100% MCDC Coverage (modified condition/decision coverage); for each conditional, determine all the permutations of inputs that factor into the result and make sure you test every permutation.
你如何测试你的引擎? 我会尝试使用语音识别引擎(如微软的内置引擎)来检查质量。 在证明的卷上,我将使用所有单词的文本词典+来自不同作者的一些书籍的文本。
How do you test your engine? I would try to use speech-recognition engine (like Microsoft's build-in one) to check the quality. On the volume of the proof I would use text dictionary of all words + texts from some books from different authors.