軟體測試的眾多方法是辯證統一的,它們相互依賴而存在,相互對立又相互補充,任何一種測試方法都有其優點,在特定的測試領域能得到充分發揮。同時,任何一種測試方法都不能覆蓋所有測試的需求,在某些場合存在一定的侷限性和不足。這種測試的辯證統一,從下面這些相對應的測試方法就得到很好的印證。
l 白盒測試方法和黑盒測試方法
l 靜態測試(static test) 和動態測試( dynamic test)
l 手工測試(manual test)和自動化測試(automated test)
l 有計畫測試(planned test)和隨機測試(ad-hoc test 或random test)
l 新功能測試(new feature test)和回歸測試(regression testing)
1.白盒測試方法和黑盒測試方法
黑盒測試方法,不考慮程式內部結構和內部特性,而是從使用者觀點出發,針對程式介面和使用者介面進行測試,根據產品應該實現的實際功能和已經定義好的產品規格,來驗證產品所應該具有的功能是否實現,是否滿足使用者的要求。
所以,黑盒測試方法技術相對要求低,方法簡單有效,可以整體測試系統的行為,可以從頭到尾(end-to-end)進行資料完整性測試。黑盒測試方法適合系統的功能測試、易用性測試,也適合和使用者共同進行驗收測試、軟體確認測試。黑盒測試方法不適合單元測試、整合測試,而且測試結果的覆蓋度不容易度量,其測試的潛在風險比較高。
由於白盒測試方法,已知產品的內部工作過程,針對性很強,可以對程式每一行語句、每乙個條件或分支進行測試,測試效率比較高,而且可以清楚已測試的覆蓋程度。如果時間足夠多,可以保證所有的語句和條件得到測試,測試的覆蓋程度達到很高。白盒測試方法所以適合單元測試、整合測試,而不適合系統測試。白盒測試方法準備的時間很長,如果要覆蓋全部程式語句、分支的測試,一般花費比程式設計更長的時間。
白盒測試方法所要求的技術也較高,相應的測試成本要大。對於乙個應用的系統,程式的路徑數可能是乙個天文數字,即使借助一些測試工具,白盒測試法也不可能進行窮舉測試,企圖遍歷所有的路徑往往是做不到的。即使,窮舉路徑測試,也不能查出程式違反了設計規範的地方,不能發現程式中已實現但不是使用者所需要的功能,可能發現不了一些與資料相關的錯誤或使用者操作行為的缺陷。所以白盒測試方法也存在一定的侷限性。
2.靜態測試和動態測試
靜態測試是通過對軟體的程式源**和各類文件或中間產品(產品規格說明書、技術設計文件),採用走查、同行評審、會審等方法來查詢錯誤或收集所需要的度量資料,而不需要執行程式,所以相對動態測試,可以更早地進行。
靜態分析的查錯和分析功能是其他方法所不能替代的,靜態分析能發現文件中問題(也只能通過靜態測試實現),通過文件中問題或其他軟體評審方法來發現需求分析、軟體設計等問題,而且能有效地檢查**是否具有可讀性、可維護性,是否遵守程式設計規範,包括**風格、變數/物件/類的命名、注釋行等。靜態測試已被當做一種自動化的、主要的**校驗方法。
動態測試是通過觀察程式執行時所表現出來的狀態、行為等發現軟體缺陷,包括在程式執行時,通過有效的測試用例(對應的輸入/ 輸出關係)來分析被測程式的運**況、或進行跟蹤對比,發現程式所表現的行為與設計規格或客戶需求不一致的問題。
動態測試是一種經常運用的測試方法,無論在單元測試、整合測試中,還是在系統測試、驗收測試中,都是一種有效的測試方法。但動態測試不能發現文件問題,必須等待程式**完成後進行,發現問題相對遲得多,一旦發現問題,必須重新設計、重新編碼,必然增大不良質量的成本。
《待續》
測試方法的辯證統一(之二)
2006年05月31日 09 45 00 3.手工測試和自動化測試 手工測試是指通過測試人員自身對系統進行操作來完成操作,而自動化測試是通過計算機執行測試工具和測試指令碼自動進行。自動化測試具有很多優點,如執行速度高而縮短測試週期 可以多次重複執行相同的測試而減少測試的單調性 真實反映測試結果 二十...
測試方法的辯證統一(之三)
2006年06月08日 19 44 00 4.有計畫測試和隨機測試 在測試執行前,我們一般都進行測試的策劃 計畫,分析測試的重點和範圍,精心設計測試用例,來做好測試執行前的準備,通過測試計畫和測試用例進行的測試是有計畫的測試,而不通過事先計畫或不借助測試用例,完全憑感覺 猜測而進行自由 靈活的測試,...
測試方法的辯證統一(之三)
4.有計畫測試和隨機測試 在測試執行前,我們一般都進行測試的策劃 計畫,分析測試的重點和範圍,精心設計測試用例,來做好測試執行前的準備,通過測試計畫和測試用例進行的測試是有計畫的測試,而不通過事先計畫或不借助測試用例,完全憑感覺 猜測而進行自由 靈活的測試,被稱作隨機的測試或 ad hoc test...