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