程式測試
(program testing)
高效的測試是指用少量的測試用例,發現被測軟體儘可能多的錯誤。軟體測試所追求的是以儘可能少的時間和人力發現軟體產品儘可能多的錯誤。是指對一個完成了全部或部分功能、模組的電腦程式在正式使用前的檢測,以確保該程式能按預定的方式正確地運行。
軟體的正確性尚未得到根本的解決,軟體測試仍是發現軟體錯誤和缺陷的主要手段。為了發現系統中的錯誤,應竭力設計能暴露錯誤的測試用例。測試用例是有測試數據和預期結果構成的。一個好的測試用例是極有可能發現至今為止尚未發現的錯誤的測試用例。
高效的測試是指用少量的測試用例,發現被測軟體儘可能多的錯誤。軟體測試所追求的是以儘可能少的時間和人力發現軟體產品儘可能多的錯誤。
測試方法
灰盒測試
灰盒測試,確實是介於白盒測試與黑盒測試之間的,可以這 樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表征性的現象、事件、標誌來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。
白盒測試
白盒測試,又稱結構測試。他的前提是可以把程式看成在一個透明的白盒子裡,測試者完全知道程式的結構和處理算法。這種方法按照程式內部邏輯設計測試用例,檢測程式中的主要執行通路是否能按照預定要求正確工作。
白盒測試根據軟體的內部邏輯設計設施用例,常用的技術是邏輯覆蓋,即考察用測試數據運行被測程式是對程式邏輯的覆蓋程度。主要的覆蓋標準有:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合條件覆蓋和路徑覆蓋。
黑盒測試
黑盒測試根據關鍵需求說明書所規定的功能來設計測試用例,它不考慮軟體的內部結構和處理算法。常用的黑盒測試技術包括等價類劃分、邊值分析、錯誤推測和因果圖等。
測試工作流程
從測試流程的角度看,軟體測試可分為單元測試、集成測試和確認測試。
單元測試
單元測試(unit testing),也稱模組測試,通常可放在編程階段,由程式設計師對自己編寫的模組自行測試,檢查模組是否實現了詳細設計說明書中規定的功能和算法。單元測試主要發現編程和詳細設計中產生的錯誤,單元測試計畫應該在詳細設計階段制定。
單元測試期間著重從以下幾個方面對模組進行測試:模組接口、局部數據結構、重要的執行通路、出錯處理通路及邊界條件等。
集成測試
集成測試(integration testing),也稱組裝測試,它是對由各模組組裝而成的程式進行測試,主要目標是發現模組間的接口和通信問題。集成測試主要發現設計階段產生的錯誤,集成測試計畫應該在概要設計階段制定。集成的方式可分為非漸增式和漸增式。
確認測試
確認測試(validation testing),主要依據軟體需求說明書檢查軟體的功能、性能及其他特徵是否與用戶的需求一致。確認測試計畫應該在需求分析階段制定。