Parasoft是一家專門提供軟體測試解決方案的公司,解決方案几乎涵蓋了軟體開發週期從開始到結束所有的階段。在工作中,您越早發現程式碼中的問題,他們的影響就越小,處理的成本也越低。在本文中,我們將探討左移方法以及如何在組織中左移。
左移測試方法
“shift-left”的運動是將關鍵測試實踐轉移到開發生命週期的早期階段,其特別適用於敏捷、持續和DevOps計劃。那麼為什麼需要進行早期的軟體測試呢?
許多測試活動發生在週期的後期,需要更長時間才能找出問題所在並且需要花費更多的時間來修復。向左移動是指將缺陷的識別和預防轉移到更早的階段。如果沒有進行左移測試,只等著在週期的後期執行測試實踐,那能做的就只是修補而不是正確的修復它們。
程式碼什麼時候會有Bug
在Capers Jones的一個著名的圖表中很好地說明了左移測試策略,該圖表顯示了在軟體開發的幾個階段,軟體處理錯誤和缺陷的成本在增加。該圖的第一部分顯示絕大多數錯誤在編碼階段進入,這是符合預期的。
無論是出現實際錯誤,還是誤解了要求,或者沒有考慮特定程式碼片段的影響,開發人員都會在程式碼生成時引入缺陷。
什麼時候發現了這些Bug
我們在引入的圖表發現缺陷的位置進行顯示,發現基本上是第一條線的反轉。
這並不奇怪,因為通常在開始測試時會發現錯誤,如果沒有適當的基礎設施以及在一切準備就緒之前就開始測試可能會很困難。我們在這裡看到的是,錯誤主要是在編碼期間引入的,但在該階段幾乎從未找到過。
修復Bug的費用
由於大多數錯誤是在編碼期間引入的,但直到後期才發現,因此瞭解在每個開發階段修復缺陷所需的成本差異變得非常重要。如下圖所示:
我們看到一個令人討厭的成本變化。修復潛入系統測試Bug的成本是在編碼期間修復它的40倍,或者比在單元測試期間找到相同的bug要貴10倍。這種成本上升的原因有很多,包括:
- 追蹤問題所需的時間和精力。測試用例越複雜,就越難以弄清楚它的哪一部分是真正的麻煩製造者。
- 在資料庫或第三方API之類的系統依賴下,開發人員找到Bug的難度增加。
- 修復Bug所產生的其他影響。比如這個Bug已經引入到其他框架或者任何地方。
早期測試和頻繁測試
現在橙色線新增到下圖中,它表明了在早期測試的建議下Bug檢測週期已經左移:
您可以看到橙色檢測曲線代表的成本值在左側變大,意味著我們的成本顯著下降。
左移測試依賴於更成熟的開發實踐環境,您只需要進行一定的手動/UI測試即可證明一切正常。這樣,後期迴圈測試就是為了證明功能,而不是發現錯誤。
更遠的左移測試
有些組織在進一步向左推進編碼本身時會獲得更多的價值。畢竟這是最開始引入錯誤的地方。通過查詢更左邊的缺陷,使缺陷修復更便宜:
避免將負擔轉移給開發人員
更遠的左移測試有一個危險,就是不小心給開發人員帶來太多的測試負擔。雖然隨著時間的推移,缺陷修復的成本會大幅提高,但左側的資源可能是軟體生命週期中的最高成本。
所以正確的是將所有提到的這些提升到一個新的水平。我們不僅希望更早發現缺陷,而且希望減少實際放入應用程式的缺陷數量。
左移測試的主要方法
一、應用開發測試最佳實踐
執行早期階段開發實踐(例如靜態程式碼分析和單元測試)有助於在流程早期識別和預防缺陷。重要的是減少錯誤的數量而不是找到錯誤。
二、利用服務虛擬化來實現持續測試
您必須接受在開發過程的所有階段(包括後續階段)建立的測試,並繼續執行它們。單元測試可以很容易地連續執行,但由於外部系統依賴性,後續階段功能測試的執行通常很困難,這是您可以利用服務虛擬化實現連續測試的地方。
總結
有效的質量保證流程可顯著提高質量,同時節省時間和金錢。 當您通過利用現代軟體測試技術向左移動時,您可以獲得可靠和安全的軟體。通過左移測試,您可以通過更早發現Bug來降低測試成本,同時還可以減少放入程式碼中的Bug數量。
檢視轉載原文請點選這裡。