當前位置:
首頁 > 知識 > 程序員,你敢輕易地寫 Bug 嗎?

程序員,你敢輕易地寫 Bug 嗎?

發現和修復缺陷的成本如何隨著時間的推移而增加。

程序員,你敢輕易地寫 Bug 嗎?

打開今日頭條,查看更多圖片

作者 | Sanket

譯者 | 姜松浩

責編 | 屠敏

出品 | CSDN(ID:CSDNNews)

以下為譯文:

在軟體開發工作流程中,檢測和修復軟體中缺陷的成本隨著時間呈指數增長。修復現場的錯誤是非常昂貴的,而且風險很大-通常是一兩個數量級。成本不僅在於當前浪費的時間和資源,而且還在於未來可能失去的情況。


大多數缺陷的成本高於防止它們的成本。缺陷在發生時很昂貴,花費的成本包括修復缺陷的直接成本和由於關係受損,業務損失以及開發時間損失導致的間接成本。 ——Kent Beck,, Extreme Programming Explained

以下圖表由NIST提供,有助於可視化隨著軟體在軟體開發的五個廣泛階段中的發展,在檢測和修復缺陷方面的努力是如何增加的。

程序員,你敢輕易地寫 Bug 嗎?

為了理解成本以這種方式增加的原因,讓我們考慮以下幾點:

  • 當開發人員仍在編寫代碼時,更容易檢測代碼中的問題。由於代碼在腦海中仍然很新鮮,因此即使解決很複雜的問題也會很容易。隨著時間的推移,代碼轉移到後期階段,開發人員需要記住所有內容並在問題解決之前找到問題。如果自動化系統(例如CQ集成)在開發人員仍在編寫代碼時突出顯示代碼中的問題,則出於同樣的原因,他們更容易一併修復程序。
  • 一旦軟體處於測試階段,在開發人員的本地環境中複製缺陷,這樣就成為另一項耗時的任務了。另外,雖然很容易根據要求捕獲明顯損壞的或者不滿足要求的東西,但是發現更基礎的缺陷則是非常困難的,需要考慮內存泄漏、競爭條件等等。不幸的是,如果這些問題擺脫了編碼階段,它們通常在生產階才會出現。
  • 軟體發布並投入使用後,不僅很難找到缺陷,而且風險也非常高。除了需要實時防止用戶受到問題的影響外,還需要確保服務的可用性對業務至關重要。與早期修復這些缺陷的情況相比,這些影響的混合將導致成本將高達30倍。

減輕

上面的論點可以證明,讓開發人員及早發現並經常檢測的過程是很有價值的。本質上,開發工作流程應確保儘早檢測到缺陷,最好是在代碼由開發人員編寫期間,或者在合併到主開發分支之前處於代碼審查階段的時候。

像CI這樣的過程有助於確保對代碼的更改很小,並且易於管理,因此這樣更容易檢測問題。跟蹤代碼覆蓋率並確保某個閾值是有用的,並能促進對代碼的迭代以解決這些問題。

從本質上講,流程和約定,應該在工作流的早期圍繞移動缺陷檢測進行來設計,並且儘可能的接近開發人員的編碼環境。這樣,相同的複合效果卻會增加後期有利於提高軟體質量和彈性的缺陷檢測工作的負面影響。

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

本文為 CSDN 翻譯,如需轉載,請註明來源出處。作者獨立觀點,不代表 CSDN 立場。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

度遭處罰;科大訊飛回應裁員;蘋果推萬元中國紅手機 | 極客頭條
十年程序員的告誡:千萬不要重寫代碼!

TAG:CSDN |