软件调试的具体⽅法
测试:知道错了。
调试:哪⾥错了,该怎么纠正错误。
测试是为了发现程序中的错误,发现了错误之后,就需要调试,调试分为两步:确定错误的位置和修改错误。
主要的的调试⽅法有:暴⼒法调试,归纳法调试,演绎法调试,回溯法调试,测试法调试。
⼀、暴⼒法调试
暴⼒法调试的特点:不需要过多思考,耗费脑⼒少,效率低下。
暴⼒法调试⼜可分为⾄少三种类型:
1. 利⽤内存信息输出来调试。
2. 根据⼀般的“在程序中插⼊打印语句”建议来调试。
3. 使⽤⾃动化的调试⼯具进⾏调试。
总结:暴⼒法调试能不⽤尽量不⽤,除⾮其他的⽅法都失败了。
⼆、归纳法调试
归纳法调试的特点:由细节到全局,将种种线索联系起来,归纳总结出结果。
归纳法调试具体步骤:
1. 确定相关数据:就是测试时出现的错误相关的信息。
2. 组织数据:将错误相关信息联系起来,总结出⼀些有⽤的信息。
3. 做出假设:根据信息做出合理的假设,如果没有办法做出合理的假设,说明数据不⾜,需重新确定相关数据。
4. 证明假设:证明假设是否成⽴,若假设不成⽴,则需要重新做出假设。
5. 解决问题:证明假设成⽴后,解决问题。
注:修改了错误后需要做⼀些回归测试来确保没有引⼊其他的错误。
总结:归纳法调试是⼀个推理的过程,通过种种线索⼊⼿,逐渐出最终答案。
三、演绎法调试
演绎法调试的特点:演绎法调试主要是从⼀些普遍的理论或者前提出发,使⽤排除和精炼的过程,达到⼀个结论。演绎法调试的具体步骤:
1. 列举出所有可能的原因和或假设。
2. 利⽤数据排除可能的原因。
3. 提炼剩余的假设。
4. 证明剩余的假设。
5. 修复问题。
注:修改了错误后需要做⼀些回归测试来确保没有引⼊其他的错误。
总结:演绎法调试和归纳法调试逻辑相反。
四、回溯法调试
演绎法调试的特点:沿着程序的逻辑结构回溯不正确的结果,直到到程序逻辑出错的位置。⼀般⽤于⼩型程序。
五、测试法调试
测试法调试的特点:需使⽤测试⽤例,当然,此测试⽤例⾮彼测试⽤例。
两种测试⽤例对⽐:
1. 测试的测试⽤例:为了发现程序中尚未发现的错误。
2. 调试的测试⽤例:定位错误的位置。
两种测试⽤例可以理解为:先⼴泛撒⽹(测试的测试⽤例),再深⼊研究(调试的测试⽤例)。总结:测试法调试可以结合归纳法或者演绎法⼀起使⽤。
软件测试app
定位错误的原则:
1. 动脑筋。
2. 如果遇到了僵局,就留到稍后解决。
3. 如果遇到困境,就把问题描述给其他⼈听。
4. 仅将调试⼯具作为第⼆种⼿段。
5. 避免使⽤试验法——仅将其作为最后的⼿段。
修改错误的原则:
1. 存在⼀个缺陷的地⽅,很有可能还存在其他缺陷。
2. 应该纠正错误本⾝,⽽不仅是其症状。
3. 正确纠正错误的可能性并⾮100%。
4. 随着程序规模的增加,正确修改错误的可能性反⽽降低。
5. 应意识改正错误会引⼊新错误的可能性。
6. 修改错误的过程也是临时回到设计阶段的过程。
7. 应修改源代码,⽽不是⽬标代码。
错误分析(⾃我反省、⾃我提⾼的过程):
1. 错误出现在什么阶段?
2. 谁制造了错误?
3. 哪些做得不正确?
4. 如何避免该错误的出现?
5. 为什么错误没有早些发现?
6. 该如何更早的发现错误?
参考⾃《软件测试的艺术》(原书第3版)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。