更新時間:2021-11-09 來源:黑馬程序員 瀏覽量:
正交實驗設計法(Orthogonal Experimental Design )是指從大量的實驗點中挑選出適量的、有代表性的點,依據Glois理論導出“正交表”。從而合理地安排實驗的一種實驗設計方法。正交實驗設計法是研究多因素多水平的一種實驗方法,生物學中經常會用這種方法研究植物的生長狀況,一株植物的生長狀況會受到多種因素的影響,包括種子質量等內部因素,還包括陽光、空氣、水分、土壤等外部因素。在軟件測試中,如果軟件比較復雜,也可以利用正交實驗設計法設計測試用例對軟件進行測試。
正交實驗設計法包含3個關鍵因素,具體如下所示。
(1)指標:判斷實驗結果優(yōu)劣的標準。
(2)因子:因子也稱為因素,是指所有影響實驗指標的條件。
(3)因子的狀態(tài):因子的狀態(tài)也叫因子的水平,它指的是因子變量的取值。
利用正交實驗設計法設計測試用例時,可以按照如下步驟進行。
(1)提取因子,構造因子狀態(tài)表
分析軟件的規(guī)格需求說明得到影響軟件功能的因子,確定因子可以有哪些取值,即確定因子的狀態(tài)。例如,某一軟件的運行受到操作系統(tǒng)和數據庫的影響,因此影響其運行是否成功的因子有操作系統(tǒng)和數據庫2個,而操作系統(tǒng)有Windows、Linux、Mac3個取值,數據庫有MySQL、MongoDB、Oracle3個取值,因此操作系統(tǒng)的因子狀態(tài)為3,數據庫因子-狀態(tài)為3。據此構造該軟件運行功能的因子-狀態(tài)表,如下表所示。
表 1
(2)加權篩選,簡化因子-狀態(tài)表
在實際軟件測試中,軟件的因子及因子的狀態(tài)會有很多,每個因子及其狀態(tài)對軟件的作用也大不相同,如果把這些因子及狀態(tài)都劃分到因子-狀態(tài)表中,最后生成的測試用例會相當龐大,從而影響軟件測試的效率。因此需要根據因子及狀態(tài)的重要程度進行加權篩選,選出重要的因子與狀態(tài),簡化因子-狀態(tài)表。
加權篩選就是根據因子或狀態(tài)的重要程度、出現(xiàn)頻率等因素計算因子和狀態(tài)的權值,權值越大,表明因子或狀態(tài)越重要,而權值越小,表明因子或狀態(tài)的重要性越小。加權篩選之后,可以去掉一部分權值較小的因子或狀態(tài),使得最后生成的測試用例集縮減到允許的范圍。
(3)構建正交表,設計測試用例
正交表的表示形式為Ln(tc)。
·L表示正交表。
·n為正交表的行數,正交表的每一行可以設計一個測試用例,因此行數n也表示可以設計的測試用例的數目。
·c表示正交實驗的因子數目,即正交表的列數,因此正交表是一個n行c列的表。
·t稱為水平數,表示每個因子能夠取得的最大值,即因子有多少個狀態(tài)。
例如L4(23)是最簡單的正交表,它表示該實驗有3個因子,每個因子有兩個狀態(tài),可以做4次實驗,如果用0和1表示每個因子的兩種狀態(tài),則該正交表就是一個4行3列的表,如下表所示。
表2
假設表2中的3個因子為登錄用戶名、密碼和驗證碼,用戶名、密碼和驗證碼有正確(用1表示)和錯誤(用0表示)兩種狀態(tài),正常需要設計23=8個測試用例,而使用正交表只需要設計4個測試用例就可以達到同樣的測試效果。因此,正交實驗法是一種高效、快速、經濟的實驗設計方法。
在表2中,3個因子的狀態(tài)都有兩種,這樣的正交實驗比較容易設計正交表,但在實際軟件測試中,大多數情況下,軟件有多個因子,每個因子的狀態(tài)數目都不相同,即各列的水平數不等,這樣的正交表稱為混合正交表,如L8(24×41),這個正交表表示有4個因子有2種狀態(tài),有1個因子有4種狀態(tài)?;旌险槐硗y以確定測試用例的數目,即n的值,這種情況下,大家可以登錄正交表的一些權威網站,查詢n值,例如,圖下展示的是一個正交表查詢網站的主頁。
在這里,大家可以查詢到不同因子數、不同水平數的正交表的n值。在該網站查找到24×41的正交表n值為8,其正交表設計如表3所示。
表3
由表3可知,第1~4列有0和1兩種狀態(tài),第5列有4種狀態(tài),正符合“有4個因子有2種狀態(tài),有1個因子有4種狀態(tài)”。
正交表最大的特點是取點均勻分散、齊整可比,每一列中每種數字出現(xiàn)的次數都相等,即每種狀態(tài)的取值次數相等。例如,在表2中,每一列都是取2個0和2個1;在表2中,第1~4列中,0和1的取值個數都是4,在第5列中,0、1、2、3的取值個數均為2。此外,任意兩列組成的對數出現(xiàn)的次數相等,例如,在表2中,第1~2列共組成4對數據:(1,1)、(1、0)、(0、1)、(0,0),這4對數據各出現(xiàn)一次,其他任意兩列也如此;在表2中,第1~2列組成的數據對有4個:(0,0)、(0,1)、(1,0)、(1,1),這4對數據出現(xiàn)的次數各為2次。在正交表中,每個因子的每個水品與另一個因子的各水平都“交互”一次,這就是整交性,它保證了實驗點均為分散在因子與水品的組合之中,因此具有很強的代表性。
對于受多因子多水平影響的軟件,正交實驗法可以高效適量地生成測試用例,減少測試工作量,并且利用正交實驗法得到的測試用例具有一定的覆蓋度,檢錯率可達50%以上。正交實驗法雖然好用,但在選擇正交表時要注意先要確定實驗因子、狀態(tài)及它們之間的交互作用,選擇合適的正交表,同時還要考慮實驗的精度要求、費用、時長等因素。
猜你喜歡