发现和修复缺陷的成本如何随着时间的推移而增加。

作者 | Sanket

译者 | 姜松浩

责编 | 屠敏

出品 | CSDN(ID:CSDNNews)

以下为译文:

在软件开发工作流程中,检测和修复软件中缺陷的成本随着时间呈指数增长。修复现场的错误是非常昂贵的,而且风险很大-通常是一两个数量级。成本不仅在于当前浪费的时间和资源,而且还在于未来可能失去的情况。

大多数缺陷的成本高于防止它们的成本。缺陷在发生时很昂贵,花费的成本包括修复缺陷的直接成本和由于关系受损,业务损失以及开发时间损失导致的间接成本。 ——Kent Beck,, Extreme Programming Explained

以下图表由NIST提供,有助于可视化随着软件在软件开发的五个广泛阶段中的发展,在检测和修复缺陷方面的努力是如何增加的。

为了理解成本以这种方式增加的原因,让我们考虑以下几点:

  • 当开发人员仍在编写代码时,更容易检测代码中的问题。由于代码在脑海中仍然很新鲜,因此即使解决很复杂的问题也会很容易。随着时间的推移,代码转移到后期阶段,开发人员需要记住所有内容并在问题解决之前找到问题。如果自动化系统(例如CQ集成)在开发人员仍在编写代码时突出显示代码中的问题,则出于同样的原因,他们更容易一并修复程序。

  • 一旦软件处于测试阶段,在开发人员的本地环境中复制缺陷,这样就成为另一项耗时的任务了。另外,虽然很容易根据要求捕获明显损坏的或者不满足要求的东西,但是发现更基础的缺陷则是非常困难的,需要考虑内存泄漏、竞争条件等等。不幸的是,如果这些问题摆脱了编码阶段,它们通常在生产阶才会出现。

  • 软件发布并投入使用后,不仅很难找到缺陷,而且风险也非常高。除了需要实时防止用户受到问题的影响外,还需要确保服务的可用性对业务至关重要。与早期修复这些缺陷的情况相比,这些影响的混合将导致成本将高达30倍。

减轻

上面的论点可以证明,让开发人员及早发现并经常检测的过程是很有价值的。本质上,开发工作流程应确保尽早检测到缺陷,最好是在代码由开发人员编写期间,或者在合并到主开发分支之前处于代码审查阶段的时候。

像CI这样的过程有助于确保对代码的更改很小,并且易于管理,因此这样更容易检测问题。跟踪代码覆盖率并确保某个阈值是有用的,并能促进对代码的迭代以解决这些问题。

从本质上讲,流程和约定,应该在工作流的早期围绕移动缺陷检测进行来设计,并且尽可能的接近开发人员的编码环境。这样,相同的复合效果却会增加后期有利于提高软件质量和弹性的缺陷检测工作的负面影响。

全面学python的时代,作为程序员你怎么看?

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

原文:https://deepsource.io/blog/exponential-cost-of-fixing-bugs/

本文为 CSDN 翻译,如需转载,请注明来源出处。作者独立观点,不代表 CSDN 立场。

 热 文 推 荐 

让苹果“沦为配角”的华为都发布了什么?

势逼 React Native,跨平台开发框架 Flutter 很凶猛 | 码书

黑客少年手机编 10 万行代码,恶意篡改 App 只为了 “炫技”?

☞日本高中生开发酷炫“扔瓶子”机器人,想砸谁就砸谁

☞苹果春季发布会:库克绝不玩别人玩剩下的!

☞在线公开课 | 从理论走向实践,多角度详解Cloud Native

☞中国区块链职业发展现状: 30岁前不做开发; 平均薪资仅38.4万; 跳槽薪资涨三成 (附完整报告下载资源)

☞上海交大CV博导微信群辱骂学生,已停止教学

☞现实!程序员只有跳槽才能涨薪吗?

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

@程序员,你敢轻易地写 Bug 吗?相关推荐

  1. @程序员,终于可以放心写bug了!Facebook的debug神器你值得拥有

    作者 | 琥珀.非主流 出品 | AI科技大本营(公众号ID:rgznai100) "如果 Facebook 没有 AI,那它将失去根基."去年@Scale软件工程大会上,Face ...

  2. python在哪里写代码比较适合-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

  3. python在哪里写代码-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

  4. “穷X”事件程序员致歉:以后老实写代码,正紧写注释

    (点击上方公众号,可快速关注) 转自:新浪科技 tech.sina.com.cn/i/2017-11-20/doc-ifynwnty5776053.shtml 新浪科技讯  19日晚间,技术论坛出现了 ...

  5. “穷X”事件程序员致歉:以后老实写代码

    (点击上方公众号,可快速关注) 转自:新浪科技 tech.sina.com.cn/i/2017-11-20/doc-ifynwnty5776053.shtml 新浪科技讯  19日晚间,某技术论坛出现 ...

  6. 程序员你能发现自己的Bug吗?

    程序员在普通人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他们痛苦的根源,它就是Bug. 程序员调 ...

  7. html如何看数据是不是写死的,程序员常讲的「写死」是什么意思?

    我们在开发软件的过程中对于一些固定不变的参数都会写死,这个时候很多人也许不明白程序员嘴里说的「写死」是什么意思?可以不写死吗?不写死就会增加难度吗?这里吾爱编程为大家介绍一下关于程序员常讲的写死是什么 ...

  8. 一个程序员竟然喜欢上了写诗

    ​ 我是一个程序员,但我喜欢写诗.关于我喜欢写诗这件事是在无意中发现的:某日,突然心血来潮想弄个公众号(一个键盘侠),奈何总想水文章,于是就打算显摆下自己幼儿园语文接近满分的文学底蕴,然后就写了几首, ...

  9. 程序员简历项目经历怎么写 ?三条原则不可忽视 【项目案例分享】

    程序员简历项目经历怎么写 ?三条原则不可忽视 [项目案例分享] 作为一个程序员,想必大家曾经都做过一些项目,可能现在手头上也还有一些项目. 不过还是有很多学生朋友来问我"没有项目怎么办&qu ...

  10. 程序员,你真的会写简历吗?

    文章目录 程序员,你真的会写简历吗? 整体风格 内容 相关技能 项目经历.经验 程序员,你真的会写简历吗? 又是一年跳槽季,金三银四毫不夸张. 简历是我们找工作的行头,重要性不言而喻.可你真的会写简历 ...

最新文章

  1. 捣鼓 Subversion
  2. 读源码Apache-commons-lang3-3.1(三)
  3. Okhttp----缓存的加入方式----附完整demo
  4. 技术实践:大规模知识图谱预训练及电商应用
  5. 2021 NOI游记
  6. Oracle 循环相关
  7. 佐治亚理工学院 计算投资公开课第五周作业 市场仿真器
  8. mysql双主启停_Mysql 多实例配置与启停
  9. 微信公众平台开发中提示“该公众号提供的服务出现故障”问题解决
  10. Pygame小游戏之俄罗斯方块凭什么火了30年?(史上最畅销单机游戏)
  11. 卡尔曼滤波算法及C语言实现_源代码
  12. 一文科普区块链技术:未来注定将颠…
  13. 内存管理单元(MMU)介绍
  14. 方舟服务器在线人数查询软件,软件用户使用及在线人数统计无需服务器
  15. 全国计算机二级考试mc,新版全国计算机等级考试二级MSoffice选择题题库.docx
  16. 意外被裁,逆境中意外面过阿里3+1,成功拿下阿里Java岗P6 offer
  17. 微信小程序在iOS端,出现SSL错误,无法建立安全连接的问题解决
  18. android 通话背景音,360 Vizza设置通话背景音的方法
  19. 凸优化学习笔记 10:凸优化问题
  20. JavaScript-DOM练习

热门文章

  1. redis mysql qps_14_redis如何通过读写分离来承载读请求QPS超过10万+?
  2. C++函数和类的封装
  3. python矩阵转置与zip(*)的使用
  4. python快速编程入门课本中的名片管理器_python优雅操作-实现名片管理系统
  5. 中国农用喷雾机市场趋势报告、技术动态创新及市场预测
  6. 2021-2025年中国地下装载机行业市场供需与战略研究报告
  7. 计算机系元旦主题,元旦主题活动方案
  8. centos7 yum安装配置redis 并设置密码
  9. Serverless 全能选手,再添一“金”
  10. SoundWireServer使用以及失败问题