一、bug由來
蟲子爬進主機引發繼電器短路,致使機器故障。真正的缺陷是:主機散熱孔少裝了塊金屬絲,這樣才能防止蟲子爬到主機。 數據庫
二、什麼是bug?
bug是缺陷的一種表現形式,而一個缺陷是能夠引起多種bug的。軟件測試,爲了發現軟件中的錯誤而運行軟件的過程。 瀏覽器
- Bug評判點
- 1)軟件未達到客戶需求文檔 的功能和性能
- 2)軟件出現客戶需求不能容忍的錯誤
- 3)軟件的使用未能符合客戶的習慣和工做環境(易用性兼容性)
- 4)軟件超出需求文檔的範圍(需求bug)
-
- Bug分類:
- Defect,缺陷:存在於軟件中的誤差,一靜態形式存在於軟件內部,可被激活;
- Failure,失效:軟件運行時產生的外部異常行爲結果,表現爲與客戶需求不一致,功能終止,用戶沒法完成所須要的應用;
- Error,錯誤:存在編寫錯誤的代碼,語法錯誤和邏輯錯誤。
- Fault,故障:軟件運行中出現的狀態,可引發意外狀況,若不加處理,可產生失效,是一個動態行爲。
-
- 下面看一些常見的分類:
- 劃分方式一:
- 代碼錯誤
- 設計缺陷
- 界面優化
- 配置相關
- 安裝部署
- 性能問題
- 標準規範
- 測試代碼
- 其它
- 劃分方式二:
- 功能類(function)
- 性能類(performance)
- 界面類(UI)
- 易用性類(usability)
- 兼容性類(compatibility)
- 其它(else)
三、爲何要提交bug?
- 1)加快缺陷的處理速度;
- 2)提升測試的可信度;
- 3)增強測試組與開發組在整個項目過程當中的團隊合做;
- 4)有效的錯誤跟蹤法,爲後續Bug分析和產品質量的度量提供依據;
四、bug管理工具?
- 開源:Bugzilla、BugFree、禪道、 EasyBug、 Mantis、 Trac;
- 企業級:QC、 JIRA、
- APP:Bugtags
五、如何寫好bug描述?
- 需簡要清晰,缺陷的必要信息。若是作得很差,會形成迷惑,並增長溝通成本。
- 解決方法:bug模板
- 好的bug描述應該包括9個基本部分:
概述(簡要指出程序錯誤的依賴關係,不要太長或過短)、緩存
項目(版本號)、所屬模塊、優先級別、嚴重等級(致命、嚴重、通常、提示)、安全
可重複性(不可再現、每3次出現2次、必現)、測試條件(軟件-硬件配置-環境信息-操做系統-數據庫-瀏覽器)、架構
操做過程和附件(圖片、數據和日誌)、預期結果 工具
六、常見的bug問題如何處理?
- 1)相相似的bug,根本緣由不一樣,哪怕表象同樣,也要log兩個或兩個以上
- 2)重複的bug, log以前在bug庫找,將結果告訴夥伴,避免被開發打回
- 3)不可重現的bug,要log詳細描述清楚操做步驟、症狀、測試環境等,這樣對於再次重現也有必定的參考性
- 4)小問題bug,也要log。不解決就會持續,小問題會影響客戶信心
- 其餘:
發現的缺陷的數量說明不了軟件的質量性能
不要期望找出軟件中全部的缺陷單元測試
不要指望修復全部發現的缺陷測試
七、Bug生命週期
new、open、fixed、re-open、delay、reject、closed.優化
八、如何進行bug分析?
- 1) 模塊的缺陷分佈,通常用柱狀圖或餅狀圖,就是每個功能模塊發現bug的比例,發現bug最多的模塊證實在發佈之後須要更多的維護。
- 2) 缺陷的原由分佈,通常用柱狀圖或餅狀圖,通常可分爲架構缺陷、功能缺陷、易用性缺陷、性能缺陷、安全性缺陷、需求缺陷、界面文字缺陷。通常若是架構缺陷佔的比例較大,則說明設計有很大問題。
- 3) 按照不一樣發現人員的缺陷分佈,通常用柱狀圖或餅狀圖,通常分爲測試人員發現,開發人員發現,beta測試發現,外部客戶發現。若是測試人員發現的bug低於某個比例,證實質量保證測試不足。
- 4) 缺陷差額分析,就是已經發現的和已經解決的曲線關係,以時間爲橫軸,二者越接近說明產品質量越高
- 5)按照時間段的缺陷分佈,通常用時間爲橫軸的曲線圖表示,主要說明在哪一個階段發現的bug最多,對測試總結有指導意義。
九、如何進行bug預防
- 保證質量最好的方式是預防Bug,防範於未然
- 1) 創建Bug預防體系:根因分析,總結不一樣的項目常發現共同性的相似bug,提早告知開發,事前預防。並持續維護更新。
- 2) 制定規範開發:代碼規範,代碼審覈,單元測試,代碼重構規範,開發自測。
- 3) WEB方面的預防:分辨率、瀏覽器兼容性、出錯提示顯示代碼信息、文字縮略和折行、重複提交、腳本攻擊跨站攻擊、敏感信息禁止緩存、密碼加密、日誌級別Info級別...