了解如何報告軟體缺陷,如何整理出重現缺陷的必要步驟,如何描述缺陷是其它人可以理解並願意修改。
一、設法修復軟體缺陷
不管計畫和執行測試多麼努力,並非所有軟體缺陷發現了都能修復。
以下列舉了不修復軟體缺陷的原因:
沒有足夠的時間。
不算真正的軟體缺陷。
修復的風險太大。
不值得修復。
無效的軟體缺陷修復報告。
注意報告軟體缺陷的基本規則:
盡快報告軟體缺陷。
有限描述軟體缺陷。
(1)短小。
(2)單一。
(3)快速技巧提示。
(4)明顯並通用。
(5)可再現。
在報告軟體缺陷時不要做評價
對軟體缺陷報告跟蹤到底。
二、分離和再現軟體缺陷
分離和再現軟體缺陷是充分發揮偵探才幹的地方,設法找出收縮問題的具體步驟。好訊息是不存在隨機軟體缺陷這樣的事——如果建立完全相同的輸入和完全角同的環境條件,軟體缺陷就會在此出現。
如果找到的軟體缺陷需要採用繁雜的步驟才能再現,或者根本無法再現,可以嘗試以下的提示和技巧:
(1)不要想當然地接收任何假設。
(2)查詢時間依賴和競爭條件的問題。
(3)邊界條件缺陷、記憶體洩漏和資料溢位等百合問題可能會慢慢自己顯露出來。
(4)軟體缺陷僅在特定軟體狀態中線路出來。
(5)考慮資源依賴性和記憶體、網路、硬體共享的互相作用。
(6)不要忽視硬體。
如果盡最大努力分離軟體缺陷,也無法用簡明的步驟再現,那麼仍然需要記錄軟體缺陷,以免跟丟了。也許測試員禁用重程式設計師那裡了解的資訊就能找到問題所在。
三、並非所有軟體缺陷生來就是平等的。
在報告軟體缺陷時,一般要講明它們將產生什麼結果。測試員要對軟體缺陷分類,以簡明扼要的方式指出其影響,常用方法是給軟體缺陷劃分嚴重性和優先順序。
嚴重性(severity):是指軟體缺陷的惡劣程度,當使用者碰到該缺陷時影響的可能性和程度。
優先順序(priority):表示修復缺陷的重要程度和緊迫程度。
以下是嚴重性和優先順序的常用劃分方法:
嚴重性:
(1)系統崩潰、資料丟失、資料損壞、安全性被破壞。
(2)操作性錯誤、結果錯誤、功能遺漏。
(3)小問題、拼寫錯誤、ui布局、罕見故障
(4)建議。
優先順序:
(1)以及修復,阻止了進一步測試,立竿見影
(2)在產品發布之前必須修復
(3)如果時間允許應該修復
(4)可能會修復,但是即使有產品也能發布。
四、軟體缺陷的生命週期
開啟狀態(open state):當軟體缺陷首先被軟體測試員發現時,被記錄報告並制定的程式設計師修復。
解決狀態(resolved state:一旦程式設計師修復了**,報告又指定回到測試員手中時,軟體的狀態。
關閉狀態(closed state):測試員執行驗證測試,確認軟體缺陷確實得以修復。如果是,就把它關掉,軟體測試進入最後的狀態。
審查狀態(review state):是指專案經理或者會員會(有時稱為變動控制委員會(change control board))決定軟體缺陷是否應該修復。
推遲(deferred):審查可能認定軟體缺陷應該在將來的某一時間考慮修復,但是在軟體該版本中不修復。
由於軟體測試員永遠不會放棄,因此原來認定為已經修復、測試和關閉的缺陷可能會再次出現。此類軟體缺陷一般稱為回歸缺陷(regressions)。推遲修復的軟體缺陷以後可能會被證實為很嚴重,要立即修復。
五、軟體缺陷跟蹤系統
軟體缺陷跟蹤系統:在實踐過程中,以便記錄發現的軟體缺陷,並在其真個生命週期中進行監視。
測試實踐報告(test incident report)文件:目的在於記錄在需要調查的測試過程期間發生的任何事件。
軟體報告過程:
識別符號。
總結。事件描述。
(1)時間和日期
(2)測試員的姓名
(3)使用的硬體和軟體配置
(4)輸入
(5)過程步驟
(6)預期結果
(7)實際結果
(8)試圖再現以及嘗試的描述
(9)有助於程式設計師定位軟體缺陷和其他現象或者資訊。
自動化軟體缺陷報告和跟蹤系統:
一旦輸入了軟體缺陷,實際就開始了軟體缺陷的生命週期,在軟體生命週期中的任何時候,可能需要增加新資訊已明確細節內容,更愛優先順序或者嚴重性,對資料做小的變動。
許多軟體缺陷資料庫不僅跟蹤修的備註,而且跟蹤程式設計師修復軟體時做了什麼。**行、模組、聲之錯誤型別也會記錄。所有的這些資訊有助於在重新測試軟體缺陷是確認其修復情況。如果證實軟體缺陷沒有修復,只需要重新開啟缺陷,再一次啟動生命週期。
參考文獻
《軟體測試(原書第2版)》
《軟體測試的藝術(原書第3 版)》
軟體測試筆記
qtp loadrunner 整合測試 integration testing 是在假定各個軟體單元已經通過了單元測試的前提下,檢查各個軟體單元之間的相互介面是否正確。也稱為組裝測試 聯合測試 子系統測試或部件測試 整合測試演變出了功能測試,效能測試 方法處理資料的時間,方法併發能力 整合測試的方面...
軟體測試筆記
軟體測試 黑盒測試 一 黑盒測試主要發現以下錯誤 1.是否有不正確或者遺漏的功能 2.介面是否有錯誤 3.在介面上,輸入能否正確的接收?能否輸出正確的結果 4.效能上能否滿足需求 5.是否 有初始化或終止化性的錯誤?二 1.黑盒測試的優點 從產品功能的角度測試可以最大限度的滿足客戶的需求 相同動作可...
軟體測試筆記
軟體測試的目的 提高軟體質量,降低成本。軟體測試的概念 在規定時間 條件下對程式進行操作,以發現錯誤為目的,對軟體質量進行評估的過程。軟體缺陷 bug 不符合使用者要求,或軟體在開發或維護過程中存在的錯誤 毛病等各種問題。出現軟體缺陷的原因 1 需求不明確 2 系統結構非常複雜 3 開發人員疏忽,寫...