章曉勤
(安徽電子信息職業(yè)技術學院,安徽 蚌埠 233030)/
開發(fā)人員開發(fā)出一款新的軟件,必定希望它有良好的運行效果,有廣闊的市場,能帶來更大的利潤.而若有廣闊市場,則軟件必須運行在各式各樣的系統之上.這里“各式各樣的系統”指的是不同的硬件系統和不同的軟件系統.隨著計算機技術的發(fā)展,計算機硬件已經達到了相當高的水平,這里暫且不去考慮它,單只考慮新開發(fā)的軟件要運行的軟件系統.要使得新開發(fā)的軟件能正常運行,需要考慮它和其他軟件的兼容性,包括與操作系統、瀏覽器、殺毒軟件等的兼容性.而操作系統又有很多種,很多不同的版本,瀏覽器和殺毒軟件也存在同樣的情況.如果一一去進行測試,這些組合將是一個龐大的數字,測試人員的工作量也將非常巨大.如何從這龐大的組合中挑選合適的數據?挑選多少組數據是合適的?挑選的數據具不具備代表性?這些都是需要解決的問題.
正交實驗法,又稱為正交設計實驗法,或正交設計試驗法,它產生于許多實際工作.現實當中,若有多個因素的改變影響某個事件的改變,則為了弄清多個因素中哪些因素是重要的,哪些因素是不重要的,哪幾個因素搭配在一起會產生極值,需要通過實驗進行驗證.若因素個數比較多,同時每一個因素有多種取值,則實驗量將會非常大.顯然,不能對每一個數據都進行實驗.正交實驗法就是一種從大量的實驗數據中挑選適量的、有代表性的數據進行測試的實驗設計方法.
正交實驗法是一種研究和處理多因素實驗的科學方法[1].其實驗原理是依據正交性從全面實驗需要測試的所有點中挑選出一部分有代表性的點來進行實驗.挑選出的這些點具備“均勻分散,齊整可比”[2]的特點.正交實驗法依據正交表,科學地設計實驗條件,合理安排實驗.其使用過程中有幾個關鍵屬性.
(1)次數:實驗次數(Runs)是指實驗一共需要執(zhí)行的次數,在軟件測試中就是測試用例的數目.
(2)因素:因數(Factor)是指影響考核指標取值的量.
(3)水平:水平(Level)是指實驗因素的取值.
(4)正交表:正交表是運用組合數學理論在正交拉丁名的基礎上構造的一種規(guī)格化的表格.標記為:Ln(ji),其中:L是正交表的符號,n是正交表的行數,也就是實驗次數,j是正交表中的水平數,i是正交表的列數,也就是最多可以安排的因素的個數.根據因數和水平數可以計算出實驗次數:
實驗次數(行數)=∑(每列水平數-1)+1正交表的重要性質:
1)齊整可比性.在正交表的每列中不同數字出現的次數是相等的.
2)均勻分散性.在正交表的任意兩列中,若將同一行的兩個數字看成一個有序數對,則每個數對出現的次數是相等的.
正交表的性質決定了在用它來設計測試用例時,各因素各水平值的搭配是均衡的.
兼容性測試是軟件測試中的一種系統測試方法,用于驗證軟件與其所依賴的環(huán)境之間的依賴程度,包括對硬件、對平臺軟件和對其他軟件的依賴程度等.兼容性測試包括硬件兼容性測試、軟件兼容性測試、數據兼容性測試和平臺化軟件兼容性測試四種類型[3].
硬件兼容性測試需要進行的測試包括:(1)與整機的兼容性測試;(2)與板卡及配件的兼容性測試;(3)與打印機的兼容性測試.軟件兼容性測試通常要考慮:(1)與操作系統的兼容性;(2)與數據庫的兼容性;(3)與中間件的兼容性;(4)與瀏覽器的兼容性;(5)與其他軟件的兼容性等.數據兼容性則包括與不同數據格式的兼容性.平臺化軟件是指用來構建與支撐應用軟件的獨立軟件系統.在進行平臺化軟件兼容性時涉及到的內容非常多,幾乎涵蓋了軟硬件測試的全部領域.包括:(1)不同規(guī)模硬件平臺的兼容性;(2)不同操作系統的兼容性;(3)不同數據庫系統的兼容性;(4)客戶端的兼容性;(5)數據的兼容性.
正交實驗法一般用于黑盒測試,設計測試用例需要按以下步驟進行.
(1)確定待測軟件有哪些因素.
在軟件測試中,因素是指軟件的輸入和硬件的運行環(huán)境.在測試時,若因素太多,則可以根據專業(yè)知識和工作經驗去掉一些對實驗結果影響不大的因素[4].
(2)確定待測軟件每個因素分別有幾個水平.
首先考慮待測軟件每個因素的取值范圍,再采用等價類劃分、邊界值分析等測試技術來確定因素的取值,從而確定水平個數.
(3)從標準正交表中選擇一個合適的正交表.
選擇正交表時要考慮因素的個數、因數的水平數和正交表的行數.可分為三種情況:
1)待測軟件因素個數和水平個數與正交表相匹配.
2)待測軟件因數個數與正交表因素個數不同,水平個數相同.
3)待測軟件因數個數和水平個數與正交表都不相同.
一般而言,選取正交表時要求:正交表的行數與待測軟件所確定的水平數相同;正交表的列數要大于或等于待測軟件所確定的因素個數.即滿足1)和2)兩種情況.對于第3)種情況,相對而言很復雜,在正交表中查找不到,可以借助一些工具例如ALL Pairs正交表生成工具來生成正交結果[5].
(4)把待測軟件各個因素的水平值映射到測試用例表中,并把每一行各因素水平值的組合作為一個測試用例.
對于一個具有n個因素的待測軟件,每個因素有m1,m2,m3,…,mn個取值,完全進行兼容性測試需要進行m1×m2×m3×…×mn次測試[6].對于一般的系統而言這個組合是一個龐大的數字,測試量非常大.使用正交實驗法可以從大量的數據中挑選合適的數據進行測試,大大降低了工作量.
使用正交實驗法挑選出的數據有何特點?能否代表全面測試的所有數據?下面通過一個實例進行分析.
假設某兼容性測試案例中涉及A、B、C3個因素,每個因素有3個水平,分別為a1,a2,a3,b1,b2,b3,c1,c2,c3.使用全面實驗法,設計測試用例如表1所示.
從表1可以看出,一共需要設計33個測試用例,進行27次測試.
使用正交實驗法設計的測試用例如表2所示.
從表2中可以看出,只需要設計9個測試用例,將測試用例數減少了66.7%.那么,用這9個測試用例能否代表全面實驗法設計的27個測試用例呢?下面通過圖形進行分析.
全面實驗法設計的測試用例如圖1所示.
全面實驗的27個測試用例對應著圖1中的27個點.從圖1可以看出在全面實驗中對各因素與水平間的關系剖析得比較清楚,但是實驗次數太多.特別是當因素個數比較多,每個因素的水平數目也比較多時,實驗量大得驚人.
表1 3因素3水平全面實驗法設計測試用例表Table 1 3 factors 3 levers Test Cast Table designed in comprehensive experiments
表2 3因素3水平正交實驗法設計測試用例表Table 2 3 factors 3 levers Test Cast Table designed in orthogonal experimental method
圖1 3因素3水平全面實驗法兼容性測試點Fig.1 3 factors 3 levers compatibility testing point in comprehensive experiments
用正交實驗法設計的測試用例如圖2所示.
圖2 3因素3水平正交實驗法兼容性測試點Fig.2 3 factors 3 levers compatibility testing point in orthogonal experimental method
正交實驗法的9個測試用例對應著圖2中的9個點,從圖2中可以看出選取的9個點分布在立方體的9個平面中,每個平面上都恰好有三個點,每個平面的每行每列有且僅有一個點,因此具有“均勻分散,齊整可比”的特點.這就表明,用正交實驗法設計測試用例雖然不能完全代表全面實驗法設計的測試用例,但無疑是最具有代表性的,測試用例數最少的一種方案.
通過以上分析得知,在兼容性測試中使用正交實驗法設計測試用例,可以大大地減少測試用例的數目,減少工作量.下面以“行業(yè)信息庫管理系統”的兼容性測試用例的設計過程來演示正交實驗法在兼容性測試方面的應用.
“行業(yè)信息庫管理系統”是作者曾經參與開發(fā)的一款基于B/S結構的某公司行業(yè)信息管理軟件,在進行兼容性測試時需要著重考慮以下4個方面:
1)操作系統
本軟件只考慮Windows操作系統,包括Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows 8.
2)瀏覽器:IE6、IE8、谷歌瀏覽器、360瀏覽器、獵豹瀏覽器.
3)分辨率:1024*768、1440*900、1280*800、1280*1024、800*600.
4)殺毒軟件:金山毒霸、360、QQ電腦管家、瑞星、卡巴斯基.
根據正交實驗法設計測試用例的步驟,進行測試用例的設計.
(1)確定待測系統有哪些因素.
根據項目要求,兼容性測試一共考慮操作系統、瀏覽器、分辨率、殺毒軟件4個因素.
(2)確定待測系統中每個因素分別有幾個水平.
本軟件中,操作系統、瀏覽器、分辨率、殺毒軟件這4個因素都要考慮5個取值,因此都是5個水平.
(3)從標準正交表中選擇一個合適的正交表.
從上面分析可知,這是一個4因素5水平的案例.從標準正交表5水平的正交表中進行挑選,由于不存在L17(54)正交表,因此挑選最接近的6因素5水平的正交表L25(56).L25(56)標準正交表如表3所示.
(4)把各因素的水平值映射到測試用例表中,并把每一行各因素水平值的組合作為一個測試用例.測試用例表如表4所示.
表3 L25(56)標準正交表Table 3 L25(56) Standard Orthogonal experiment table
由于只有4因素,而L25(56)標準正交表最多可以安排6個因素,因此,在設計測試用例時第5列和第6列的數據不需要考慮.
4因素5水平的項目,在進行兼容性測試時,若進行全面實驗,則需要設計54個測試用例,進行625次測試.而使用正交實驗法設計測試用例時,只需要25個測試用例,將工作量降低至原來的4%.當因數個數和水平個數更多時,使用正交試驗法的效果就更加明顯.
表4 測試用例表Table 4 Test Cast Table
由于兼容性測試在軟件兼容性測試方面涉及到的內容很多,各種軟件類型多,版本多,要進行全面測試工作量大.在兼容性測試中使用正交實驗法設計測試用例,能從海量的數據組合中挑選合適的、有代表性的數據,從而有效地減少工作量,節(jié)約測試成本.
致 謝
感謝在論文撰寫過程中給予我建議和幫助的同事!
參考文獻:
[1] 彭永利,羅燦,陳柏光 .1,3-二溴-2,2-二(溴甲基)丙烷的合成及結構表征[J].武漢工程大學學報,2013,35(7):37-42.
PENG Yong-li,LUO Can,CHEN Bai-guang.Synthesis and structure characterization of 1,3-dibromo-2,2-Bis(bromomethy1)propane[J].Journal Of WUHAN Institute Of Technology,2013,35(7):37-42. (in Chinese)
[2] 肖馳.正交設計法在軟件測試中的應用[J].現代計算機,2009(6):7-9.
XIAO Chi.Application of Orthogonal Design Method in Software Testing[J].Modern Computer,2009(6):7-9. (in Chinese)
[3] 何苗,朱有德.正交試驗在軟件測試用例設計中的應用[J].光電技術應用,2013,28(3):77-78.
HE Miao,ZHU You-de.Application of Orthogonal Experiment in Software Test Case Design[J].Electro-Optic Texhnology Application,2013,28(3):77-78. (in Chinese)
[4] 牛勝芬,董明,張愛良,等.試驗信息系統兼容性測試策略[J].飛行器測控學報,2012,31(3):17-20.
NIU Sheng-fen,DONG Ming,ZHANG Ai-liang,et al.Compatibility Test Strategy for Experiment Information Systems[J].Journal of Spacecraft TT &C Technology.2012,31(3):17-20. (in Chinese)
[5] 唐麗莉,曾定洲.正交法在GSM軟件測試中的應用 [J].計算機技術與發(fā)展,2013,23(3):90-92.
TANG Li-li,ZENG Ding-zhou. Application of Intersection Method in Test for GSM Software[J].Computer Technology and Development, 2013,23(3):90-92.(in Chinese)
[6] 趙勇,張智強,嚴俊,等.軟件兼容性測試的故障定位分析[J].計算機科學與探索,2013,7(5):406-410.
ZHAO Yong,ZHANG Zhi-qiang,YAN Jun,et al.Analysis of Fault Location in Software Compatibility Testing[J].Journal of Frontiers of Computer Science and Technology,2013,7(5):406-410.(in Chinese)