tft每日頭條

 > 科技

 > 軟件測試缺陷分類

軟件測試缺陷分類

科技 更新时间:2025-01-18 03:43:31

軟件測試缺陷分類(全程軟件測試三十一)1

軟件缺陷是系統或系統部件中導緻系統或部件不能實現其功能的錯誤。在執行中遇到某個缺陷,可能引起系統的失效。準确、有效地定義和描述軟件缺陷可以使軟件缺陷得以快速修複,節約軟件測試項目的成本和資源,提高産品質量。

軟件缺陷的基本描述

軟件缺陷的描述是軟件缺陷報告中測試人員問題陳述的一部分,而且是軟件缺陷報告的基礎部分。同時,軟件缺陷的描述也是測試人員針對一個軟件問題與開發小組交流的最初且最好的機會。一個較好的描述需要使用簡單、準确、專業的語言來抓住缺陷的本質,否則,它會使軟件缺陷的信息含糊不清,可能會誤導開發人員。

以下是軟件缺陷的有效描述規則:

(1)單一準确。每個報告隻針對一個軟件缺陷。在一個報告中報告多個軟件缺陷往往會導緻隻有其中一個軟件的缺陷得到注意和修複。

(2)特定條件。許多軟件功能在通常情況下沒有問題産生,在某種特定的條件下才會暴露缺陷,因此軟件缺陷的描述不能忽略那些看似細節但又必要的特定條件(如特定的操作系統、浏覽器或某種特定的設置等),以及能夠幫助開發人員找到原因的線索(如“返回功能返回跳轉頁面不正确”)。

(3)可以再現。提供再現這個缺陷的精确步驟,使開發人員容易看懂,便于再現并修複缺陷。

(4)短小簡練。通過使用關鍵詞可以使軟件缺陷的标題描述短小簡練,又能準确解釋産生缺陷的現象。例如,在“界面購物車模塊無法顯示”中,“界面”“購物車”是關鍵詞。

(5)完整統一。提供完整的、前後統一的軟件缺陷信息,如相關圖片、文件等。

(6)補充完善。從發現軟件缺陷時開始,測試人員的責任就是保證此軟件缺陷被正确地報告以及得到應有的重視,并繼續監視該軟件缺陷的修複全過程。

(7)不做評價。軟件缺陷描述不要帶有個人觀點,不要對開發人員做出任何評價。軟件缺陷報告隻針對産品。

遵循軟件缺陷有效描述規則的益處有以下幾點:

(1)準确、清晰的軟件缺陷描述可以減少開發人員返回的缺陷數量。

(2)提高軟件缺陷修複的速度,使每一個小組都能有效地工作。

(3)提高開發人員對測試人員的信任度,得到開發人員對缺陷報告的積極響應。

(4)加強管理人員、開發人員、測試人員三者之間的協同工作能力,以便更有效地工作。

軟件缺陷的屬性

開發人員需要去修複每一個軟件缺陷,但并不是每個軟件缺陷都需要開發人員緊急修複。因此,測試人員需要定義軟件缺陷的屬性,供開發人員參考,這樣才能按照優先等級、嚴重程度去修複軟件缺陷,不至于遺漏嚴重的軟件缺陷。測試人員則可以利用軟件缺陷的屬性跟蹤軟件缺陷,保證産品質量。

軟件缺陷的屬性包括缺陷标識、缺陷類型、缺陷嚴重程度、缺陷産生的可能性、缺陷優先級、缺陷狀态、缺陷起源、缺陷來源、缺陷根源。

(1)缺陷标識:标記某個缺陷的唯一标識,可以使用數字序号。

(2)缺陷類型:根據缺陷的自然屬性劃分的缺陷種類,如表1所示。

軟件測試缺陷分類(全程軟件測試三十一)2

表1 軟件缺陷類型

軟件測試缺陷分類(全程軟件測試三十一)3

表1 續表

(3)缺陷嚴重程度:缺陷引起的故障對軟件産品的影響程度,指的是在測試條件下,一個錯誤在系統中的絕對影響,如表2所示。

軟件測試缺陷分類(全程軟件測試三十一)4

表2 軟件缺陷嚴重程度

(4)缺陷産生的可能性:缺陷在産品中發生的可能性,通常可以用頻率來表示,如表3所示。

軟件測試缺陷分類(全程軟件測試三十一)5

表3 軟件缺陷産生的可能性(部分)

(5)缺陷優先級:缺陷必須被修複的緊急程度。優先級的衡量抓住了在嚴重等級中沒有考慮的重要程度因素,如表4所示。

軟件測試缺陷分類(全程軟件測試三十一)6

表4 軟件缺陷優先級

通常情況下,缺陷嚴重程度和缺陷優先級的相關性很強,但是,具有低優先級和高嚴重等級的錯誤是存在的,反之亦然。例如,産品徽标丢失,這種缺陷是用戶界面的産品缺陷,但是它損害産品的形象,那麼它是優先級很高的軟件缺陷。

(6)缺陷狀态:描述缺陷修複的進展情況,如表5所示。

軟件測試缺陷分類(全程軟件測試三十一)7

表5 軟件缺陷狀态

(7)缺陷起源:缺陷引起的故障或事件第一次被檢測到的階段,如表6所示。

軟件測試缺陷分類(全程軟件測試三十一)8

表6 軟件缺陷起源

在軟件生命周期中軟件缺陷占的比例:需求和構架設計階段占54%,設計階段占25%,編碼階段占15%,其他占6%。

(8)缺陷來源:指缺陷所在的地方,如文檔、代碼等,如表7所示。

軟件測試缺陷分類(全程軟件測試三十一)9

表7 軟件缺陷來源

(9)缺陷根源:造成錯誤的根本因素。了解缺陷根源有助于軟件開發流程的改進和管理水平的提高,如表8所示。

軟件測試缺陷分類(全程軟件測試三十一)10

表8 軟件缺陷根源

軟件缺陷的相關信息

前面所叙述的軟件缺陷屬性是其基本信息,為了更好地處理軟件缺陷,需要了解其他相關的信息。軟件缺陷相關的信息包括軟件缺陷圖片、記錄信息及如何再現和分離軟件缺陷。針對某一個軟件缺陷,測試人員應該給予相關的信息,如捕捉到軟件缺陷的日志文件和圖片,以保證開發人員和其他的測試人員可以分離和再現它。本篇重點介紹需要添加圖片文件的情況和分離及再現軟件缺陷的建議。

1.軟件缺陷的圖片、記錄信息

軟件缺陷的圖片、記錄信息是軟件缺陷報告重要的組成部分。

一些涉及用戶界面的軟件缺陷可能很難用文字清楚地描述,因此軟件測試人員通過附上圖片能比較直觀地表示缺陷發生在産品界面的位置和問題。

(1)采用圖片的格式

測試人員一般采用JPG、GIF圖片格式,因為這類文件占用的空間小,打開的速度快。

(2)需要附上圖片的情況

通常情況下,出現在用戶界面并且影響用戶使用或者影響産品美觀的軟件缺陷附上圖片比較直觀。舉例如下。

① 當産品中有一段文字沒有顯示完全,為了明确标識這段文字的位置,測試人員必須貼上圖片。

② 在測試外國語言版本時,當發現産品中有一段文字沒有翻譯,測試人員需要貼上圖片标識沒有翻譯的文字。

③ 在測試外國語言版本時,當發現産品中有一段外國文字顯示亂碼,測試人員必須貼上圖片标識出現亂碼的外國文字。

④ 産品中的語法錯誤、标點符号使用不當等軟件缺陷,測試人員應貼上圖片告知開發人員缺陷的位置。

⑤ 在産品中運用錯誤的公司标志和重要的圖片沒有顯示等軟件缺陷,也需要附上圖片。

測試人員需要注意,有必要在圖片上用顔色标注缺陷的位置,讓開發人員一目了然,使得軟件缺陷盡快修複。

2.分離和再現軟件缺陷

要想有效地分離軟件缺陷,需要清楚、準确地描述再現軟件缺陷的具體步驟和條件。在某些情況下隻要具備特定的測試用例,軟件缺陷就會再次出現;但某些情況下,再現、驗證軟件缺陷的條件、環境、技術等要求都非常高,而且非常浪費資源。

(1)分離和再現軟件缺陷的步驟

為了有效地再現軟件缺陷,除了按照軟件缺陷的有效描述規則來描述軟件缺陷,還要遵循軟件缺陷分離和再現的方法。雖然有時個别缺陷很難再現,或者根本無法再現。

下面介紹分離和再現缺陷的一些常用方法和技巧。

① 注意壓力與負荷、内存與數據溢出相關的邊界條件。執行某個測試可能會導緻産生缺陷的數據被覆蓋掉,而隻有在試圖使用該條數據的時候缺陷才會再現。在重啟計算機後軟件缺陷消失,執行完其他測試之後又出現類似的軟件缺陷,此時需要注意某些軟件缺陷有可能是在無意中産生的。

② 保證所有的步驟全部被記錄。所做的每一件事、每一個步驟、每一個停頓必須記錄下來。少一個步驟或多出一個步驟,都可能導緻無法再現軟件缺陷。在嘗試運行測試用例時,可以利用錄制工具準确地記錄執行的每一個步驟,目的是确保暴露缺陷所需的全部細節都是可見的。

③ 不可忽視硬件設備。與軟件不同,硬件不會按照預定的方式去工作,CPU 過熱、内存條損壞、闆卡松動都可能導緻軟件的運行失敗。設法在不同硬件設備上再現軟件缺陷,判斷該軟件缺陷是在一個系統上還是在多個系統上産生,這在執行配置或兼容性測試時非常重要。

④ 考慮資源依賴性,包括内存、網絡和硬件共享的相互作用。軟件缺陷是否隻在運行其他軟件并與其他硬件通信的“繁忙”系統上出現?軟件缺陷可能最終被證實跟網絡資源、硬件資源有相互作用,分析這些影響有利于分離和再現軟件缺陷。

⑤ 注意特定的條件和時間。軟件缺陷是否僅在特定時刻、特定條件下産生?産生軟件缺陷時網絡是否出問題?在較好和較差的硬件設備上運行測試用例是否會産生不同的測試結果?

有時開發人員也可根據比較簡單的錯誤信息找出問題所在。因為開發人員熟悉代碼,看到症狀、測試用例的步驟和分離問題的過程,可能會得到查找軟件缺陷的線索。一個軟件缺陷的分離和再現有時需要大家的共同努力。如果測試人員盡全力去分離軟件缺陷,最後還是無法準确表達該缺陷的再現步驟,那麼仍需記錄和報告軟件缺陷。

(2)分離和調試軟件缺陷之間的區别

研究分離與調試軟件缺陷二者之間的區别,其實就是為了分清測試人員與開發人員各自的責任,提高二者之間界限的清晰度與測試資源控制能力。在面對一個軟件缺陷時,開發人員與測試人員為了修複該缺陷,會逐步提出一系列疑問。

① 最少通過多少步再現軟件的缺陷?這些步驟能否成功再現缺陷?

② 軟件缺陷是否真的存在?缺陷的産生是因為測試因素或者測試人員自身的錯誤,還是影響顧客需求的、系統真正的故障?

③ 産生軟件缺陷的外部因素是什麼?

④ 産生軟件缺陷的内部因素是什麼?

⑤ 如何在不産生新缺陷的條件下修複已發現的軟件缺陷?

⑥ 缺陷的修複是否經過調試?是否做過單元測試?

⑦ 産生缺陷的問題是否解決?是否通過了确認和回歸測試,确定系統的其餘部分仍能正常工作?

第①步是為了證明該軟件缺陷并不是意外産生的,并精簡操作步驟;第②③步分離了這個軟件缺陷;第④⑥步是調試任務;第⑦步做确認和回歸測試。在整個過程中,缺陷從測試階段(第①到③步)進入開發階段(第④到⑥步),然後再回到測試階段(第⑦步)。雖然看似簡要,但其邊界并不是很清晰,特别是第③④步會産生一些資源重疊和不必要的精力浪費。

如果軟件缺陷描述非常清楚,包含第①②③步中問題的答案,意味着在分離與調試之間清楚地畫上一條界線,測試人員就能專注于測試過程,而不受開發人員的影響。如果測試人員不能清楚描述出缺陷的特征,導緻再現和錯誤種類的不确定性,繼而無法将其分離,測試人員和開發人員就可能不得不一起進行調試。但是,測試人員還有很多其他的工作需要完成,不應該被卷入調試工作。開發人員向測試人員詢問情況是調試工作的一部分,這是開發人員的職責,而測試人員隻需在軟件缺陷描述的基礎上回答開發人員的問題。否則,測試人員可能會花費大量的時間和精力去解答開發人員所提出的問題。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved