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