1. 程式人生 > >單體測試、整合測試、迴歸測試、系統測試、驗收測試等的比較

單體測試、整合測試、迴歸測試、系統測試、驗收測試等的比較

單元測試,英文是Unit Testing。

單元測試是最微小規模的測試;以測試某個功能或程式碼塊。典型地由程式設計師而非測試員來做,因為它需要知道內部程式設計和編碼的細節知識。這個工作不容易做好,除非應用系統有一個設計很好的體系結構; 還可能需要開發測試驅動器模組或測試套具。

整合測試,英文是Integration Testing。

整合測試是指一個應用系統的各個部件的聯合測試,以決定他們能否在一起共同工作並沒有衝突。部件可以是程式碼塊、獨立的應用、網路上的客戶端或伺服器端程式。這種型別的測試尤其與客戶伺服器和分散式系統有關。一般整合測試以前,單元測試需要完成。

整合測試是單元測試的邏輯擴充套件。它的最簡單的形式是:兩個已經測試過的單元組合成一個元件,並且測試它們之間的介面。從這一層意義上講,元件是指多個單元的整合聚合。在現實方案中,許多單元組合成元件,而這些元件又聚合成程式的更大部分。方法是測試片段的組合,並最終擴充套件程序,將您的模組與其他組的模組一起測試。最後,將構成程序的所有模組一起測試。此外,如果程式由多個程序組成,應該成對測試它們,而不是同時測試所有程序。

整合測試識別組合單元時出現的問題。通過使用要求在組合單元前測試每個單元,並確保每個單元的生存能力的測試計劃,可以知道在組合單元時所發現的任何錯誤很可能與單元之間的介面有關。這種方法將可能發生的情況數量減少到更簡單的分析級別。

迴歸測試,英文是Regression testing。

迴歸測試是指在發生修改之後重新測試先前的測試以保證修改的正確性。理論上,軟體產生新版本,都需要進行迴歸測試,驗證以前發現和修復的錯誤是否在新軟體版本上再次出現。

根據修復好了的缺陷再重新進行測試。迴歸測試的目的在於驗證以前出現過但已經修復好的缺陷不再重新出現。一般指對某已知修正的缺陷再次圍繞它原來出現時的步驟重新測試。通常確定所需的再測試的範圍時是比較困難的,特別當臨近產品釋出日期時。因為為了修正某缺陷時必需更改原始碼,因而就有可能影響這部分原始碼所控制的功能。所以在驗證修好的缺陷時不僅要服從缺陷原來出現時的步驟重新測試,而且還要測試有可能受影響的所有功能。因此應當鼓勵對所有迴歸測試用例進行自動化測試。

系統測試,英文是System Testing。

系統測試是基於系統整體需求說明書的黑盒類測試,應覆蓋系統所有聯合的部件。系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不相符合或與之矛盾的地方。

系統測試的物件不僅僅包括需要測試的產品系統的軟體,還要包含軟體所依賴的硬體、外設甚至包括某些資料、某些支援軟體及其介面等。因此,必須將系統中的軟體與各種依賴的資源結合起來,在系統實際執行環境下來進行測試。

驗收測試,英文是Acceptance testing。

驗收測試是指系統開發生命週期方法論的一個階段,這時相關的使用者或獨立測試人員根據測試計劃和結果對系統進行測試和接收。它讓系統使用者決定是否接收系統。它是一項確定產品是否能夠滿足合同或使用者所規定需求的測試。

驗收測試一般有三種策略:正式驗收、非正式驗收活Alpha 測試、Beta 測試。