《软件测试的艺术》笔记 08 - 调试
- 软件测试的艺术,第三版。
- 豆瓣读书:https://book.douban.com/subject/10549782/
调试是一个包含两个步骤的过程,从执行了一个成功的测试用例、发现了一个问题之后开始。第一步,确定程序中可疑错误的准确性质和位置;第二步,修正错误。
蛮力法调试
- 利用内存信息输出来调试。
- 根据一般的“在程序中插入打印语句”建议来调试。
- 使用自动化的调试工具进行调试。
归纳法调试
- 确定相关数据。
- 组织数据。
- 作出假设。
- 证明假设。
- 解决问题。
演绎法调试
- 列举出所有可能的原因或假设。
- 利用数据排除可能的原因。
- 提炼剩下的假设。
- 证明剩下的假设。
- 修复问题。
回溯法调试
- 根据实际代码流程进行分析。
- 如果说归纳法是数据分析,演绎法是逻辑分析,回溯法就是代码分析。
测试法调试
- 编写专用的测试用例进行辅助调试。
调试的原则
- 定位错误的原则
- 静下来动脑筋,思考程序本身的设计与出现的错误。
- 如果遇到了僵局,就留到稍后解决。让潜意识工作一会儿。
- 尝试把遇到的问题描述给他人听,激发自己的思考。
- 仅将调试工具作为第二种手段。
- 避免使用试验法,仅将其作为最后手段。
- 修改错误的技术
- 存在一个缺陷的地方,很有可能还存在其他缺陷。
- 应纠正错误本身,而不仅是其症状。
- 正确纠正错误的可能性并非 100% 。
- 随着程序规模的增加,正确修改错误的可能性反而降低。
- 改正错误有引入新错误的可能性。
- 修改错误的过程也是临时回到设计阶段的过程。
- 应修改源代码,而不是目标代码。
错误分析
程序员可以通过详细分析出现的错误,从而提高自己的水平。分析的思路有:
- 错误出现在什么地方?
- 谁制造了这个错误?
- 哪些做的不正确?
- 如何避免该错误的出现?
- 为什么错误没有早些发现?
- 该如何更早地发现错误?
廖杰良 - 2019-6-10