軟體缺陷管理過程不僅包含軟體缺陷記錄和統計,更重要的是對缺陷數據進行細緻、深入的分析。缺陷分析是缺陷管理中的一個重要環節,有效的缺陷分析不僅可以評價軟體質量,同時可以幫助項目組很好地掌握和評估軟體的研發過程,進而改進研發過程,未對缺陷進行分析就無法對研發流程進行改進。此外,還能為軟體新版本的開發提供寶貴的經驗,進而在項目開展之前,制定準確、有效的項目控制計劃,為開發高質量的軟體產品提供保障。
常用的缺陷分析方法有:根本原因缺陷分析法、四象限缺陷分析法、ODC 缺陷分析法、Rayleigh缺陷分析法和Gompertz 缺陷分析法。
本節我們來學習下ODC缺陷分析法。
ODC(Orthogonal Defect Classification,正交缺陷分類)是獲取缺陷的一種分類方案,但它不僅僅是一個分類方案,還是一個軟體過程的度量系統,它是建立在包含於缺陷流中的語義信息基礎上的,可以幫助評估測試效率,對錯誤進行跟蹤,通過方案的分析機制可以評估客戶的滿意度。
1990 年Ram Chillarege 博士等人提出ODC 概念,並於1997 年基本完成ODC 理論體系建設。1998 年以後,IBM 公司開始在其全球24 個研發機構推廣該技術,並取得了很好的經濟效益。
ODC 一共有8 個屬性,如圖9-17 所示。當測試工程師發現缺陷並進行提交時,可以為該缺陷分配「活動(Activity)」「觸發(Trigger)」和「影響(Impact)」三個屬性;開發工程師在修改缺陷時,可以為該缺陷分配「階段(Age)」「來源(Source)」「限定符(Qualifier)」「類型(Type)」和「目標(Target)」五個屬性。
活動(Activity):是指當前缺陷被發現時的實際操作步驟(如代碼審查、功能測試等)。
觸發(Trigger):描述暴露該缺陷時系統的環境或引發的條件。
影響(Impact):該缺陷給用戶帶來哪些方面的影響。
階段(Age):缺陷是由新代碼還是重寫的代碼引起的。
來源(Source):缺陷出現在內部代碼、重用庫代碼、移植代碼還是外包代碼。
限定符(Qualifier):定義引起缺陷的原因。
類型(Type):定義缺陷的類型,如演算法、初始化等。
目標(Target):將在哪裡改正錯誤,如設計、代碼等。