一、正交試驗法概念
因果圖進行測試用例設計的不足,作爲輸入條件的原因和結果之間的因果關係,有時很難從軟件需求規格說明書中得到,往往由於因果關係非常龐大,導致利用因果圖得到的測試用例數據多的驚人,給軟件測試帶來沉重的負擔。
解決方法:利用正交試驗法進行測試用例的設計
二、案例分析
1、案例
爲提高某化工產品的轉化率,選擇了三個有關因素進行條件試驗,反應溫度(A),反應時間(B),用鹼量(C),並確定了它們的試驗範圍:
A:80-90°C
B:90-150分鐘
C:5-7%
試驗目的是搞清楚因子A、B、C對轉化率有什麼影響,哪些是主要的,哪些是次要的,從而確定最佳生產條件,即溫度、時間以及用鹼量各爲多少才能使轉化率高,請制定試驗方案
2、分析
對因子A、因子B和C在試驗範圍內分別選了三個水平:
A:A1=80°C,A2=85°C,A3=90°C
B:B1=90分,B2=120分,B3=150分
C:C1=5%,C2=6%,C3=7%
在正交試驗設計中,定量因子各水平間的距離可以相等,也可以不想等
3、試驗方法
3.1 全面試驗法
3.2 簡單對比法
簡單對比法優點:試驗次數少
缺點:
1)這種方法的選點代表性很差,試驗點完全發佈在一個角上,而在一個很大的範圍內沒有選點,因此這種試驗方法不全面
2)用這種方法比較條件好壞時,是把單個的試驗數據拿來,進行數值上的簡單比較,而試驗數據中必然要包含着誤差成分,所以單個數據的簡單比較不能剔除誤差的干擾,必然造成結論的不穩定
3.3 正交試驗法
試驗工工作者在長期的工作中總結出一套辦法,創造出所謂的正交表。按照正交表來安排試驗,既能使試驗點分佈得很均勻,又能減少試驗次數,而且計算分析簡單,能夠清晰地闡明試驗條件與指標之間地關係,
正交試驗設計法就是使用已經定義好的表格(正交表)來安排試驗並進行數據分析的一種方法。
3.4 正交表
3.4.1正交表:使正交試驗設計的關鍵,是在一整套嚴謹的規則下而設計出來的表格
3.4.2 行數:正交表中的行的個數,即試驗的次數,也是我們通過正交實驗設計的測試用例的個數
3.4.3 因子:正交表中的列的個數,即我們要測試的功能點。
3.4.4 水平數:任何單個因子能夠取得值的最大個數,正交表中的包含的值從0到“水平數-1”或從1到“水平數”。即要測試功能點的輸入條件。
3.5 正交表的選擇
3.5.1 利用關係式可以從所要考察的因子水平數來決定最低的試驗次數,進而選擇合適的正交表,
3.5.2 考察五個3水平因子及一個2水平因子,計算試驗次數,選擇正交表。
3.5.3 試驗次數爲:5X(3-1)+1X(2-1)+1=12(次)
要在行數不小於12,既有2水平列又有3水平列的正交表中選擇,L_18(2X3^7)適合。
3.5.4 正交表具有兩條性質
-- 每一列中各數字出現的次數都一樣多
-- 任何兩列所構成的各有序數對出現的次數都一樣多
3.6 試驗方案的設計
3.6.1 把所考察的每一個因子任意地對應於正交表的一列,然後把每列的數字“翻譯”成所對應因子的水平。這樣,每一行的各水平組合就構成了一個試驗條件(不考慮沒安排因子的列)。
3.6.2 對於案例,因子A、B、C都是三水平的,試驗次數要不少於3X(3-1)+1=7(次),可考慮選用。
3.6.3 因子A、B、C可任意地對應於的某三列,例如A、B、C分別放在1、2、3列,然後試驗按行進行,順序不限,每一行各因素的水平組合就是每一次的試驗條件,從上到下就是這個正交試驗的方案。
3.7 用正交表設計測試用例的步驟
3.7.1 有哪些因素(變量)
3.7.2 每個因素有哪幾個水平(變量的取值)
3.7.3 選擇一個合適的正交表
3.7.4 把變量的值映射到表中
3.7.5 把每一行的各因素水平的組合作爲一個測試用例
3.7.6 加上你認爲可疑且沒有在表中出現的組合
3.8 錯誤推測法
3.8.1 錯誤推測法是基於經驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性地設計測試用例
3.8.2 錯誤推測法基本思想
a、列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況來設計扯絲用例
b、以前測試時曾出現錯誤的地方,包括單元測試,集成測試、系統測試,前幾次迴歸測試
c、輸入數據的問題,如是否可爲空,是否可以有特殊字符,是否可以小於0,等於0等等。
d、一些問題的範圍或邊界
3.8.3 例子:
例如測試一個對線性表(比如數組)進行排序的程序,可推測列出以下幾項需要特別測試的情況:
-- 輸入的線性表爲空表;
-- 表中只含有一個元素;
-- 輸入表中所有元素已排好序;
-- 輸入表已按逆序排好;
-- 輸入表中部分或全部元素相同。
3.8.4 黑盒測試方法選擇策略
-- 首先進行等價類劃分,是提高效率的最有效方法
-- 在任何情況下都必須使用邊界值分析方法
-- 依靠測試工程師的智慧和經驗用錯誤推測加一些測試用例
-- 針對邏輯比較簡單的測試對象,可以直接使用判定表達法
-- 如果程序的功能說明書中含有輸入條件的組合情況,並且業務邏輯比較複雜,則可以選因果圖法
-- 對於業務流清晰的系統,可以利用場景法貫穿整個測試過程
-- 輸入條件的原因和結果之間的因果關係比較模糊,或者因果關係非常龐大,可以利用正交試驗法選擇較少的組合達到最佳效果。