軟體測試分類概述
軟體測試是指使用人工或者自動的手段來運行或測定某個軟體產品系統的過程,其目的是在於檢驗是否滿足規定的需求或者弄清預期的結果與實際結果的區別。本文主要描述軟體測試的一些常見分類。
一、按項目流程階段劃分
按軟體項目流程可劃分為單元測試、集成測試、系統測試和驗收測試四類測試。
(1)單元測試 Unit Testing
是指對軟體中的最小可測試單元進行檢查和驗證。其中單元測試又可分為模組介面測試、局部數據結構測試、路徑測試、錯誤處理測試和邊界條件測試等,
(2)集成測試
也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模組按照設計要求組裝成為子系統或系統,進行集成測試。
(3)系統測試 System Testing
是對整個系統的測試,將硬體、軟體、操作人員看作一個整體,檢驗它是否有不符合系統說明書的地方。而系統測試又可分為功能測試、性能測試、安全測試 和兼容測試。
- 功能測試
是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到用戶要求的功能。
- 性能測試
是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。
- 安全測試
是在IT軟體產品的生命周期中,特別是產品開發基本完成到發布階段,對產品進行檢驗以驗證產品符合安全需求定義和產品品質標準的過程。
- 兼容測試
指對所設計程式與硬體、軟體之間的兼容性的測試。
(4)驗收測試
是部署軟體之前的到最後一個測試操作,也稱交付測試。目的是確保軟體準備就緒,並且可以讓最終用戶將其用於執行軟體的既定功能和任務。而驗收測試又可分為功能確認測試、安全可靠性測試、易用性測試、可擴充性測試、兼容性測試、資源佔有率測試和用戶文檔資料驗收。
二、按程式碼可見程度劃分
按程式碼可見程度劃分為白盒測試、灰盒測試和黑盒測試三類。
(1)白盒測試
又稱結構測試、透明盒測試、邏輯驅動測試或基於程式碼的測試。它是一種測試用例設計的方法,盒子是指被測試的軟體,白盒指的是盒子的可視的,即清楚盒子內部的東西以及裡面是如何運作的。
(2)灰盒測試
是介於白盒測試與黑盒測試之間的一種測試,它多用於集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程式內部的情況。
(3)黑盒測試
它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程式看作一個不能打開的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接受輸入數據而產生正確的輸出資訊。
三、按測試執行方式劃分
按測試執行方式劃分為靜態測試和動態測試兩類。
(1)靜態測試
指不運行被測程式本身,僅通過分析或檢查源程式的語法、結構、過程、介面等來檢查程式的正確性。
(2)動態測試
指通過運行被測程式,檢查運行結果與預期結果的差異,並分析運行效率、正確性和健壯性等性能。
四、按自動化程度劃分
按自動化程度可劃分為手工測試和自動化測試兩類。
(1)手工測試
是由人去一個一個的輸入用例,然後觀察結果,和機器測試相對應,屬於較原始但必須的一個步驟。
(2)自動化測試
是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或者硬體資源,提高測試效率,便引入了自動化測試的概念。
五、其他
除了以上一些測試類別外,還有幾種常見的測試分類,如冒煙測試、敏捷測試和探索性測試等。
(1)冒煙測試
將程式碼更改嵌入到產品的源樹中之前對這些更改進行驗證的過程。
(2)敏捷測試
是不斷修正品質指標,正確建立測試策略,確認客戶的有效需求能得以圓滿實現和確保整個生產的過程安全的、及時的發布最終產品。
(3)探索性測試
是一種測試思維技術。探索性強調測試人員的主觀能動性,拋棄繁雜的測試計劃和測試用例設計過程,強調在碰到問題時及時改變測試策略。
本文主要是對常見的軟體測試分類做一個簡要的基本概述,讓讀者對軟體測試類別有一個基本的認識。