軟件測試的對象包括軟件需求、概要設計、詳細設計、軟件運行環境、可運行程序和軟件源代碼等。軟件測試包括質量、人員、資源、技術和流程五大要素,以及測試覆蓋率和測試效率兩個目標。
軟件測試一般分為4個階段:單元測試、集成測試、系統測試、驗收測試。
一、單元測試 單元測試是對軟件中的最小可驗證單元進行檢查和驗證。比如對Java中的類和方法的測試。
測試原則: 1、盡可能保證測試用例相互獨立(測試用例中不能直接調用其他類的方法,而應在測試用例中重寫模擬方法); 2、此階段一般由軟件的開發人員來實施,用以檢驗所開發的代碼功能符合自己的設計要求。
單元測試的好處: 1、盡早的發現缺陷; 2、利於重構; 3、簡化集成; 4、文檔; 5、用於設計。
單元測試的不足: 1、不可能覆蓋所有的執行路徑,所以不可能保證捕捉到所有路徑的錯誤; 2、每行代碼需要3~5行代碼進行單元測試,存在投入與產出的平衡。
二、集成測試 集成測試是在單元測試的基礎上,把軟件單元按照軟件概要設計規格說明的規格要求,組裝成模塊、子系統或系統的過程中各部分工作是否達到或實現相應技術指標及要求。
集成測試包括BigBang、自頂向下、自底向上、核心系統集成、高頻集成。
三、系統測試 將經過集成測試的軟件,作為計算機系統的一部分,與系統中其他部分結合起來,在實際運行環境下進行一系列嚴格有效的測試,以發現軟件潛在的問題,保證系統的正常運行。
集成測試和系統測試之間的比較: 1、測試內容:集成測試是測試各個單元模塊之間的接口,系統測試是測試整個系統的功能和性能; 2、測試角度:集成測試偏重於技術的角度進行測試,系統測試是偏重於業務的角度進行測試。
四、驗收測試 也稱交付測試,是針對用戶需求、業務流程進行的正式的測試,以確定系統是否滿足驗收標准,由用戶、客戶或其他授權機構決定是否接受系統。
驗收測試包括alpha測試和beta測試,alpha測試是由開發者進行的軟件測試,beta測試是由用戶在脫離開發環境下進行的軟件測試。