軟件測試的策略和方法 軟件測試工具
軟件測試按使用的測試技術不同可以將測試分為靜態測試和動態測試。
靜態測試
靜態測試是指依據需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行,對軟件進行分析、檢查和測試,不實際運行被測試的軟件,約可找出30~70%的邏輯設計錯誤。
動態測試
動態測試是指通過運行軟件來檢驗軟件的動態行為和運行結果的正確性。動態測試的兩個基本要素:被測試程序和測試數據(測試用例)。
靜態測試可以分為靜態分析和代碼審查。動態測試可為分白盒測試、黑盒測試和窮盡測試。
靜態分析
靜態分析是一種計算機輔助靜態分析方法。主要對程序進行控制流分析、數據流分析、接口分析和表達式分析等。靜態分析的對象是計算機程序,程序設計語言不同,相應的靜態分析工具也就不同。目前具備靜態分析功能的軟件測試工具如Purify、Macabe等。
代碼走查
代碼走查是一種人工測試方法。包括代碼評審和走查。主要依靠有經驗的程序設計人員根據軟件設計文檔,通過閱讀程序,發現軟件缺陷。
白盒測試
白盒測試又稱結構測試,玻璃盒測試或基于覆蓋的測試。
白盒測試是一種按照程序內部的邏輯結構設計測試方法。在計算機上進行測試,以證實每種內部操作是否符合設計規格要求,所有內部成分是否已經過檢查。檢驗程序的每條通路是否按預期正常進行,力求提高測試覆蓋率。
白盒測試把測試對象看做一個打開的盒子,允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序的狀態,確定實際的狀態是否與預期的狀態一致。
黑盒測試
黑盒測試又稱為功能測試,數據驅動測試,基于規格說明書的測試。
黑盒測試是一種從軟件需求開發,根據軟件需求規格說明設計測試用例,并按照測試用例的要求運行被測程序的測試方法。它根據軟件產品的功能設計規格,在計算機上進行測試,以證實每個已經實現的功能是否符合要求。
黑盒將被測試程序對象看作黑盒子,不考慮其內部程序結構與處理過程,僅僅對于程序接口進行測試。即檢查適當的輸入是否能夠產生適當的輸出。
窮盡測試
不論黑盒還是白盒測試都不能進行窮盡測試, 所以軟件測試不可能發現程序中存在的所有錯誤,因此需精心設計測試方案,力爭盡可能少的次數,測出盡可能多的錯誤。
原文轉自:http://www.anti-gravitydesign.com