一、全組合覆蓋法
全組合覆蓋是設計盡可能少的測試用例,使各個被測元素的中的各類測試數據組合都被至少執行一次。
全組合覆蓋是覆蓋率很高的覆蓋法。
二、兩兩組合覆蓋法
2.1兩兩組合覆蓋
基於以下基本事實:
(1)軟件系統的故障往往是由一些難以預料的系統因素及其相互作用而引起的
(2)我們必須在數量龐大的各種組合情況和有限的資源之間作出一種科學、優化的選擇;
(3) 研究發現,20%~40%左右的軟件故障是由某個系統參數引發,20%~40%左右的故障由某兩個參數的相互作用引發,而大約70%的軟件故障是由一個或兩個參數的作用引起的;
(4) 兩兩組合覆蓋測試是一種覆蓋任意單個系統因素、任兩個系統因素間的組合以及盡可能多的多個因素間組合的方法.因此,兩兩組合覆蓋測試方法具有很重要的應用價值。
2.2正交排列法概述:
正交排列法能夠使用最小的測試過程集合獲得最大的測試覆蓋率。當可能的輸入數據或者輸入數據的組合數量很大時,由於不可能為每個輸入組合都創建測試用例,可以采用這種方法。
下面給大家列舉一個實例:
在一個窗體中有多個控件(字體、字符樣式、顏色、字號),每個控件有多個取值:
♦ 字體:仿宋、楷體、華文彩雲
♦ 字符樣式:粗體、斜體、下划線
♦ 顏色:紅色、綠色、藍色
♦ 字號:20號、30號、40號
在測試時,要考慮這些控件的組合情況,組合量非常大( 34=81種組合情況)
由於組合量太大,不可能為每一種組合都創建測試用例。如何采用最少的測試用例集合獲得最大的測試覆蓋率——采用正交排列法
2.3正交表的概念
正交表:一種特制的表,一般的正交表記為:
♦ n是表的行數,也就是需要測試組合的次數
♦ K是表的列數,表示控件的個數(因素的個數,或因子個數)
♦ m是每個控件包含的取值個數(各因素的水平數,即各因素的狀態數)
如: L9(34)
有4個控件
每個控件有3個取值
9為需要測試的組合個數
2.4正交排列法的使用步驟
① 根據所測程序中控件的個數以及每個控件的取值個數,選取一個合適的正交排列表;
② 把控件及其取值列舉出來,並對取值進行編號 ;
③ 把控件及其取值映射到正交排列表中;
把正交排列表中的A、B、C、D(因子)分別替換成4個控件。
把每列中的1,2,3(狀態)分別換成這個控件的3個取值,排列順序要按照表中給出的順序。
④ 根據映射好的正交排列表編寫測試用例。
2.5 使用正交排列法分析字符屬性設置程序(如上面的案例)
步驟一:根據所測程序中控件的個數以及每個控件的取值個數,選取一個合適的正交排列表
4個控件:字體、字符樣式、顏色、字號
每個控件有3個取值
選擇L9(34)正交排列表
步驟二:把控件及其取值列舉出來,並對取值進行編號
步驟三:把控件及其取值映射到正交排列表中
① 把正交排列表中的A、B、C、D(因子)分別替換成4個控件。
② 把每列中的1,2,3(狀態)分別換成這個控件的3個取值,排列順序要按照表中給出的順序
步驟四:根據映射好的正交排列表編寫測試用例
正交表的每一行表示一種組合,對應編寫一條測試用例
使用正交排列法可以分析字符屬性設置程序
♦ 依次類推,把映射好的正交排列表中的每一行,轉換成一條測試用例,這樣,就可以寫出9條測試用例。
♦ 正交排列表是經過嚴格的數學推理得來的,也就是說這9條用例是最優的。
♦ 這是進行測試的最少組合數量,但是,在測試中有72種(81-9)組合沒有測試到。當然,如果時間允許,應該再補充一些用例。因為遺漏的組合越多,存在缺陷的可能性就越大。
2.6 使用正交排列法的局限性
(1)目前常見的正交排列表只有附錄1中給出的幾種,即使是已有的正交排列表,基本都要求每個控件中取值的個數要相等,這是在實際軟件中很少遇到。
(2)沒有現成的正交排列表怎么辦呢?那也只有涼拌了,真的只有涼拌了,要不你造一個也行!O(∩_∩)O~
通過正交排列法的學習,我們更多的應該學習到一種測試思想,也就是在從所有組合集合中選取測試數據時,應該均勻的選取其中的組合作為測試用例,而不要只在某個局部選取數據。
2.7 正交表的性質
1) 每列中不同數字出現的次數相等。
2)在任意兩列中,將同一行的兩個數字組成一個有序實數對,則每種有序實數對出現的次數相等。
2.8 正交表的種類
- 各列水平數均相同的正交表
- 混合水平正交表
L8(4*24)—一個控件有4個屬性,4個控件有2個屬性
對於組合覆蓋也就說這么多了,接下來會繼續介紹其他一些黑盒測試方法。
您的關注與支持是我前進的動力!--Gavin:
http://www.cnblogs.com/zwh-Seeking/