`

程序员,请尽早修复你的Bug

阅读更多

一旦进入软件开发的生命周期,bug就不可避免地随之而来。关于是在软件开发生命周期的早期还是后期——实施和发布后去修复bug的问题上,产生过许多激烈的讨论。软件开发人员总体认为早期修复bug是最优的策略。

无论是在哪个发展阶段,修复bug都非常耗时,而且置之不理会产生一定的成本。越到后期去修复bug,出现的问题可能就越发严重。原因如下。

1.节约时间

之所以要早点追查和修复bug最大的原因是小问题会随着时间的推延逐渐演变成大问题,然后修复所需时间就会大大增加。通常情况下,修复一个bug可以避免其以后成为一个更为复杂的大问题。

越早修复bug,开发人员所需要的时间就越少。对于刚写完的代码,开发者很容易找到bug的根源,而要从数月前写得代码中寻找影响产品运行的bug则要花更多的时间。在开发过程中,时间就是金钱。

2.bug越多,修复难度就越大

Bug会相互叠加,所以如果在它们刚出现的时候不及时修复的话,那么后面就会越来越多,越来越难。而且面对复合bug追踪其问题的起源就会更难。假设你手上有一份关于系统的bug报告,如果只有一个bug,那么追查起来显然很简单,但要是有很多bug的话,那就费时费力了,因为在这过程中,你还得逐步排除其他错误的干扰,这和这篇文章的观点类似。

3.定下基调

为开发团队定下重视代码质量的基调。此外,已知bug可使得团队成员心情沮丧,因为他们总是不得不重复性地针对一些小问题去执行内部解决方案。

4.满是bug的产品会影响声誉

如果你在向最终用户展示自己的产品时,不能保证已做到尽可能少的错误,那么很有可能会威胁到你的声誉。如果你拿不出正确的异常处理,那么客户将再也不愿意体验正常的程序运行,而这很有可能会贬低产品的整体体验。语言传播的力量是巨大的,到时候这款满是bug的软件不但会销量锐减,甚至还会影响客户对你下一个产品的信心。

解决方案

错误监测、捕捉bug、搜索日志和清理bug是需要时间的,可能客户会对此焦急和不满。这也是为什么很多人会选择在问题出现在用户端之前就尽快追踪和解决掉bug。

Airbrake就挺不错的。它可以监测详细的堆栈跟踪信息、欺骗检测、部署跟踪和记录日志。另外它还提供一个跟踪异常信息的操作面板,这意味着bug会在几秒钟之内解决。

如何更好地修复bug,请阅读修复bug的12个关键步骤

有这些智能软件的帮助,你还等什么呢。早点发现和修复bug,那么我们就能将更多的时间放到开发上去,开发出更好更优秀的产品。

 

译文链接:http://www.codeceo.com/article/4-reasons-to-fix-bug-early.html

分享到:
评论

相关推荐

    程序员季度绩效考核表

    - **回归测试:**修复Bug后进行全面测试,避免引入新的问题。 - **持续集成:**采用自动化构建和测试流程,尽早发现并修复问题。 ### 三、Bug平均产生率(个/天) **定义:**计算每天产生的平均缺陷数量。 **关键...

    高效程序员应该养成的七个习惯

    这有助于及时发现和修复bug,降低修复成本,缩短测试周期。虽然初期的代码可能不完善,但程序员应接受早期反馈,因为这有利于项目的长期成功。同时,建立良好的沟通和合作关系,理解和尊重QA的角色,对于团队协作至...

    程序员必看的

    在开发过程中,及时进行代码自测,可以尽早发现并修复bug,降低后期调试成本。此外,异常测试同样重要,它模拟各种极端情况,验证软件在异常条件下的表现,提高软件的健壮性和用户体验。 总之,作为一名优秀的...

    10+年程序员总结的20+条经验教训,看完必须转发、收藏、学习

    11. **重现问题并彻底修复**:修复bug的第一步是复现问题,然后确保修复彻底,避免问题再次出现。 12. **分步骤解决问题**:面对多个问题时,先解决已知问题,再检查是否有遗漏,避免混乱。 13. **不存在巧合**:...

    程序员开发大程序的技巧

    - **快速定位相关类**:在修复bug或增强功能时,能迅速找到涉及的类或方法至关重要。 - **分析变更影响**:理解变更可能带来的影响,这需要对Java语言和项目中使用的框架有深入理解。例如,修改equals()方法可能会...

    5 十一乐一乐 让程序员崩溃的瞬间().docx

    3. **修复Bug的悖论**:你以为自己找到了并修复了一个Bug,然而这个“修复”可能引入了新的问题,甚至使原有的问题更加复杂,导致更多的调试工作。 4. **实习生编码的挑战**:实习生的编程经验通常较少,他们的代码...

    NO-BUG 个人推荐

    综上所述,《NO-BUGS》这本书提供了一系列实用的技巧和方法,旨在帮助程序员编写无错误的代码。尽管自该书首次出版以来,软件开发环境已经发生了很大变化,但其中的基本原理和方法仍然具有很高的参考价值。无论是...

    Software Testing-Answers to Quiz Questions

    早期发现和修复bug可以显著降低修复成本。 5. 题目:软件测试员的目标是什么? 答案:软件测试员的目标是找出bug,尽早发现,并确保它们得到修复。他们是产品质量的守护者。 6. 题目:一个好的测试员是否应该不懈...

    突破程序员基本功的16课.part2

    4.4.3 尽早释放无用对象的引用 4.4.4 尽量少用静态变量 4.4.5 避免在经常调用的方法、循环中创建Java对象 4.4.6 缓存经常使用的对象 4.4.7 尽量不要使用finalize方法 4.4.8 考虑使用SoftReference 4.5 小结 ...

    Bug-Smashers:我们粉碎错误。 无双关语

    同时,持续集成/持续部署(CI/CD)工具能自动化构建和测试过程,尽早发现和修复错误。 最后,面对难以复现的错误,我们可能需要学习如何使用内存分析工具、性能分析器等高级工具,以深入系统内部,查找可能隐藏的...

    Atom-linter-scalac,使用scalac在飞行中给scala起毛。贡献给AtomCenter/Linter.zip

    这个插件的核心功能是集成Scala编译器`scalac`,实现在编码过程中实时进行语法检查和错误提示,帮助程序员在编写代码时尽早发现并修复问题,提高开发效率。 Atom是一个由GitHub开发的开源文本编辑器,它采用了Web...

    关于内存资源无法释放的例子

    3. **良好的编程习惯**:编写代码时遵循“尽早申请,尽早释放”的原则,避免长时间持有不需要的内存。 4. **及时解除引用**:确保不再需要的对象能被正确地解除引用,以便垃圾回收器能够回收其内存。 5. **更新和...

    软件测试准入和准出标准.doc

    1. 当发现重大bug或bug过多,影响测试进程时,可以申请暂停测试,以便集中精力修复问题。 2. 当有其他更高优先级的任务需要处理时,同样可以暂停测试,保证资源的合理分配。 3. 在软件项目需要调整时,测试工作应随...

    软件测试与维护:2-testing-realities.pdf

    软件测试的主要目标是尽早发现并修复缺陷,以保证软件质量。测试的分类包括单元测试、系统测试、验收测试、性能测试、强壮性测试和功能测试等。此外,还有白盒测试和黑盒测试两种主要测试方法。白盒测试关注代码结构...

    测试开发过程经验交流

    测试开发过程经验交流软件测试1、测试要尽早公司的产品已经...都已经修改了很长的时间,因此程序员再次进入修改的时候,往往需要重新分析和理解,造成Bug的修复周期延长了很多。 建议当完成功能修订后,要尽快进入测

    软件测试与维护复习归纳1

    "错误(error)"通常指程序员在编写代码时的失误,"特殊(feature)"有时会被误认为缺陷,而"事件(incident)"是用户遇到的问题,"缺陷(bug)"、"异常(anomaly)"则与程序的不正常行为相关。 问题的来源广泛,...

    很全的软件测试面试题整理.doc

    原则:(1)尽早测试、不断测试(2)程序员避免检查自己的程序 (3)测试用例应该包含合理的和不合理的输入条件 (4)严格执行测试计划,排除测试的随意性。 软件测试的类型有很多,包括黑盒测试、白盒测试、灰盒...

    标天C++集成开发环境

    调试器是软件开发过程中的另一重要组件,用于追踪代码执行过程,查找并修复bug。"标天C++集成开发环境"的调试器可能包括断点设置、单步执行、查看变量值、调用栈分析等功能,便于开发者理解程序运行状态,定位问题...

Global site tag (gtag.js) - Google Analytics