轉自:http://www.51testing.com/html/19/422619-249780.html
- 因果圖法
考慮到輸入組合的情況
有3個部分:
- 因=輸入條件
- 中間結點=輸出值必須的前提條件
- 果=輸出條件
通過有4種符號:
- 恆等,即因=1,果=1;因=0,果=0。即果跟隨因的變化而變
- 非,即因=1,果=0;因=0,果=1。即因和果是對立的,永遠不會統一
- 或,即有N個因中有1個因=1(至少有2個因),即果=1。即只要有一個因達到規定的需求,果就能出現
- 與,即有N個因中(至少有2個因),每因都必須=1,果才會出現。即只有全部的因都符合條件了,果才會出現
與程序語言做比較:
- 恆等等於=
- 非等於!=
- 或等於||
- 與等於&&
4種約束條件:
- E(互斥),相當於“非”
- I(包含),相當於“或”
- O(惟一),表示a和b當中必須有一個成立,且只有一個成立
- R(要求),相當於“恆等”
- M(屏蔽),表示當a=1時,b=0;而a=0時,b的值不確定
通用因果圖畫法:

- 判定表驅動法
由4個部分組成:
- 條件樁:列出問題的所有條件,次序無所謂
- 動作樁:列出問題規定可能采取的操作,順序無約束
- 條件項:列出針對該問題所列條件的取值,在所有可能情況下的真假值
- 動作項:列出在條件項的各種取值情況下應該采取的動作
- 規則:任何一個條件組合的特定取值及其相應要執行的操作
因果圖與判定表的關系:因果圖法是找出因和果,通過因果圖轉換為判定表
- 正交試驗法
正交試驗設計方法是從大量的試驗數據中挑選適量的、有代表性的點,即使用已經造好的表格“—”正交表來安排試驗並進行數據分析
例:為提高某化工產品的轉化率,選擇了三個有效因素進行條件試驗,A=反應溫度,B=反應時間,C=用鹼量,且
A:80~90度
B:90~150分鍾
C:5%~7%
目的:弄清因子A,B,C哪個對轉化率,是主要的,次要的,從而確定最適合的條件,即在試驗范圍內選取三個水平:
A:A1=80度,A2=85度,A3=90度
B:B1=90分鍾,B2=120分鍾,B3=150分鍾
C:C1=5%,C2=6%,C3=7%
當然選擇因子是可以定量的,可以根據因子間的各水平距離而確定
第1種—全面試驗法

優點:對各因子與指標間的關系剖析的比較清楚,但試驗次數太多
第2種—簡單對比法
- 首先固定B、C於B1、C1,使A變化:
B1C1——A1
——A2
——A3(好結果)
若結果A3最好,則固定A於A3,C還是C1,使B變化
依次下去對比
優點:試驗次數少,但選戰代表性差
故:我們就兼顧這2種方法的優點。
即選取每一行的各水平組合構成一個試驗條件
如上一圖,A有3個平面,B與C也有3個平面,共9個,只需選擇9個因子點,即只需要9個用例即可

PS:另外作為學習正交試驗設計法,找到了2個地址,可以進一步充實自己的理論知識
1. http://www.doc88.com/p-492273209026.html (正交試驗設計法的基本思想)
2. http://www.docin.com/p-43488508.html(常用正交表,順便解釋下表名的意識,如L16(4^5):L為正交表的代號、16為試驗的次數即行數、4為水平數(狀態)、5為列數)
3. http://www.docin.com/p-35688652.html(正交表的數學理論)
4. http://www.docin.com/p-286960867.html(正交表的構建)
正交實驗設計方法:
主要步驟是:
(1) 對軟件 需求 規格說明中的功能要求進行划分(層層分解與展開),分解成具體的、相對獨立的基本功能。
(2) 根據基本功能的 質量 需求,找出影響其功能實現的操作對象和外部因素,每個因素的取值可以看作水平,多個取值就存在多個水平。
(3) 確定待測試軟件中所有因素及其權值,這是 測試用例設計 的關鍵,確保全面、准確。
權值是依據各因素的影響范圍、發生的頻率和質量的需求來確定的。(加權平均數:
比如,幾個數:2、4、6,它們的權數分別為1、3、5.
那么它們的加權平均數=(2*1+4*3+6*5)/(1+3+5),即各個數分別乘上其權數,然后除上各個權數之和。
權數就是各個數在數據系統內,所占的重要性。
)
(4) 加權篩選,生成因素分析表。
(5) 利用正交表構造測試數據集,正交表的每一行,就是一條測試用例。考慮交互作用不可忽略的處理因素和不可混雜的原則,有交互作用的組合優先安排。
利用正交實驗設計測試用例的步驟:
1.提取功能說明,構造因子--狀態表
把影響實驗指標的條件稱為因子.而影響實驗因子的條件叫因子的狀態.利用正交實驗設計方法來設計測試用例時,首先要根據被測試軟件的規格說明書找出影響其功能實現的操作對象和外部因素,把他們當作因子,而把各個因子的取值當作狀態.對軟件需求規格說明中的功能要求進行划分,把整體的概要性的功能要求進行層層分解與展開,分解成具體的有相對獨立性的基本的功能要求.這樣就可以把被測試軟件中所有的因子都確定下來,並為確定個因子的權值提供參考的依據.確定因子與狀態是設計測試用例的關鍵.因此要求盡可能全面的正確的確定取值,以確保測試用例的設計作到完整與有效。
2.加權篩選,生成因素分析表
對因子與狀態的選擇可按其重要程度分別加權.可根據各個因子及狀態的作用大小,出現頻率的大小以及測試的需要,確定權值的大小。
3.利用正交表構造測試數據集
正交表的推導依據Galois理論(這里省略,需要時可查數理統計方面的教材)。
利用正交實驗設計方法設計測試用例,比使用等價類划分,邊界值分析,因果圖等方法有以下優點:節省測試工作工時;可控制生成的測試用例數量;測試用例具有一定的覆蓋率。
用正交試驗設計法所需的行數是多少?
試驗次數(行數)= 求和【各個列數*(水平-1)】+1 , 比如要考察五個3水平因子及一個2水平因子,則起碼的試驗次數為5*(3-1)+1*(2-1)+1 = 12 (可以選擇L18(2*3^7)的表)
正交表具有2條性質:(1)每一列中各數字出現的次數都一樣多 (2)任何兩列所構成的各有序數對出現的次數都一樣多
正交表:
各列中出現的最大數字相同的正交表稱為相同水平正交表。如L4(23)、L8(27)、L12(211)等各列中最大數字為2,稱為兩水平正交表;L9(34)、L27(313)等各列中最大數字為3,稱為3水平正交表。凡是標准表,水平數都相等,且水平數只能取素數或素數冪。因此有7水平、9水平的標准表,沒有6水平,8水平的標准表。
例如L9(34),它表示需做9次實驗,最多可觀察4個因素,每個因素均為3水平。
混合正交表:
一個正交表中也可以各列的水平數不相等,我們稱它為混合型正交表,如L8(4×24),即:L8(41×24)此表的5列中,有1列為4水平,4列為2水平。再如L16(44×23),L16(4×212)等都混合水平正交表。
混合正交表選擇正交表的示例:
我們分析一下:
1、被測項目中一共有四個被測對象(4個因素),每個被測對象的狀態(水平數)都不一樣。其中,A、C水平數均為3,B的水平數為4,D的水平數為2。
2、選擇正交表:
本題,水平數>=max(3,4,2)=4,因素數>=4,查詢附錄中的正交表,只有L16(45)的行數最少,行數取最少的一個,比較適合。
3、最后選中正交表公式:L16(45)
另外,當水平數和因素數的具體值確定時,正確的行數(試驗次數)的計算方法是:
試驗次數(行數)=∑(每列水平數-1)+1
如:L18(36 *61)=(3-1)*6+(6-1)*1+1=18;L8(27)=(2-1)*7+1=8
設計測試用例時的三種情況:
1、因素數(變量)、水平數(變量值)相符
水平數(變量的取值)相同、因素數(變量)剛好符合某一正交表,則直接套用正交表,得到用例。
例子:
對某人進行查詢,假設查詢某個人時有三個查詢條件:
根據“姓名”進行查詢
根據“身份證號碼”查詢
根據“手機號碼”查詢
考慮查詢條件要么不填寫,要么填寫,此時可用正交表進行設計
① 因素數和水平數
有三個因素:姓名、身份證號、手機號碼。每個因素有兩個水平:
姓名:填、不填
身份證號:填、不填
手機號碼:填、不填
② 選擇正交表
表中的因素數>=3
表中至少有三個因素的水平數>=2
行數取最少的一個
結果:L4(2^3)
③ 變量映射
姓名:1→填寫,2→不填寫;
身份證號:1→填寫,2→不填寫;
手機號碼:1→填寫,2→不填寫;
④ 用L4(2^3)設計的測試用例
測試用例如下:
1:填寫姓名、填寫身份證號、填寫手機號
2:填寫姓名、不填身份證號、不填手機號
3:不填姓名、填寫身份證號、不填手機號
4:不填姓名、不填身份證號、填寫手機號
⑤增補測試用例
5:不填姓名、不填身份證號、不填手機號
測試用例減少數:8→5
2、因素數不相同
水平數(變量的取值)與某正交表相同,但因素數(變量)卻不相同,則取因素數最接近但略大於實際值的正交表表,套用之后,最后一列因素去掉即可。
例子:
兼容性測試:
操作系統:2000、XP、2003
瀏覽器:IE6.0、IE7.0、TT
殺毒軟件:卡巴、金山、諾頓
如果全部進行測試的話,3^3=27個組合,需要進行27次測試。
① 因素數和水平數
有三個因素:
操作系統、瀏覽器、殺毒軟件
每個因素有三個水平。
② 選擇正交表
表中的因素數>=3
表中至少有三個因素的水平數>=3
行數取最少的一個
結果:L9(3^4),如下圖:
3、水平數不相同
因素(變量)與某正交表相同,但水平數(變量的取值)不相同。
例子:
假設有一個系統有5個獨立的變量(A,B,C,D,E)。變量A和B都有兩個取值(A1 、A2和B1、B2)。變量C和D都有三個可能的取值(C1、C2、C3和D1、D2、D3)。變量E有六個可能的取值(E1、E2、E3、E4、E5、E6)。
① 因素數和水平數
有五個因素(變量):
A、B、C、D和E
兩個因素有兩個水平(變量的取值)、兩個因素有三個水平,一個因素有六個水平:
A:A1、A2
B:B1、B2
C:C1、C2、C3
D:D1、D2、D3
E:E1、E2、E3、E4、E5、E6
② 選擇正交表
表中的因素數(變量)>=5
表中至少有二個因素的水平數(變量的取值)>=2
至少有另外二個因素的水平數>=3
還至少有另外一個因素的水平數>=6
行數取最少的一個:L49(7^8)或者L18(3^6 6^1))
結果:L18(3^6 6^1)(如下圖)
③ 變量映射
A:1→A1、2→A2
B:1→B1、2→B2
C:1→C1、2→C2、3→C3
D:1→D1、2→D2、3→D3
E1、2→E2、3→E3、4→E4、5→E5、6→E6
④ 用L18(3^6 6^1)設計的測試用例
略
測試用例減少數:216→18
加上一些可疑的情況(設為n個)為18+n,它比原來也少多了。
https://wenku.baidu.com/view/c6cc7d5fb52acfc789ebc96e.html