软件测试 -- 进阶 6 软件缺陷
? ??上工治未病之病,中工治欲病之病,下工治已病之病。-- 孫思邈 .《千金方藥方》
? ? 釋譯:未病之病:未病,未發之病(及早干預,防止病發);欲病之病:小病,病初起之時(癥狀不明顯,病人無痛苦時);已病之病:重病,病情嚴重時。
1.?軟件缺陷
- 從產品內部看,缺陷是軟件產品開發或維護過程中存在的錯誤、毛病等各種問題;從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背。? --?IEEE729-1983?
- 計算機軟件或程序中存在的某種破壞正常運行能力的問題、錯誤,或者隱藏的功能缺陷。缺陷的存在會導致軟件產品在某種程度上不能滿足用戶的需要。
- 軟件產品中所存在的問題,最終表現為用戶所需要的功能沒有完全實現,不能滿足或不能全部滿足用戶的需求。
2.?常用述語
- 錯誤,Error。軟件生命周期內不希望或不可接受的人為痕跡(人為過程、錯誤,外部行為),錯誤導致缺陷的產生。(異常、矛盾)
- 缺陷,Defect / Bug。(缺點、偏差 variance、問題 problem) --?那張有名的BUG圖,Harvard Mark II計算機里的一只飛蛾(來源:網絡)
- 故障,Fault。軟件運行過程中出現的不希望或不可接受的運行結果(內部行為)。
- 失效,Failure。軟件運行過程中出現的不希望或不可接受的系統外部表現(外部行為)。(失敗)
- 事故,Incident。軟件運行失效后出現的不希望或不可接受的損失。(外部行為)
? ? ? ?錯誤 -- 導致 -->?缺陷 --?激活 -->?故障 --?未處理 -->?失效
3.?發現軟件缺陷
- 發現人
-?用戶、客戶;需求、設計、開發、測試、運維、市場;隨機“苦力”。。。。。?。
- 軟件生命周期中的所有參與者都可能發現軟件缺陷 - 發現階段
-?業務;需求、設計、開發、測試、構建、發布。。。。。。
- 軟件缺陷存在于軟件生命周期的每一個階段,隨著生命周期中軟件運行狀態的變化,會產生新的非預期缺陷 - 發現方法
-?有計劃、有策略的執行:測試用例
-?總結與經驗:探索式測試、驗收測試、系統試運行(并行)、業務高危維護
-?隨機發現:Ad-hoc測試、Monkey測試、走廊測試。。。。。。
-?快速驗證:冒煙測試(Smoking Test)、主流程測試、專項測試
-?手工測試 +?工具/自動化測試
4. 軟件缺陷生命周期
5.?新建軟件缺陷屬性(參考 JIRA?缺陷新建頁面)
? ? 說明
? ??* 缺陷類型,由測試執行的版本類型決定,也可在提交頁面中自定義,如?功能、UI、接口、配置、集成、性能、文檔。。。。。。
? ??*?產生原因(Root Cause),可由開發人員修復缺陷后確認?或 測試人員關閉缺陷時確認,后期用來對缺陷分布進行分析,從而持續改進質量。如,
? ??? ?> 過程階段(客戶;需求、架構、設計、編碼、測試、發布)
? ? ? ?>?過程管理(時間、成本、范圍、辦公環境、溝通/管理方式。。。)
? ? ? ?>?團隊/人力(溝通、能力、責任心。。。)
? ? ? ?>?文檔(需求分析、詳細設計、測試用例。。。)
? ? ? ?>?業務(服務器、數據庫、接口、代碼)
? ? ? ?>?環境(平臺、網絡、瀏覽器、工具。。。)
? ? ? ?>?硬件(型號、版本、驅動。。。)
? ? ? ?>?軟件(版本、配置。。。)
?6、新建軟件缺陷注意點
- 概要/Summary
-?精煉、短小。標識(統一、格式化、提前定義)?+?簡述(哪類用戶,做了什么,系統響應情況)
- 例:缺陷注冊人,未輸入概要,點擊提交按鈕后系統正常提交 - 描述
-?可再現/復現(指導)
-?客觀:只描述、不評價,缺陷現象描述避免使用形容詞、副詞
-?條件:缺陷操作產生條件,環境 +?數據 +?角色 +?配置。。。。。。
-?結果:預期結果 +?實際結果;對比需求/設計,明確缺陷現象
-?完整、清晰、條理、準確、詳細、簡潔
-?步驟使用序號排列,每個步驟只描述一個操作,實際結果描述準確
-?描述語句使用:簡單句、陳述句、主動句(以操作對象為主語,描述實際系統表現;?與測試用例區別:多使用被動句,避免使用具體人稱)
-?建議建立一定格式要求,保證缺陷描述內容完整 - 附件
-?截圖(強烈建議),缺陷發生快照(輔助缺陷描述):保留必要的缺陷發生時的快照 +?添加必要提示、描述(圈示、標號、說明)
-?錄屏,缺陷復現操作復雜、現象難于清晰描述、或難于再現時,可進行錄屏,供缺陷修復人原分析、定位缺陷
-?測試數據,特別設計的測試數據?或?特殊測試所用數據
7.?軟件缺陷管理
- 軟件缺陷管理,即軟件缺陷生命周期管理,參考?3.?軟件缺陷生命周期
- 軟件缺陷登記/注冊/提交時,應關連對應的測試用例,以確保每一條用例都經過驗證
- 不放過任何的缺陷,每一個缺陷都應被有效記錄、跟蹤?和?解決
- 應充分利用工具,以提高軟件缺陷發現率,提升測試覆蓋率
-?缺陷管理工具:Excel(microsoft相關組件);JIRA、Bugzilla、Mantis、禪道、Redmine 。。。。。。
-?測試腳本開發:針對測試對象,使用開發語言開發專項測試工具,如 python, java, ruby。。。。。。
-?專業測試工具:Loadrunner(性能測試套件)、Jemeter(功能+性能測試)、Postman(接口測試)。。。。。。 - 軟件過程管理,將軟件缺陷管理納入軟件生命周期管理的有機部分
8.?軟件缺陷分析
? ? 說明:
? ? *?以測試代評,通過缺陷分析評價軟件對象質量
? ? *?缺陷分析指標,應以項目目標為基礎,充分考慮?時間、成本、范圍?在質量間的平衡關系
- 缺陷數量
- 缺陷狀態
-?New、Processing、Fixed、Won't fix、Duplicate、Delay。。。。。。
-?提交缺陷與修復缺陷關系,燃盡圖(Burn Down?剩余工作?/ Burn Up?完成工作) - 缺陷分布
-?版本
-?功能
-?模塊(缺陷聚集效應)
-?類型(功能、性能、UI、易用性、可用性。。。。。。)
-?時間(日期)
-?嚴重度
-?產生來源
-?提交者
-?開發者(誰開發誰維護) - 質量評價
參考:
總結
以上是生活随笔為你收集整理的软件测试 -- 进阶 6 软件缺陷的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用TextPad预览html,利用T
- 下一篇: android 拍摄视频设置参数,手机如