聊聊缺陷逃逸率

老_张發表於2024-05-17

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

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

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

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

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

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

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

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

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

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

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

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

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

相關文章