首頁技術(shù)文章正文

正交實驗設(shè)計法是什么?

更新時間:2021-11-09 來源:黑馬程序員 瀏覽量:

正交實驗設(shè)計法(Orthogonal Experimental Design )是指從大量的實驗點中挑選出適量的、有代表性的點,依據(jù)Glois理論導(dǎo)出“正交表”。從而合理地安排實驗的一種實驗設(shè)計方法。正交實驗設(shè)計法是研究多因素多水平的一種實驗方法,生物學(xué)中經(jīng)常會用這種方法研究植物的生長狀況,一株植物的生長狀況會受到多種因素的影響,包括種子質(zhì)量等內(nèi)部因素,還包括陽光、空氣、水分、土壤等外部因素。在軟件測試中,如果軟件比較復(fù)雜,也可以利用正交實驗設(shè)計法設(shè)計測試用例對軟件進行測試。

正交實驗設(shè)計法包含3個關(guān)鍵因素,具體如下所示。

(1)指標(biāo):判斷實驗結(jié)果優(yōu)劣的標(biāo)準(zhǔn)。

(2)因子:因子也稱為因素,是指所有影響實驗指標(biāo)的條件。

(3)因子的狀態(tài):因子的狀態(tài)也叫因子的水平,它指的是因子變量的取值。

利用正交實驗設(shè)計法設(shè)計測試用例時,可以按照如下步驟進行。


(1)提取因子,構(gòu)造因子狀態(tài)表

分析軟件的規(guī)格需求說明得到影響軟件功能的因子,確定因子可以有哪些取值,即確定因子的狀態(tài)。例如,某一軟件的運行受到操作系統(tǒng)和數(shù)據(jù)庫的影響,因此影響其運行是否成功的因子有操作系統(tǒng)和數(shù)據(jù)庫2個,而操作系統(tǒng)有Windows、Linux、Mac3個取值,數(shù)據(jù)庫有MySQL、MongoDB、Oracle3個取值,因此操作系統(tǒng)的因子狀態(tài)為3,數(shù)據(jù)庫因子-狀態(tài)為3。據(jù)此構(gòu)造該軟件運行功能的因子-狀態(tài)表,如下表所示。

因子-狀態(tài)
表 1


(2)加權(quán)篩選,簡化因子-狀態(tài)表

在實際軟件測試中,軟件的因子及因子的狀態(tài)會有很多,每個因子及其狀態(tài)對軟件的作用也大不相同,如果把這些因子及狀態(tài)都劃分到因子-狀態(tài)表中,最后生成的測試用例會相當(dāng)龐大,從而影響軟件測試的效率。因此需要根據(jù)因子及狀態(tài)的重要程度進行加權(quán)篩選,選出重要的因子與狀態(tài),簡化因子-狀態(tài)表。

加權(quán)篩選就是根據(jù)因子或狀態(tài)的重要程度、出現(xiàn)頻率等因素計算因子和狀態(tài)的權(quán)值,權(quán)值越大,表明因子或狀態(tài)越重要,而權(quán)值越小,表明因子或狀態(tài)的重要性越小。加權(quán)篩選之后,可以去掉一部分權(quán)值較小的因子或狀態(tài),使得最后生成的測試用例集縮減到允許的范圍。


(3)構(gòu)建正交表,設(shè)計測試用例

正交表的表示形式為Ln(tc)。

·L表示正交表。

·n為正交表的行數(shù),正交表的每一行可以設(shè)計一個測試用例,因此行數(shù)n也表示可以設(shè)計的測試用例的數(shù)目。

·c表示正交實驗的因子數(shù)目,即正交表的列數(shù),因此正交表是一個n行c列的表。

·t稱為水平數(shù),表示每個因子能夠取得的最大值,即因子有多少個狀態(tài)。

例如L4(23)是最簡單的正交表,它表示該實驗有3個因子,每個因子有兩個狀態(tài),可以做4次實驗,如果用0和1表示每個因子的兩種狀態(tài),則該正交表就是一個4行3列的表,如下表所示。

正交表
表2

假設(shè)表2中的3個因子為登錄用戶名、密碼和驗證碼,用戶名、密碼和驗證碼有正確(用1表示)和錯誤(用0表示)兩種狀態(tài),正常需要設(shè)計23=8個測試用例,而使用正交表只需要設(shè)計4個測試用例就可以達到同樣的測試效果。因此,正交實驗法是一種高效、快速、經(jīng)濟的實驗設(shè)計方法。

在表2中,3個因子的狀態(tài)都有兩種,這樣的正交實驗比較容易設(shè)計正交表,但在實際軟件測試中,大多數(shù)情況下,軟件有多個因子,每個因子的狀態(tài)數(shù)目都不相同,即各列的水平數(shù)不等,這樣的正交表稱為混合正交表,如L8(24×41),這個正交表表示有4個因子有2種狀態(tài),有1個因子有4種狀態(tài)?;旌险槐硗y以確定測試用例的數(shù)目,即n的值,這種情況下,大家可以登錄正交表的一些權(quán)威網(wǎng)站,查詢n值,例如,圖下展示的是一個正交表查詢網(wǎng)站的主頁。

在這里,大家可以查詢到不同因子數(shù)、不同水平數(shù)的正交表的n值。在該網(wǎng)站查找到24×41的正交表n值為8,其正交表設(shè)計如表3所示。

正交表2
表3

由表3可知,第1~4列有0和1兩種狀態(tài),第5列有4種狀態(tài),正符合“有4個因子有2種狀態(tài),有1個因子有4種狀態(tài)”。

正交表最大的特點是取點均勻分散、齊整可比,每一列中每種數(shù)字出現(xiàn)的次數(shù)都相等,即每種狀態(tài)的取值次數(shù)相等。例如,在表2中,每一列都是取2個0和2個1;在表2中,第1~4列中,0和1的取值個數(shù)都是4,在第5列中,0、1、2、3的取值個數(shù)均為2。此外,任意兩列組成的對數(shù)出現(xiàn)的次數(shù)相等,例如,在表2中,第1~2列共組成4對數(shù)據(jù):(1,1)、(1、0)、(0、1)、(0,0),這4對數(shù)據(jù)各出現(xiàn)一次,其他任意兩列也如此;在表2中,第1~2列組成的數(shù)據(jù)對有4個:(0,0)、(0,1)、(1,0)、(1,1),這4對數(shù)據(jù)出現(xiàn)的次數(shù)各為2次。在正交表中,每個因子的每個水品與另一個因子的各水平都“交互”一次,這就是整交性,它保證了實驗點均為分散在因子與水品的組合之中,因此具有很強的代表性。

對于受多因子多水平影響的軟件,正交實驗法可以高效適量地生成測試用例,減少測試工作量,并且利用正交實驗法得到的測試用例具有一定的覆蓋度,檢錯率可達50%以上。正交實驗法雖然好用,但在選擇正交表時要注意先要確定實驗因子、狀態(tài)及它們之間的交互作用,選擇合適的正交表,同時還要考慮實驗的精度要求、費用、時長等因素。



猜你喜歡

軟件測試工具常用的都有哪些?

軟件測試模型分為哪幾種?

什么是軟件測試的環(huán)境?

黑馬程序員軟件測試培訓(xùn)課程

分享到:
在線咨詢 我要報名
和我們在線交談!