(八)正交表实验法
1.定義:
從大量的(實驗)數據(測試例)中挑選適量的,有代表性的點(例),從而合理地安排實驗(測試)的一種科學實驗設計方法.類似的方法有:聚類分析方法,因子方法方法等。利用因果圖來設計測試用例時,?作為輸入條件的原因與輸出結果之間的因果關系,有時很難從軟件需求規格說明中得到。往往因果關系非常龐大,以至于據此因果圖而得到的測試用例數目多的驚人,給軟件測試帶來沉重的負擔,為了有效地,合理地減少測試的工時與費用,可利用正交實驗設計方法進行測試用例的設計。
2.利用正交實驗設計測試用例的步驟:
1).提取功能說明,構造因子--狀態表
把影響實驗指標的條件稱為因子.而影響實驗因子的條件叫因子的狀態.利用正交實驗設計方法來設計測試用例時,首先要根據被測試軟件的規格說明書找出影響其功能實現的操作對象和外部因素,把他們當作因子,而把各個因子的取值當作狀態.對軟件需求規格說明中的功能要求進行劃分,把整體的概要性的功能要求進行層層分解與展開,分解成具體的有相對獨立性的基本的功能要求.這樣就可以把被測試軟件中所有的因子都確定下來,并為確定個因子的權值提供參考的依據.確定因子與狀態是設計測試用例的關鍵.因此要求盡可能全面的正確的確定取值,以確保測試用例的設計作到完整與有效。
2).加權篩選,生成因素分析表
對因子與狀態的選擇可按其重要程度分別加權.可根據各個因子及狀態的作用大小,出現頻率的大小以及測試的需要,確定權值的大小。
3).利用正交表構造測試數據集
利用正交實驗設計方法設計測試用例,比使用等價類劃分,邊界值分析,因果圖等方法有以下優點:節省測試工作工時;可控制生成的測試用例數量;測試用例具有一定的覆蓋率。
3.1正交表的基本性質
1)正交性
(1)任一列中,各水平都出現,且出現的次數相等
????例如L8(27)中不同數字只有1和2,它們各出現4次;L9(34)中不同數字有1、2和3,它們各出現3次?。
(2)任兩列之間各種不同水平的所有可能組合都出現,且對出現的次數相等?
例如?L8(27)中(1,?1),?(1,?2),?(2,?1),?(2,?2)各出現兩次;L9(34)?中?(1,?1),??(1,?2),??(1,?3),??(2,?1),??(2,?2),??(2,?3),??(3,?1),??(3,?2),??(3,?3)各出現1次。即每個因素的一個水平與另一因素的各個水平所有可能組合次數相等,表明任意兩列各個數字之間的搭配是均勻的。
2)代表性
一方面:
(1)任一列的各水平都出現,使得部分試驗中包括了所有因素的所有水平;
?(2)任兩列的所有水平組合都出現,使任意兩因素間的試驗組合為全面試驗。
另一方面:由于正交表的正交性,正交試驗的試驗點必然均衡地分布在全面試驗點中,具有很強的代表性。因此,部分試驗尋找的最優條件與全面試驗所找的最優條件,應有一致的趨勢。?
3)綜合可比性
(1)任一列的各水平出現的次數相等;
(2)任兩列間所有水平組合出現次數相等,使得任一因素各水平的試驗條件相同。這就保證了在每列因素各水平的效果中,最大限度地排除了其他因素的干擾。從而可以綜合比較該因素不同水平對試驗指標的影響情況。
正交表的三個基本性質中,正交性是核心,是基礎,代表性和綜合可比性是正交性的必然結果?
?
4)生成的步驟
??1?有哪些因素(變量)
??2?每個因素有哪幾個水平(變量的取值)
??3?選擇行數最少的正交表
??4?把變量的值映射到表中
??5?把每一行的各因素水平的組合做為一個測試用例
??6?加上你認為可疑且沒有在表中出現的組合
計算行數:
正交表行數的確定:
試驗次數(行數)=∑(每列水平數-1)+1
例:5個3水平因子及一個2水平因子,表示為35*21,試驗次數=5*(3-1)+1*(2-1)+1=12,即L12(35*2)?
5)判斷是否可以使用正交表
(1)并不是任何情況下都可以使用正交表,以下情況無法使用正交表:
??因素的個數非常少,如只有2個;
??因子數很大。
(2)另外在識別的因子中,還要進行一下分析:
??組合因素之間必須為平行關系(平行:可以同時存在)
??不能為互斥(互斥:1個因素存在,另1個因素不能存在)
??因素不能被其他因素的因子制約(制約:當A因素的因子為A1,B因素不能存在)
??排除非組合因素
?
6)選擇正交表的原則
?
如果判斷可以使用正交測試大方法設計用例,需要根據測試功能點的時間情況,選擇正交表。選擇正交表的原則如下:
(1)因素數<=正交表因素數;
(2)每個因子數<=正交表每個因子數;
(3)如果出現2個或2個以上正交表符合以上條件,則選擇Case數最少的正交表。
選取了正交表后,刪除正交表中多余的因子列,原則是刪除靠后的列。
(4)對因子與狀態的選中可按其重要程度分別加權。可根據各個因子及狀態的作用大小。對于權重高的因子放在最前面的列中,以此類推。
或是選中如下的描述:
?
??表中的因素數>=5
??表中至少有5個因素的水平數>=2
??行數取少的一個
??結果:
?
?
3.2?引用的例子
產品文件查詢為例子
?
下圖是文件上傳列表的頁面,要測試的控件有3個,也就是要考慮的因素有三個:項目名稱、產品型號、文件名稱,而且每個因素有兩個狀態,填或是不填。表中的因素數>=3;表中至少有3個因素的水平數>=2,行數取最少的一個。從正交表公因式中開始查找,結果為:,即實驗4次。
?
共有8條測試用例,如下圖:
3.3?引用LMS引用的例子
?
以發郵件為例子,發郵件在LMS上的需求是:收件人和正文必須填寫,主題和附件可以不填。
1)列出因素數和水平數:
(1)收件人:單用戶、多用戶(已經存在的用戶)
(2)正文:圖片、非圖片(文字類型)
(3)主題:可填、可不填
(4)附件:可填、可不填
因素數是:收件人,正文,主題,附件
水平數是:2(每一個因素數都是2)?
確定行數:
因2水平的有兩種:一種是;另一種是。所以采用的是。
2)把變量映射到表中
補充的測試用例:
實驗9:一個用戶,圖片,可不填,可不填
實驗10:多個用戶,非圖片,可填,可填
如果按照判定驅動表法的列出共有:2*2*2*2=16種,現在采用正交表實驗法功能有:8+2=10種,少了16-10=6種測試用例
用設計的用例如下:
總結
- 上一篇: JAVA各类基础高级面试题和中间件面试题
- 下一篇: QT5.12安装图文教程与安装成功后环境