軟體測試的分類——按測試階段分類
測試可以通過 測試所在不同階段、測試時所採用的手段、測試遵循測試模式、軟體的測試型別 進行分類。
按測試階段分類:
單元測試(各個測試的基礎,測試物件:最小可測試單元)
整合測試(測試關注最小可測試單元之間介面和子系統整合)
系統測試(整個系統組裝後置於真實執行環境進行全面評估)
驗收測試(使用者角度對系統進行認可驗收)
第一階段:單元測試
什麼是單元測試?(針對程式碼的測試,其他測試的基礎)
對軟體中的最小可測試單元進行檢查和驗證。
單元:人為規定的的最小的可測試塊
C語言:函式
java:類
功能軟體:功能項(例如:選單項)
單元測試的原則
1.儘可能保證各個測試用例是相互獨立的
2.一般由程式碼的開發人員來實施,用於檢驗所開發的程式碼功能複合自己的設計要求。
單元測試的益處
1.能儘早的發現缺陷(單元測試處於前期階段,編寫單元測試是對需求設計二次確認和理解的過程)
2.有利於重構
3.簡化整合(為整合測試奠定基礎)
4.文件(單元測試可以很大程度上減少文件存在)
5.用於設計
單元測試的限制
1.不可能覆蓋所有執行路徑,所以不可能保證捕捉到所有路徑的錯誤
2.每一行程式碼,一般需要3~5行程式碼才能完成測試。所以存在投入和產出在一個平衡點。(單元測試投入很大,窮盡測試是不可能的)
單元測試框架
Xunit,:JUnit(for Java)、 nunit(for donet)、 PHPUnit(for PHP)、CppUnit(for C++)
Junit:匯入Junit依賴庫Junit4
第二階段:整合測試
是在單元測試的基礎上,測試在將所有的軟體單元按照概要設計規格說明的要求組裝成模組、子系統或系統的過程中各部分工作是否達到或實現相應技術指標及要求的活動
主要實施方案
1.Big Bang(一次性測試)大整合,全部組裝好
2.自頂向下(逐層)
3.自底向上(從最底層開始)常用、比較好的鎖定故障所在位置
4.核心系統整合(先挑選核心)
5.高頻整合(持續整合)
整合測試&單元測試
1.測試物件不同 整合測試:模組和子系統為單元(模組間的關係) 單元測試:軟體最小單元
2.測試依據不同 整合測試:概要設計 單元測試:軟體的詳細設計
3.測試的方法不同 整合測試:模組的介面 單元測試:單元內部
第三階段:系統測試
是將經過整合測試的軟體,作為計算機系統的一個部分,與系統中其他部分結合起來,在實際執行環境下對計算機系統進行的一系列嚴格有效地測試,以發現軟體潛在的問題,保證系統的正常執行。(需要做功能測試、效能測試、穩定性測試等)
關注點
關注系統本身的使用
關注系統與其他相關係統間的連通
關注系統在不同使用壓力下的表現
關注系統在真實使用環境下的表現
系統測試&整合測試
測試物件
整合測試:由通過了單元測試的各個模組所整合起來的構件
系統測試:除了軟體之外,還包括計算機硬體及相關的外圍裝置、資料採集和傳輸機構、支援軟體、系統操作人員等整個系統
測試時間
整合測試介於單元測試和系統測試之間
系統測試在整合測試之後
測試內容
整合測試:各個單元模組之間的介面
系統測試:整個系統的功能和效能
測試角度
整合測試:偏於技術角度的驗證
系統測試:偏於業務角度的驗證
第四階段:驗收測試
也稱交付測試。針對使用者需求、業務流程的正式的測試,確定系統是否滿足驗收標準,由使用者、客戶或其他授權機構決定是否接受系統。
細分
使用者驗收測試(開發方交付之前自己進行的測試)
執行驗收測試(運維層面)
合同和規範驗收測試(參照約定的規範)
alpha測試(開發者提供的場所,使用者進行)
Beta測試(完全脫離開發者,在使用者提供環境)
release版本(正式交付版本)