1. 程式人生 > >軟體測試Bug和bug生命週期中的各種狀態

軟體測試Bug和bug生命週期中的各種狀態

  所有軟體開發過程的目的都是為客戶(軟體產品的終端使用者)提供一個解決問題的方案(軟體產品),以幫助客戶更加高效地工作生活(從時間和費用上來講)。一個成功的軟體開發過程就是為客戶提供了所有他所要求的需求。

  一個沒有軟體測試的軟體開發過程是不完善的。軟體測試是為了尋找並修復軟體中的bug/錯誤,它可以幫助提高軟體的質量,以保證使用者可以正常使用軟體產品。

  什麼是一個bug/錯誤?

  軟體中的bug或者錯誤就是所有會影響軟體整體或者部分功能的正常執行的軟體行為。

  怎樣找到bug/錯誤?

  我們主要依靠執行測試指令碼或用例來找出那些軟體產品中的不想看到的行為。

  什麼是測試用例?

  測試用例是一類文件,測試用例中包含有用於執行的步驟或行為,而我們需要嚴格地按照這些步驟來執行以確認軟體是否按照我們對它的期望執行。

  發現bug或者錯誤後該怎麼辦?

  一般在我們發現bug或者錯誤後,應該和開發人員交流以修復它。

  從一個bug被發現到這個bug被關閉這一段時間,bug可能會有以下狀態:new ,open Postpone,Pending Retest,Retest,Pending Reject,Reject,Deferred,closed.(請注意這裡有很多種狀態,我們需要根據不同情況來決定怎樣或者是否需要跟開發人員溝通)

  下面就對這幾種狀態進行以下解釋:

  New:(新的)

  當某個“bug”被發現的時候(第一次),測試人員需要與專案負責人溝通以確認發現的的確是一個bug,如果被確認是一個bug,就將其記錄下來,並將bug的狀態設為New

  Assigned(已指派的)

  當一個bug被指認為New之後,將其將給開發人員,開發人員將確認這是否是一個bug,如果是,開發組的負責人就將這個bug指定給某位開發人員處理,並將bug的狀態設定為“Assigned”

  Open(開啟的)

  一旦開發人員開始處理bug的時候,他(她)就將這個bug的狀態設定為“Open”,這表示開發人員正在處理這個“bug”

  Fixed(已修復的)

  當開發人員進行處理(並認為已經解決)之後,他(她)就可以將這個bug的狀態設定為“Fixed”並將其提交給開發組的負責人,然後開發組的負責人將這個bug返還給測試組

  Pending Reset(待在測試的)

  當bug被返還到測試組後,我們將bug的狀態設定為“Pending Reset”

  Reset(再測試)

  測試組的負責人將bug指定給某位測試人員進行再測試,並將bug的狀態設定為“Reset”

  Closed(已關閉的)

  如果測試人員經過再次測試之後確認bug已經被解決之後,就將bug的狀態設定為“Closed”

  Reopen(再次開啟的)

  如果經過再次測試發現bug(指bug本身而不是包括因修復而引發的新bug)仍然存在的話,測試人員將bug再次傳遞給開發組,並將bug的狀態設定為“Reopen”

  Pending Reject(拒絕中)

  如果測試人員傳遞到開發組的bug被開發人員認為是正常行為而不是bug時,這種情況下開發人員可以拒絕,並將bug的狀態設定為“Pending Reject”

  Rejected(被拒絕的)

  測試組的負責人接到上述bug的時候,如果他(她)發現這是產品說明書中定義的正常行為或者經過與開發人員的討論之後認為這並不能算作bug的時候,開發組負責人就將這個bug的狀態設定為“Rejected”

  Postponed(延期)

  有些時候,對於一些特殊的bug的測試需要擱置一段時間,事實上有很多原因可能導致這種情況的發生,比如無效的測試資料,一些特殊的無效的功能等等,在這種情況下,bug的狀態就被設定為“Postponed”

  Deferred(延期的)

  有些情況一些特殊的bug顯得不那麼重要,同時也是可以消除的,這個時候我們可以將bug的狀態設定為“Deferred”

參考:http://www.51testing.com/html/30/n-106230.html