聊聊缺陷逃逸率

輔導星球一位同學模擬面試,過程中聊到了缺陷逃逸率相關的話題。我在以前寫的關於質量保障相關的文章中提到過缺陷逃逸率,這是一項比較重要的衡量軟件產品交付質量的指標。

所謂缺陷逃逸率,指的是軟件產品線上發佈後,發生在線上環境的缺陷數量與該版本迭代生命週期內總缺陷數量的比率,缺陷逃逸率也稱之爲線上BUG逃逸率或者“測試逃逸”。

關於線上缺陷逃逸率,有這樣一個計算公式:線上缺陷逃逸率=線上缺陷數/版本週期總缺陷數×100%。這個指標一般除了衡量線上的產品交付質量以外,還可以用來評估技術團隊的質量控制水平。

爲什麼會有缺陷逃逸率這樣一個質量度量指標呢?原因有這幾點:

  • 測試無法窮盡:即在現實的情況下,測試無法覆蓋所有的測試點。
  • 系統存在問題:由於設計等各種因素,因此軟件系統一定存在問題。
  • 驗證而非改善:測試是爲了驗證產品質量是否符合預期,而不能直接改善質量。

在這三點原因或者說前提之下,軟件測試工作在近幾年的定位逐漸演變成了質量保障。通過各種手段方法來控制整體的交付質量滿足預期設計的標準,並想辦法進一步提高質量和穩定性。

 

哪些因素會導致出現缺陷逃逸呢?主要有如下幾點因素:

  • 需求設計本身存在邏輯缺陷或者漏洞;
  • 需求評審階段未發現需求的邏輯漏洞;
  • 研發的代碼存在漏洞,且自測未發現;
  • 測試用例設計無法窮盡覆蓋所有節點;
  • 測試用例執行過程中存在漏測和誤差;
  • 測試環境和生產環境配置差異導致漏測;
  • 需求的頻繁變更和一句話需求導致漏測;
  • 項目管理不足和資源緊張導致的客觀因素;
  • 線上發佈時的變更和數據差異導致的缺陷;

上述這些影響因素,作爲技術同學應該都很熟悉,且總是被這些問題所困擾。那如何降低缺陷逃逸率,提升交付質量和控制交付過程質量呢?常見的方法有如下幾種:

  • 測試左移:測試儘早介入,在需求和編碼階段就參與進來,通過需求分析/評審、風險評估等方式降低風險。
  • 質量門禁:在軟件產品的每個流轉環節都設定準入準出標準,進一步降低風險和缺陷流轉到下一環節的概率。
  • 項目管理:制定合理的項目管理流程機制,針對資源不足、頻繁變更等影響質量的風險動作制定專門的預案。
  • 專項治理:通過加強基礎技術設施建設,工具流程優化等方式,提升測試環境穩定性,提升測試數據準確度。
  • 變更管理:據不完全統計,線上大部分問題來自於變更。因此針對配置變更、業務變更等事項加強評審檢查。
  • 線上巡檢:完善線上監控覆蓋和鏈路追蹤,通過手工+自動化方式在線上針對P0-P2業務流程進行不定時巡檢。
  • 應急機制:制定線上的應急響應機制和穩定性預案,快速發現和解決問題,降低線上問題發現解決耗時,通過穩定性預案作爲兜底和應急措施,減少線上問題對業務的不良影響。
  • 覆盤優化:制定問題覆盤和持續優化機制,找到問題根因並持續優化,做到優化措施有人做,監督驗證專人跟進。
  • 技術改進:採用一些新技術來提升線上系統的穩定性,比如生產全鏈路壓測和混沌工程。

 

上述的幾種方式適用於整個的質量保障過程,而缺陷逃逸率也僅是評估交付質量和質量控制的指標之一。測試團隊更需要從多維度和全局角度來思考,如何保障和提升研發測試過程質量以及交付質量。

除了上述的一些方法之外,諸如用例和缺陷關聯分級,監控告警等方法也是可以採用的手段。還需要意識到的一點是,缺陷逃逸率是比較滯後的統計結果,只能作爲一種定時的評估指標和參考,而非一言定質量好壞的唯一結論。

在實際的工作應用過程中,需要根據實際的項目情況和團隊現狀進行落地,找到適合自己團隊的落地方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章