1.從是否關心軟件內部結構和具體實現的角度劃分(按測試分類)
白盒測試、黑盒測試、灰盒測試
(1)白盒測試:又稱為結構測試或邏輯驅動測試,是一種按照程序內部邏輯結構和編碼結構,設計測試數據并完成測試的一種測試方法。
(2)黑盒測試:又稱為數據驅動測試,把測試對象當做看不見的黑盒,在完全不考慮程序內部結構和處理過程的情況下,測試者僅依據程序功能的需求規范考慮,確定測試用例和推斷測試結果的正確性,它是站在使用軟件或程序的角度,從輸入數據與輸出數據的對應關系出發進行的測試。
(3)灰盒測試:是一種綜合測試法,它將“黑盒”測試與“白盒”測試結合在一起,是基于程序運行時的外部表現又結合內部邏輯結構來設計用例,執行程序并采集路徑執行信息和外部用戶接口結果的測試技術。
2.從是否執行代碼角度
靜態測試、動態測試
(1)靜態測試:指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。
(2)動態測試:是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等性能指標。
3.從軟件開發的過程按階段劃分有
單元測試、集成測試、確認測試、系統測試、驗收測試、回歸測試
(1)單元測試:又稱模塊測試,是針對軟件設計的最小單位----程序模塊或功能模塊,進行正確性檢驗的測試工作。其目的在于檢驗程序各模塊是否存在各種差錯,是否能正確地實現了其功能,滿足其性能和接口要求。
(2)集成測試:又叫組裝測試或聯合,是單元測試的多級擴展,是在單元測試的基礎上進行的一種有序測試。旨在檢驗軟件單元之間的接口關系,以期望通過測試發現各軟件單元接口之間存在的問題,最終把經過測試的單元組成符合設計要求的軟件。
(3)確認測試:又稱有效性測試。任務是驗證軟件的功能和性能及其它特性是否與用戶的要求一致。對軟件的功能和性能要求在軟件需求規格說明書中已經明確規定。它包含的信息就是軟件確認測試的基礎。
(4)系統測試:是為判斷系統是否符合要求而對集成的軟、硬件系統進行的測試活動、它是將已經集成好的軟件系統,作為基于整個計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、人員、數據等其他系統元素結合在一起,在實際運行環境下,對計算機系統進行一系列的組裝測試和確認測試。
(5)驗收測試:以用戶為主的測試,軟件開發人員和質量保證人員參加,由用戶設計測試用例。不是對系統進行全覆蓋測試,而是對核心業務流程進行測試。
(6)回歸測試:是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。