1
爲什麼測試?
軟件系統無處不在
網上購物
銀行系統
手機
衛星通信系統
汽車系統
軟件系統成爲我們生活中不可或缺的一部分,那麼因缺陷造成的各種後果也無處不在。
2
爲什麼會存在缺陷?
人的因素:
人總是容易犯錯誤的
開發人員的態度
開發人員的經驗和技術不足
溝通的問題
需求變更頻繁
管理上的缺失
進度壓力大
其他因素:
周圍環境的影響:電磁輻射等
使用環境的影響:硬件系統的老化等
軟件系統越來越複雜
缺陷相關術語
錯誤
與錯誤相關的英語表示ERROR、ERRORNEOUS、MISTAKE等等;
定義:人爲的生產不正確結果的行爲【與IEEE610一致】;
人爲的原因導致一個不正確的結果。它可以是程序內部的錯誤,也可能是文檔內的錯誤;
故障/缺陷
與故障/缺陷相關的英語表示爲FAULT、DEFFC、BUG等等;
定義:可能會導致軟件組件或系統無法執行其定義的功能的瑕疵,例如:錯誤的語句或者變量定義;
失效/失敗
與失效/失敗相關的英語表示爲FAILURE等等;
定義:組件/系統與預期的交付、服務或結果存在變差【與Fenton一致】;
程序人員犯了一個“錯”,那麼錯誤在程序或軟件中就表現爲缺陷,運行帶有缺陷的軟件或者程序,就可能觀察到失效/失敗
3
軟件測試的角色
軟件測試的角色必不可少:
軟件測試是軟件質量保證的一個重要環節;
軟件測試可以降低軟件系統在運行環節中的使用風險;
軟件或者產品通過軟件測試發現其中的缺陷,對缺陷修改可以提高軟件質量;
軟件測試也可以爲了滿足合同或者法律法規的要求,或者滿足行業的標準;
軟件測試可以爲項目相關干係人提供信息,幫助他們作出合理的決定;
軟件測試得到的數據和度量,可以幫助進行測試過程和開發過程的改進;
假如測試過程中沒有發現或者發現很少的缺陷,可以提高軟件系統的信心;
4
軟件測試和質量保證
不用意義:
軟件測試:尋找缺陷的策略,關注工作產品;
質量保證:預防缺陷的策略,關注過程的管理和控制;
不用目標:
質量保證
通過監控軟件開發過程來保證產品質量;
保證軟件和開發過程符合相應標準與規範;
保證軟件產品、軟件過程中存在的問題得到處理,同時滿足評審和審計需要;
軟件測試:
儘早、儘可能多地發現軟件系統中存在的缺陷及問題;
不同的工作內容:
質量保證:
建立質量保證活動實體
制定質量保證計劃
堅持各階段的評審和審計,跟蹤結果,並作相應處理;
監控軟件產品質量
採集質量保證活動數據
度量質量保證活動
軟件測試:
編寫測試計劃
評審開發工作產品
編寫和執行測試用例
測試結果分析和總結
測試數據收集和度量