組合測試也稱集成測試或子系統測試,通常採用自頂向下測試和自底向上測試兩種測試方法。組合測試的對象是指已經通過單元測試的模組,不是對零散模組進行單個測試,而是用系統化的方法裝配和測試軟體系統;是一個嚴格的過程,必須認真地進行計畫,其計畫的產生和單元模組測試的完成日期要協調起來。這種測試應在系統目標機上進行。造就系統套用的環境條件。除了開發部門項目負責人參加以外,還應該有相應系統的用戶參加,給評審員進行演示。
基本介紹
- 中文名:組合測試
- 外文名:Combinatorial Testing
- 對應:保證錯誤檢出率
- 屬性:測試用例覆蓋
簡介
組合測試能夠在保證錯誤檢出率的前提下採用較少的測試用例測試系統。
在軟體的功能測試中,可以通過檢查系統參數的所有取值組合來進行充分的測試.例如:對一個具有k個參數的待測系統(software under test,簡稱SUT),這些參數分別有v1,v2,…,vk個可能取值,完全測試這個系統需要 1kiiv=∏個測試用例.對於一般的被測系統而言,這個組合數是一個很龐大的數字.如何從中選擇一個規模較小的 子集作為測試用例集是測試用例生成(test case generation)中一個很重要的問題.在測試性能和代價上的一個折衷就是組合測試(combinatorial testing),因為根據觀察,對於很多應用程式來說,很多程式錯誤都是由少數幾個參數的相互作用導致的.例如:Kuhn和Reilly分析了Mozilla瀏覽器的錯誤報告記錄,發現超過70%的錯誤是由某兩個參數的相互作用觸發的,超過90%的錯誤是由3個以內的參數互相作用而引發的[1].這樣,我們可以選擇測試用例,使得對於任意t(t是一個小的正整數,一般是2或者3)個參數,這t個參數的所有可能取值的組合至少被一個測試用例覆蓋.我們稱這種測試準則(test criterion)為t組合測試.