关于调试的建议


[] 使用所有可用数据来构造你的假设。
[] 不断提炼产生错误的测试用例。
[] 在自己的单元测试族中测试代码。
[] 借助可以获得的任何工具。
[] 用不同的方式重现错误。
[] 通过产生更多的数据来构造更多的假设。
[] 利用证伪假设的测试结果。
[] 用头脑风暴的方式找出可能的假设。
[] 在桌上放一个记事本,把需要尝试的事情列出来。
[] 缩小被怀疑有问题的代码区域。
[] 对之前出现过问题的类和子程序保持警惕。
[] 检查最近修改的代码。
[] 扩展被怀疑有问题的代码区域。
[] 采用增量集成。
[] 检查常见的缺陷。
[] 和其他人一起讨论你的问题。
[] 抛开问题休息一下。
[] 在使用快速肮脏调试法的时候,要设置一个时间上限。
[] 列出所有的蛮力调试方法,逐条应用。

解决语法错误的方法
[] 不要太信任编译器信息中给出的行号。
[] 不要太信任编译器信息。
[] 不要太信任编译器所给出的第二条出错信息。
[] 分而治之,各个击破。
[] 使用具有语法分析功能的编辑器来找出位置错误的注释和引号。

修正缺陷的方法
[] 在动手之前先理解程序。
[] 理解整个程序而非具体问题。
[] 验证对错误的分析。
[] 放松一下。
[] 要保存最初的源代码。
[] 治本,而非治标。
[] 只有当理由充分的时候才去修改代码。
[] 一次只做一个改动。
[] 检查自己所做的修订。
[] 添加单元测试来暴露代码中的缺陷。

调试的一般方法
[] 你是否会把调试看做是能让你更好地理解程序、错误、代码质量和解决问题方法的良机?
[] 你是否会避免采用随机尝试查找错误或迷信式的调试方法?
[] 你是否假设错误是你自己造成的?
[] 你是否使用了科学的方法将间歇性的错误稳定下来?
[] 你是否使用了科学的方法来寻找缺陷?
[] 你在寻找缺陷的时候会使用多种不同的方法么?还是每次都是用相同的方法?
[] 你会验证你的修改是否正确么?
[] 你会在调试中使用编译器警告信息、执行性能分析、利用测试框架和交互式调试方法么?

posted @ 2020-10-23 09:05  谢凌  阅读(130)  评论(0编辑  收藏  举报