作者出處未知。
認識軟體缺陷,首先要瞭解軟體缺陷的概念,其次是瞭解軟體缺陷的詳細特徵,最後就是它的屬性了,再高一個層次就是學習利用管理軟體缺陷的工具了。
1、首先介紹軟體缺陷的概念
軟體缺陷是指系統或系統組件中那些導致系統或組件不能實現其功能的缺陷。
2、軟體缺陷的詳細特徵
a、單一準確
b、可以再現(要求軟體缺陷具有精確的步驟)
c、完整統一
d、短小簡練
e、特定條件
f、補充完整
g、不做評價
3、軟體缺陷的屬性
軟體缺陷的屬性包括缺陷標識、缺陷類型、缺陷嚴重程度、缺陷產生可能性、缺陷優先順序、缺陷狀態、缺陷起源、缺陷來源、缺陷原因。
下面詳細介紹一下以上這些屬性:
a、缺陷標識:是標記某個缺陷的唯一標識,可以用數字序號表示;
b、缺陷類型:功能、使用者介面、文檔、軟體包、效能、系統"模組介面
功能:影響了各種系統功能、邏輯的缺陷;
使用者介面:影響了使用者介面、人機互動特性,包括螢幕格式、使用者輸入靈活性、結果輸入格式等方面的缺陷;
文檔:影響發布和維護,包括注釋、使用者手冊、設計文檔;
軟體包:由於軟體配置庫、變更管理或版本控制引起的錯誤;
效能:不滿足系統可測量的屬性值,如執行時間、交易處理速率等;
系統"模組介面:與其他組件、模組或裝置驅動程式、調用參數、控制塊或參數列表等不匹配、衝突。
c、缺陷嚴重程度:致命(Fatal)、嚴重(Ceritical)、一般(Major)、較小(Minor)
致命:系統任何一個主要功能完全喪失,使用者資料受到破壞,系統崩潰、懸掛、死機或者危機人身安全;
嚴重:系統的主要功能部分喪失,資料不能儲存,系統的次要功能完全喪失,系統所提供的功能或服務受到明顯的影響;
一般:系統的次要功能沒有完全實現,但不影響使用者的正常使用。例如:提示資訊不太準確或使用者介面差、操作時間長等一些問題;
較小:使操作者不方便或遇到麻煩,但它不影響功能過的操作和執行,如個別不影響產品理解的錯別字、文字流向不整齊等一些小問題
d、缺陷產生可能性:總是、通常、有時、很少
總是:總是產生這個軟體缺陷,其產生的頻率是100;
通常:按照測試案例,通常情況下會產生這個軟體缺陷,其產生的頻率大概是80—90;
有時:按照測試案例,有時候產生這個軟體缺陷,其產生的頻率大概是30—50;
很少:按照測試案例,很少產生這個軟體缺陷,其產生的頻率大概是1—5.
e、缺陷的優先順序:立即解決、高優先順序、正常排隊、低優先順序
立即解決:缺陷導致系統幾乎不能使用或者測試不能繼續,需立即修複;
高優先順序:缺陷嚴重,影響測試,需要優先考慮;
正常排隊:缺陷需要正常排隊等待修複;
低優先順序:缺陷可以再開發人員有時間的時候被糾正。
f、缺陷狀態:啟用或開啟、已修正或修複、關閉或非啟用、重新開啟、延遲、保留、不能重現、需要更多資訊
啟用或開啟:問題還沒有解決,存在原始碼中,確認”提交的缺陷”,等待處理,如新報的缺陷;
已修正或修複:已被開發人員檢查、修複過的缺陷,通過單元測試,認為已經解決但還沒有被測試人員驗證;
關閉或非啟用:測試人員驗證後,確認缺陷不存在之後的狀態;
重新開啟:測試人員驗證後,確認缺陷不存在之後的狀態;
延遲:這個軟體缺陷可以在下一個版本中解決;
保留:由於技術原因或第三者軟體的缺陷,開發人員不能修複的缺陷;
不能重現:開發不能再現這個軟體缺陷,需要測試人員檢查缺陷再現的步驟;
需要更多資訊:開發能再現這個軟體缺陷,但開發人員需要一些資訊,例如缺陷的記錄檔、圖片等。
g、軟體缺陷的起源:需求、構架、設計、編碼、測試、使用者
在團建生命週期中軟體缺陷占的比例:需求和構架設計階段佔54、設計階段佔25、編碼階段佔15、其他佔6.
h、軟體缺陷的來源:需求說明書、設計文檔、系統整合介面、資料流(庫)、程式碼
需求說明書:需求說明書的錯誤或不清楚引起的問題;
設計文檔:設計文檔描述不準確。和需求說明書不一致的問題;
系統整合介面:系統個模組參數不匹配、開發組之間缺乏協調引起的缺陷;
資料流(庫):由於資料字典、資料庫中的錯誤引起的缺陷;
程式碼:純粹在編碼中的問題所引起的缺陷。
i、缺陷根源:測試策略,過程、工具和方法,團隊"人,缺乏組織和通訊,硬體,軟體,工作環境
測試策略:錯誤的測試範圍,誤解測試目標,超越測試能力等;
過程、工具和方法:無效的需求收集過程,果實的風險管理過程,不使用的專案管理方法,沒有估算規程,無效的變更控制過程等;
團隊"人:項目團隊職責交叉,缺乏培訓。沒有經驗的項目團隊,缺乏士氣和動機不純等;
缺乏組織和通訊:缺乏使用者參與,職責不明確、管理失敗等;
硬體:硬體設定不對、缺乏、或處理器缺陷導致算術精度丟失,記憶體溢出等;
軟體:軟體佈建不對、缺乏,或作業系統錯誤導致無法釋放資源,工具軟體的錯誤,編譯器的錯誤,千年蟲問題等;
工作環境:組織機構調整,預算改變,工作環境惡劣,如噪音過大。
4、學會利用管理缺陷的工具
例如TD、bugfree、bugzille等