归纳是一种特殊的思考过程,可以从细节到全局,也就是从线索(即错误的症状,可能是一个或者多个测试用例的结果)出发,寻找线索之间的联系。
归纳调试的步骤:
- 确定相关数据。调试人员在具体的调试工作中常常会犯一个错误:未能将所有有用的数据或者症状都考虑进去。在确定相关的数据时,我们需要列举出所有知道程序执行的正确和不正确之处,这些程序表现出的不正确的地方就是我们要找的症状所在,让我们相信确实存在着些错误。而这些相似但是却不同并且引起错误的测试用例给我们分析错误提供了额外有兼职的线索。
- 组织数据。归纳就是指从特殊到一般,我们在组织相关数据来观察这些线索之间的模式。特别是找到矛盾、事件。我们在出现问题之处可以考虑使用表格的形式来组织现有的数据。
- 做出假设。我们在这一步中研究这些线索之间的联系,利用我们上一步的线索结构里可能有的模式作出移步或者多个错误原因的假设。如果我们仍无法作出推测,那么就需要更多的数据;如果有多个假设存在,首先选择最有可能的那一个。
- 证明假设。我们在调试过程中,可能会承受一部分的压力,可能在作出假设之后就急忙去跳到结论去修改问题了。但是,如果我们没有证明我们的假设的正确性,可能只是修改了问题的症状,并没有解决问题本身。我们在这一步中,应当假设与最初的线索和数据进行对比,来证明假设的合理性。如果我们的假设无法解释错误的线索和数据,有可能是我们的假设是无效的或者不完整的,还有更多的错误存在。
- 解决问题。一旦完成前面几步,我们就可以着手修复我们发现的问题。我们在这一步解决问题完成后,仍然需要做一些回归测试来保证问题和错误修复没有引入其他的错误。软件规模越大,解决老问题的同时引入新问题的可能性也越大。
使用归纳法的调试过程
作者唠叨:
第一次在博客园写博客,内心还有有些小激动的~~O(∩_∩)O~~以后会跟大家分享越来越多关于测试方面的知识和经验。有需要改进和不足之处,希望大家及时指正。谢谢大家~祝大家生活愉快~