正交試驗法是研究多因素、多水平的一種試驗法,它是利用正交表來對試驗進行設計,經過少數的試驗替代全面試驗,根據正交表的正交性從全面試驗中挑選適量的、有表明性的點進行試驗,這些有表明性的點具有了「均勻分散,整齊可比」的特色。本規範只討論各因素是相互獨立的正交試驗法,各因素相互影響的正交試驗法在咱們設計測試用例的時候用不到,因此不提。面試
正交表是一種特製的表格,通常用Ln(mk)表示,L表明是正交表,n表明試驗次數或正交表的行數,k表明最多可安排影響指標因素的個數或正交表的列數,m表示每一個因素水平數,且有n=k*(m-1)+1。正交試驗法原理及特色見附錄。測試
對於單因素或兩因素試驗,因其因素少,試驗的設計、實施與分析都比較簡單。但在實際工做中,經常須要同時考察3個或3個以上的試驗因素,若進行全面試驗,試驗的規模很大,因爲時間和成本的限制咱們不可能進行全面試驗,可是具體挑其中的哪些測試用例進行測試咱們內心拿不許,總擔憂不作不挑選的那些測試用例會遺漏一些嚴重缺陷。爲了有效的、合理地減小測試的工時與費用,咱們利用正交試驗法來設計測試用例。正交試驗法就是安排多因素試驗、尋求最優水平組合的一種高效率的試驗設計方法。ui
咱們用測試實例來進行說明使用正交試驗法設計測試用例的好處。spa
測試需求:設計
某所大學通訊系共2個班級,剛考完某一門課程,想經過「性別」、「班級」和「成績」這三個查詢條件對通訊系這門課程的成績分佈,男女比例或班級比例進行人員查詢:ci
根據「性別」=「男,女」進行查詢get
根據「班級」=「1班,2班」查詢table
根據「成績」=「及格,不及格」查詢效率
按照傳統設計——所有測試基礎
分析上述測試需求,有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次試驗就能夠覆蓋。從這點能夠說明用正交試驗法能有效地、合理地減小測試用例和工時,節約測試成本。
優勢:根據正交性從全面試驗中挑選出部分有表明性的點進行試驗,這些有表明性的特色具有了「均勻分散,整齊可比」的特色。經過使用正交試驗法減小了測試用例,合理地減小測試的工時與費用,提升測試用例的有效性。是一種高效率、快速、經濟的實驗設計方法。
缺點:對每一個狀態點同等對待,重點不突出,容易形成在用戶不經常使用的功能或場景中,花費很多時間進行測試設計與執行,而在重要路徑的使用上反而沒有重點測試。
雖然正交試驗設計有上述不足,但它能經過部分試驗找到最優水平組合,於是很受實際工做者的青睞。