軟體測試中bug淺析

audience_fzn發表於2018-08-02

軟體測試的生命週期:

之前說過軟體的生命週期(6階段):需求分析,計劃,設計,編碼,測試,執行維護

軟體測試的生命週期(6階段):需求分析,測試計劃,測試設計,測試開發,測試執行,測試評估

軟體測試&軟體測試的生命週期

  • 需求階段

測試人員瞭解需求,對需求進行分解,得出測試需求

  • 計劃階段

根據需求編寫測試計劃/測試方案

  • 設計階段

測試人員適當瞭解設計,搭建測試用例框架,編寫測試用例,編寫自動化測試

  • 編碼階段

測試人員一般不需要編碼,需要對需求進行測試

  • 測試階段

軟體測試人員最重要的一個階段,編寫測試報告

  • 執行維護

測試人員需要參與專案的實施工作,需要參與使用者使用軟體的培訓

 

如何描述一個bug

一個合格的bug描述應該包括以下幾個部分:

  1. 發現問題的版本

開發人員需要知道出現問題的版本,才能獲取到對應版本的程式碼來重現故障。並且版本的標識也有利於系統和分析每個版本的質量

    2.問題出現的環境

環境分為硬體環境和軟體環境:如果是web專案:需要描述瀏覽器版本,客戶機作業系統等;如果是app專案:需要描述機型,解析度,作業系統版本等

     3.錯誤步驟

測試用例的最短操作步驟

     4.預期行為的描述

要讓開發人員知道怎麼陽才是正確的,尤其要以使用者的角度來描述程式的行為是怎樣的,如果是依據需求提出的故障,能寫明需求的來源是最好的(測試人員是最懂需求的)

   5.錯誤行為的描述

可以上層日誌或者截圖

   6.其他

 

 Bug的級別

每個公司的定義都不一樣,但大致為以下幾個級別

  • 崩潰(Blocker):測試中出現較少,一旦發現應立即終止對版本的測試

造成系統奔潰,當機,死迴圈,導致資料庫資料丟失,以及資料庫連線錯誤,主要功能喪失,基本模組缺失等問題

  • 嚴重(Critical):在不影響其他功能測試的情況下可以繼續測試該版本

系統主要功能部分喪失,資料庫儲存呼叫錯誤,使用者資料丟失,一級選單不能使用三十奴一下其他功能的測試。功能設計與需求嚴重不符,模組無法啟用或呼叫,程式重啟,自動退出,關聯函式間呼叫衝突,安全問題,穩定性等。軟體資料儲存後,資料庫中顯示錯誤,使用者所要求的功能缺失,程式介面錯誤,數值計算統計錯誤等

  • 一般(Major):在實際測試中存在最多

功能沒有完全實現但是不影響使用,功能選單存在缺陷但是不會影響系統穩定性。如:操作時間長,查詢時間長,格式錯誤,邊界條件錯誤,刪除沒有確認框,資料庫表中的欄位過多等

  • 次要(Minor):在測試初期較多,優先程°較低,在測試後期出現較少,應及時處理

介面,效能缺陷,建議類問題,不允許操作功能的執行,可以優化效能的方案等,如:錯別字,介面格式不規範,頁面顯示重疊,不該顯示的要隱藏,描述不清楚,提示與丟失,文字排列不整齊,游標位置不正確,使用者體驗感受不好,可以優化效能的方案等

 

bug的生命週期:

每個公司,每一個工具對bug生命週期的定義不一樣,但是大致為以下幾個過程

測試人員應該跟蹤一個bug的整個生命週期,從New到Closed

  • New:新發現的bug,未經評審決定是否指派給開發人員修改
  • Open:確認是bug,並且需要進行修改,指派給相應的開發人員
  • Fixed:開發人員進行修改後標識成修改狀態,帶測試人員的回國測試驗證
  • Rejected:如果認為不是bug,則拒絕修改
  • Delay:如果暫時認為不需要修改或暫時不能修改,則延後修改
  • Colsed:修改狀態的Bug經測試人員的迴歸測試驗證通過,則關閉BUG
  • Reopen:如果經驗證bug仍然存在,則需要重新開啟Bug,開發人員重新修改

注:open->closed,open->rejected->closed

 

軟體測試的二八原則:80%的故障集中於20%的模組,如果某部分問題較多,加強測試廣度和深度

開發人員的二八原則:80%的故障集中於20%的開發人員,如果某些開發人員的bug較多,加強他開發模組的測試廣度和深度

 

 

 

相關文章