zoukankan      html  css  js  c++  java
  • 软件调试修炼之道之——修复缺陷

    当问题诊断告一段落,很可能你已经完成了任务中最困难的部分了,但是,依然要小心,你必须知道,对于一个好的修复来说,不仅仅是让软件能够正常运行,你还需要为将来奠定良好的基础。

    缺陷修复的三个目标:修复问题,避免引入回归,维持或提高代码的整体质量(可读性、架构、测试覆盖率等)

    假设你的开发过程包括测试驱动(测试优先)开发,你拥有一个自动化测试框架和大量的单元测试工具,当你要对源代码进行修改的时候,这种方法确实能收到良好的效果,不仅可以用它来确保你的修复程序会解决此问题,还为它避免卷入回归提供了很好的保障。

    测试优先开发规则之一:直到有一个失败的测试时,才应该更改源代码。因此,你需要证明你已经拥有了通过所有测试套件作为坚实的基础,同时最好确保有一个失败的案例。

    再设计修复方案之前,确保已经知道如何进行测试。

    修复问题产生的原因,而不是修复现象

    重构是改善既有代码的设计而不改变其行为的过程。修复缺陷往往不会设计重构。你正在使用的代码中包含缺陷,这一事实本身往往意味着代码本应得到更简洁或更好的构建,你很有可能会找到哪些代码能够改进。

    执行这些重构和修复缺陷同样重要,有时候在修复缺陷之后再重构比先重构再修复更合理。但是记住:重构的同时绝不能改动代码功能,同样也不能修复有缺陷的代码

    从调试的角度来看,源代码控制的主要价值是审核记录,原则:一次逻辑修改只做一次签入

    代码审查没有固定的执行时间,无论什么时候遇到不确定性或有风险的区域,都要做审查

    成功地修复缺陷是一个伟大的里程碑,但它并不意味着结束。着手下一个任务之前,花点时间思考第一次缺陷是如何出现在软件里的,别的地方的其他实例是否也有相同的问题呢?它可能再次发生么……下一章,我们将一起走进反思的世界~

  • 相关阅读:
    POJ1741
    聪聪可可
    [USACO07NOV]Cow Relays
    Android 程序的反破解技术
    在Android上实现SSL握手(客户端需要密钥和证书),实现服务器和客户端之间Socket交互
    vmware中的bridge、nat、host-only的区别
    史上最易懂的Android jni开发资料--NDK环境搭建
    使用javah生成.h文件, 出现无法访问android.app,Activity的错误的解决
    Android apk反编译基础(apktoos)图文教程
    Smali文件语法解析
  • 原文地址:https://www.cnblogs.com/Ribbon/p/2920983.html
Copyright © 2011-2022 走看看