一、軟件缺陷的定義
按照定義,可以分爲文檔缺陷、代碼缺陷、測試缺陷、過程缺陷;
文檔缺陷:文檔在靜態檢查過程中發現的缺陷;
代碼缺陷:對代碼進行同行評審、審計或代碼走查過程中發現的缺陷;
測試缺陷:由測試執行活動發現的被測對象的缺陷;
過程缺陷:通過過程審計、過程分析、管理評審、質量評估、質量審覈等活動發現的關於過程的缺陷和問題;
(文檔缺陷和代碼缺陷是對象缺陷就是文檔和代碼的缺陷,測試缺陷和過程缺陷是過程缺陷就是測試活動發現的和過程活動發現的缺陷)
二、軟件缺陷的種類
輸入/輸出缺陷;邏輯缺陷;計算缺陷;接口缺陷;數據缺陷;
三、軟件缺陷的產生
疏忽造成的錯誤 carelessness defect;
不理解造成的錯誤 misapprehend defect;
二義性造成的錯誤 ambiguity defect;
遺漏造成的錯誤 skip defect;
四、軟件缺陷數目估計
1.撒播模型
乒乓球法:
N/(N+M)=n/(n+m)即是N=n*M/m
程序中固有的缺陷是未知的,檢測每個錯誤的難易程度也同樣是未知的。
檢測人工置入的缺陷是否和程序中存在的難易程度也一樣是位置的。
Hyman缺陷預測:
第一個人發現了n個錯誤,第二個人發現了m個錯誤,屬於兩個人共同發現的錯誤有m1個,則公式爲:
N/n=m/m1即是N=m*n/m1
2.靜態模型
?
3.覆蓋率預測模型
錯誤數和時間:隨着時間的增加,單位時間內發現的錯誤數變少;
錯誤數和覆蓋率:基本是成正比的;
覆蓋率和時間:隨着時間的增加,單位時間內覆蓋率變少;
五、軟件缺陷管理
1.缺陷管理的目的:
確保每個被發現的缺陷都能被解決;
收集缺陷數據並根據缺陷趨勢曲線識別測試過程的階段;
收集缺陷數據並在其上進行數據分析,作爲組織的過程財富;
2.缺陷報告:記錄缺陷,缺陷分類,缺陷跟蹤;
3.缺陷報告的特點:書面的,已編號的,簡單的,可重現的,不做判斷的;
六、缺陷的生命週期
未經確認,活躍,已分配,已解決,已驗證,關閉;