軟體測試工程師
從網上看到了一篇不錯的文章,轉載一下
正交試驗法是研究多因素、多水平的一種試驗法,它是利用正交表來對試驗進行設計,通過少數的試驗替代全面試驗,根據正交表的正交性從全面試驗中挑選適量的、有代表性的點進行試驗,這些有代表性的點具備了“均勻分散,整齊可比”的特點。本規範只討論各因素是相互獨立的正交試驗法,各因素相互影響的正交試驗法在我們設計測試用例的時候用不到,所以不提。
正交表是一種特製的表格,一般用Ln(mk)表示,L代表是正交表,n代表試驗次數或正交表的行數,k代表最多可安排影響指標因素的個數或正交表的列數,m表示每個因素水平數,且有n=k*(m-1)+1。正交試驗法原理及特點見附錄
對於單因素或兩因素試驗,因其因素少,試驗的設計、實施與分析都比較簡單。但在實際工作中,常常需要同時考察3個或3個以上的試驗因素,若進行全面試驗,試驗的規模很大,由於時間和成本的限制我們不可能進行全面試驗,但是具體挑其中的哪些測試用例進行測試我們心裡拿不準,總擔心不做不挑選的那些測試用例會遺漏一些嚴重缺陷。為了有效的、合理地減少測試的工時與費用,我們利用正交試驗法來設計測試用例。正交試驗法就是安排多因素試驗、尋求最優水平組合的一種高效率的試驗設計方法。
我們用測試例項來進行說明使用正交試驗法設計測試用例的好處。
測試需求:
某所大學通訊系共2個班級,剛考完某一門課程,想通過“性別”、“班級”和“成績”這三個查詢條件對通訊系這門課程的成績分佈,男女比例或班級比例進行人員查詢:
根據“性別”=“男,女”進行查詢
根據“班級”=“1班,2班”查詢
根據“成績”=“及格,不及格”查詢
按照傳統設計——全部測試
分析上述測試需求,有3個被測元素,被測元素我們稱為因素,每個因素有兩個取值,我們稱之為水平值,所以全部測試用例個數是2*2*2=8,參見下表
序號 |
性別 |
班級 |
成績 |
1 |
女 |
1班 |
及格 |
2 |
女 |
1班 |
不及格 |
3 |
女 |
2班 |
及格 |
4 |
女 |
2班 |
不及格 |
5 |
男 |
1班 |
及格 |
6 |
男 |
1班 |
不及格 |
7 |
男 |
2班 |
及格 |
8 |
男 |
2班 |
不及格 |
利用正交表設計測試用例,我們得到的測試用例個數是n=3*(2-1)+1=4,對於三因素兩水平的剛好有L4(23)的正交表可以套用,於是用正交表試驗法得出4個測試用例如下:
序號 |
性別 |
班級 |
成績 |
1 |
女 |
1班 |
及格 |
2 |
女 |
2班 |
不及格 |
3 |
男 |
1班 |
不及格 |
4 |
男 |
2班 |
及格 |
根據實際需要可以在用正交試驗法設計用例的基礎上補充一些測試用例。
4個測試用例與8個測試用例相比測試用例個數是減少了。因素數和水平數越大越能體現用正交表的好處。例如:對於一個四因素且每個因素均為三水平的試驗,如果按照全面試驗需要進行3*3*3*3=81次。但是如果用正交試驗法選擇L9(34)正交表,n=4*(3-1)+1=9次試驗就可以覆蓋。從這點可以說明用正交試驗法能有效地、合理地減少測試用例和工時,節約測試成本。