- 调试的基本问题
- BUG就是缺陷、错误、谬误
- 调试不能提高软件质量
- 调试速度差异
- 好的程序员和差的程序员速度能相差20倍
- 将缺陷看成机遇
- 调试的时候能让你了解整个程序
- 让你知道你犯下的是哪种错误
- 让你知道别人眼中的代码质量是怎样的
- 让你知道你是如何解决问题的
- 让你指导你是如何修复缺陷的
- 总之调试能让你进步
- 低效的调试方法
- Devil的调试建议(低效)
- 猜测缺陷的位置
- 不花时间完全理解问题,只是找到了缺陷
- 只是修复个别情况。例如:x=Compute(y);if(y==17)x=25.15;
- 迷信方法
- 出现缺陷往往都是自己在程序上犯下的错误,而不是数据库或者编译器的错误
- Devil的调试建议(低效)
- 找出错误
- 科学调试方法
- 通过重复实验收集数据
- 通过数据作出假设
- 设计实验证明假设
- 证明假设
- 必要的话重复步骤
- 高效调试方法
- 稳定缺陷
- 定位缺陷
- 修复缺陷
- 测试修复情况
- 找出相似的错误
- 暴力调试
- 重新设计有错误的那部分代码
- 抛弃一部分代码重写
- 抛弃整个程序重写
- 编译程序时输出所有的调试信息
- 修复所有警告
- 分离单元测试,把代码移到隔离环境中测试
- 创建自动化测试,并且让它运行整个晚上
- 单步调试大循环
- 程序中插入print输出调试信息
- 用另一个编译器编译
- 换一个环境运行程序
- 完全模拟出出错机器的环境
- 细分集成测试
- 语法错误
- 借助编译器和IDE,这种错误已经快灭绝了
- 科学调试方法
- 修复错误
- 修复前首先要理解缺陷
- 理解整个程序,而不仅仅是问题
- 确认缺陷诊断无误
- 放轻松
- 修复问题,不是修复问题的症状
- 这种修复通常情况下是没有用的
- 这种修复无法维护
- 在修改代码之前,首先要确认这种修复办法可行
- 一次只修改一个地方
- 修复完毕之后检查一遍
- 修复完毕之后检查整个程序
- 添加一个关于这个缺陷的单元测试
- 查找相似的错误
- 调试心理学
- 心理距离,例如stoppt和stcppt很相似
- 调试工具
- 源码比较工具:diff
- 编译器警告信息
- 语法检测工具和逻辑检查工具:lint
- 性能分析工具:也能找出bug
- 测试框架
- 调试器
【读书笔记】代码大全23章:调试
最新推荐文章于 2023-02-27 21:23:43 发布