好久沒有溫習軟件缺陷的內容了,老師在PPT說過,由於過久沒有復習了印象很是模糊,特意翻開老師講過的課件看了一遍,現在我把內容大致的放在博客上,希望能夠對大家有所幫助。
軟件缺陷是什么?
軟件缺陷指的是系統或系統部件中那些導致系統或部件不能實現其功能的缺陷。如果在執行中遇到一個缺陷,可能引起系統的失效。那么准確有效的定義和描述軟件缺陷,可以使軟件缺陷得以快速修復,節約了軟件測試項目的成本和資源,提高產品質量。
軟件缺陷的基本描述
軟件缺陷的描述是軟件缺陷報告中測試人員對問題的陳述的一部分並且是軟件缺陷報告的基礎部分。同時,軟件缺陷的描述也是測試人員就一個軟件問題與開發小組交流且最好的機會。一個好的描述,需要使用簡單的、准確的、專業的語言來抓住缺陷的本質。
以下是軟件缺陷的有效的描述規則:
軟件缺陷標識和類型
軟件缺陷屬性包括缺陷標識、缺陷類型、缺陷嚴重程度、缺陷產生可能行、缺陷優先級、缺陷狀態、缺陷起源、缺陷來源、缺陷原因。
缺陷標識:是標記某個缺陷的唯一表示,可以使用數字序號表示。
缺陷類型:是根據缺陷的自然屬性划分缺陷種類。
常見軟件類型列表:
軟件缺陷缺陷嚴重程度
缺陷嚴重程度:是指因缺陷引起的故障對軟件產品的影響程度,所有“嚴重性”我指的是在測試條件下,一個錯誤系統中的絕對影響。常見軟件缺陷嚴重等級列表:
軟件缺陷缺陷產生的可能性和優先級
缺陷產生的可能性:指缺陷在產品中發生的可能性,通常可以用頻率表示。
缺陷優先級:指缺陷必須被修復的緊急程度。“優先級”的衡量抓住了在嚴重性中沒有考慮的重要程度因素。
軟件缺陷缺陷狀態
缺陷狀態:指陷通過一個跟蹤修復過程的進展情況,也就是在軟件生命周期中的狀態基本定義,如軟件缺陷列表所示:
簡單、優化的軟件缺陷生命周期
生命周期的概念是一個物種從誕生到消亡經歷了不同的生命階段,那么軟件缺陷生命周期應該指的是一個軟件缺陷被發現、報告到這個缺陷被修復、驗證直至最后關閉的完整過程。在整個軟件缺陷生命周期中,通常是以改變軟件缺陷的狀態來體現不同的生命周期的狀態的變化,來跟蹤項目進展的軟件質量。
一個簡單、優化的軟件缺陷生命周期:
發現-打開:測試人員找到軟件缺陷並將軟件缺陷提交給開發人員。
打開-修復:開發人員再現、修復缺陷、 然后提交給測試人員去驗證。
修復-關閉:測試人員驗證修復過的軟件,關閉已不存在的缺陷。
軟件缺陷處理技巧
管理員、測試人員和開發人員需要掌握在軟件缺陷生命周期的不同階段處理軟件安缺陷技巧,從而盡快處理軟件缺陷,縮短軟件缺陷生命周期,
以下列出處理軟件缺陷基本技巧:
審閱:當測試人員在缺陷跟蹤數據庫中輸入了一個新的缺陷時,測試員應該提交它,以便在它能夠起作用之前進行審閱。這種審閱可以由測試管理員、項目管理員或其他人來進行,主要審閱缺陷報告的質量水平;
拒絕:如果審閱者決定需要對一份缺陷報告進行重大修改,例如需要添加更多的信息或者需要改變缺陷的嚴重等級,應該和測試人員一起討論,由測試人員糾正缺陷報告,然后再次提交;
完善:如果測試員已經完整地描述了問題的特征並將其分離,那么審閱者就會肯定這個報告。
分配:當開發組接受完整描述特征並被分離的問題時,測試員會將他分配給適當的開發人員,如果不知道具體開發人員,應分配給項目開發組長,由開發組長再分配給對應的開發人員。
測試:一旦開發人員修復一個缺陷,它就將進入測試階段。缺陷的修復需要得到測試人員的驗證,同時還要進行回歸測試,檢查這個缺陷的修復是否會引入新的問題;
重新打開:如果這個修復沒有通過確認測試,那么測試人員將重新打開這個缺陷報告。重新打開一個缺陷報告,需要加注釋說明,否則會引起“打開-修復”多個來回,造成測試人員和開發人員不必要的矛盾
關閉:如果修復通過驗證測試,那么測試人員將關閉這個缺陷。只有測試人員有關閉缺陷的權限,開發人員沒有這個權限。
暫緩:如果每個人都同意將確定存在的缺陷移到以后處理,應該指定下一個版本號或修改的日期。一旦心的版本開始時,這些暫緩的缺陷應該重新被打開。
測試人員、開發人員和管理者只有緊密的合作,掌握軟件缺陷處理技巧,在項目不同階段,及時的審查、處理和跟蹤每個軟件缺陷,加速軟件缺陷狀態的變換,提高軟件質量,促進項目的發展。
軟件缺陷跟蹤系統
到目前為止所講述的一切表面上看起來很好,但是運用到實踐中還需要軟件缺陷跟蹤系統,以便描述報告所發現的缺陷,處理軟件缺陷屬性,跟蹤軟件缺陷的整個生命周期和生成軟件缺陷跟蹤圖表等。為什么需要建立一套軟件缺陷跟蹤系統呢?因為它會讓我們受益無窮,概括起來有:
一、軟件缺陷跟蹤系統擁有軟件缺陷跟蹤數據庫,它不僅有利於軟件缺陷的清楚描述,還提供統一的、標准化報告,使所有人的理解一致;
二、缺陷跟蹤數據庫允許自動連續的軟件缺陷編號,還提供了大量供分析和統計的選項,這是手工方法無法實現的;
三、基於缺陷跟蹤數據庫,可快速生成滿足各種查詢條件、所必要的缺陷報表、曲線圖等,開發小組乃至公司的每一個人都可以隨時掌握軟件產品質量的整體情況、或測試/開發的進度;
四、缺陷跟蹤數據庫提供了軟件缺陷屬性並允許開發小組根據對項目的相對和絕對重要性來修復缺陷;
五、可以在軟件缺陷的生命期中管理缺陷,從最初的報告到最后的解決。確保了每一個缺陷不會被忽略,同時,它還可以使注意力保持在那些必須盡快修復的重要缺陷上;
六、當缺陷在它的生命周期中變化時,開發人員,測試人員以及管理人員將熟悉新的軟件缺陷信息。一個設計良好的軟件缺陷跟蹤系統可以獲取歷史記錄,並在檢查缺陷的狀態時參考歷史記錄;
七、在軟件缺陷跟蹤數據庫中關閉每一份缺陷報告,它都可以被記錄下來。當產品送出去時,沒一份未關閉的缺陷報告都提供了預先警告的有效技術支持,並且證明測試人員找到特殊領域突然出現的事件中的軟件缺陷。
軟件缺陷報告
任何一個缺陷跟蹤系統的核心都是“軟件缺陷報告”,一份軟件缺陷報告詳細信息如表:
軟件缺陷的詳細描述
軟件缺陷的詳細描述,如上所述,由三部分組成:操作/重現步驟、期望結果、實際結果,有必要再做進一步的討論:
“步驟”提供了如何重復當前缺陷的准確描述,應簡明而完備、清楚而准確。這些信息對開發人員是關鍵的,視為修復缺陷的向導,開發人員有時抱怨槽糕的缺陷報告,往往集中在這里;
“期望結果”與測試用例標准或設計規格說明書或用戶需求等一致,達到軟件預期的功能。測試人員站在用戶的角度要對它進行描述,它提供了驗證缺陷的依據;
“實際結果” 測試人員收集的結果和信息,以確認缺陷確實是一個問題,並標識那些影響到缺陷表現的要素。
缺陷報告的示例
一份優秀的缺陷報告記錄下最少的重復步驟,不僅包括了期望結果,實際結果和必要的附件,還提供必要數據、測試環境或條件,以及簡單的分析。
而一份含糊而不完整的缺陷報告,缺少重建步驟,並且沒有期望結果,實際結果和必要的圖片,如下描述。
一份散漫的缺陷報告(無關的重要步驟,以及對開發人員理解這個錯誤毫無幫助的結果信息)如下描述
缺陷報告數據庫信息
項目中使用Microsoft Excel 電子表格或Word 文檔來記錄和跟蹤軟件缺陷,但一般只限於最后的分析報告、文檔的打印。為了靈活地存儲、操作、搜索、分析以及報告大量數據,我們需要建一個數據庫。
基於已經討論過的內容, 就比較容易建立一個軟件缺陷跟蹤數據庫,可以使用Microsoft Access或SQL server,也可以使用Oracle、DB2等關系數據庫管理系統。一個缺陷跟蹤數據庫的基本表,將要包括多達幾十項的數據項,如bug的ID號、標題(Title)、狀態、嚴重程度、優先級、重現步驟、期望結果、實際結果、項目名稱、模塊、報告作者、日期等
所有缺陷的數據庫不僅要存儲在共享數據庫中,還要有相關的數據連接,如產品特性數據庫、產品配置數據庫、測試用例數據庫等的集成。因為某個缺陷是和某個產品特性、某個軟件版本、某個測試用例等相關聯的,有必要建立起這些關聯。同時為了提高缺陷處理的效率,還有和郵件服務器集成,通過郵件傳遞,測試和開發人員隨時可以獲得由系統自動發出有關缺陷狀態變化的郵件。
缺陷跟蹤的方法和圖表
缺陷數據是生成各種各樣測試分析、質量控制圖表的基礎,從這些缺陷分析圖表中可以清楚地看到缺陷的修復過程,分析缺陷發生的根本原因,跟蹤管理缺陷的效率。
1、軟件項目如何發展:軟件缺陷打開/關閉圖表
打開/關閉圖表是最基本的缺陷分析圖表,它能提供許多有關軟件缺陷狀態、項目進度、產品質量、開發人員的工作等信息:
1)項目目前的質量輕快取決於累計打開曲線和累計關閉曲線的趨勢。
2)項目目前的進度取決於累積關閉曲線和累積打開曲線起點的時間差。
3)開發人員已經完成修復軟件缺陷了嗎?累積關閉曲線是否快速的上升。
4)測試人員是否積極的去驗證軟件缺陷也就是說:是否累積關閉曲線緊跟在累積打開曲線后面。
管理者可以知道項目在哪一個時間點出現問題,同時協調開發測試之間的關系,積極推動項目的發展,從而達到項目里程碑的要求,提高項目發布的質量。以下將通過打開/關閉的累積缺陷圖分析項目的進展情況
打開/關閉的累積缺陷圖
------當累積的打開曲線(如圖的頂部曲線)在一條漸近線限制下穩定下來,通常就認為該測試完成了。
------修正日期在關閉日期之前,可以看到關閉曲線大約落后了一個星期。這種滯后起源於將修復的軟件缺陷引入到產品並將該產品發送到測試小組,以及測試配置和回歸測試所引起的延遲。這種延遲集中到測試的最后一天。
------在當前測試階段找到軟件缺陷的能力在減弱。發現軟件缺陷的極限在8月23號左右;接下來系統測試第二個周期發現少數幾個軟件缺陷,在最后的周期找你拐沒有發現缺陷。
------開發人員完成了修復軟件缺陷了嗎?在測試和修復過程中,發現這兩條曲線在不斷的收斂,當這兩條曲線收斂成一個點時,開發人員基於完成了修復軟件缺陷的任務了。並且注意到關閉曲線緊跟在打開曲線的后面,這標明項目小組正在快速地推進問題的解決。
------當測試人員從一個測試階段到另一個測試階段時,發現累積打開曲線有一個突起,這樣的凸起是非常可怕的,說明開發人員修復缺陷引入新的缺陷或者有些軟件缺陷被遺漏到下一個階段發現了。項目管理人員需要召開緊急會議分析當前項目情況。找到解決辦法。
軟件缺陷為何發生:根本原因圖表
分析軟件缺陷根本原因不僅有助於測試人員決定哪些功能領域需要增強測試,而且可以使開發人員的注意力集中到那些引起最嚴重,最頻繁的領域。如下圖顯示了軟件缺陷產生的3個主要來源區域------用戶界面顯示,邏輯和規格說明書-------占據發現軟件缺陷總數的75%。如果從測試風險角度看,這些區域可能隱藏缺陷比較多的地方,需要測試更細、更深些。從開發角度來說,這些是代碼質量提高的主要區域,假定某個產品前后發現10000個Bug,代碼在這三個區域減少10個百分點,則總Bug數能減少750(7.5%),代碼質量改善效果就很顯著
開發人員如何響應:關閉軟件缺陷周期圖表
關閉軟件缺陷周期圖標