测试人员的任务之一是隔离错误。缩小问题搜索空间将有助于开发人员找到原因并修复它。
通过隔离错误,我的意思是既要找到生成应用程序错误输出的输入类,又要找到哪个组件、配置文件或代码段包含错误原因。
我听说过的一些方法,有时我结合在一起(或多或少地)是:
- 科学方法。我假设可能的原因并运行可重复的实验来验证它。我对输入进行采样,并将实际程序输出与预期输出进行比较。即使我没有找到原因,我也可能会找到可以重现错误的最小输入。
- 调试。我使用调试器工具或通过添加额外的日志记录指令(例如,
printf
)来检查正在运行的程序(堆栈、变量)的状态。特别好,当通过重新启动应用程序时,我可能会丢失发生错误或应用程序不在我的远程机器上的状态。 - 阅读和理解代码库、日志、堆栈跟踪和配置文件。我想了解为什么这个代码库会产生这个输出。
- 问题空间的二分搜索。如何让你的 Bugs Lonely: Tips on Bug Isolation中有很好的描述,可以系统地支持科学方法。
- 根本原因分析。我试图将问题缩小到Software Testing Primer定义的可能的根本原因类别之一。我确保错误不在我的测试用例中,也不在环境配置中。然后我检查代码本身。
在最后一种情况下,我有时也会尝试了解问题是由另一个错误引起的,还是由模棱两可/不完整的需求/设计引起的。
你的方法是什么?你能推荐我一些阅读、视频、练习吗?在这里谷歌搜索的正确关键字是什么?