因果圖、判定表法
一、應用場合
在界面中有多個控件,控件之間有組合或限制關系,不同的輸入組合會對應不同的輸出結果,如果想弄清楚不同的輸入組合到底對應哪些輸出結果,可以使用因果圖/判定表法。(因果圖/判定表法比較適合測試組合數量較少的情況,一般少於20種)
二、因果圖
因(原因):輸入條件
果(結果):輸出結果
因果圖:就是通過畫圖的方式來表示輸入條件(因)和輸出結果(果)之間的關系。
三、因果圖中的圖形符號
1、基本圖形符號
表示的是因與果之間的關系
恆等
如果a=1 ,那么b=1
如果a=0,那么b=0
與
與的含義:只有所有條件都為1時,結果為1,有任何一個條件為0(或者所有條件為0)那么結果為0.
簡化:全1為1,有0為0
分析過程如下圖:
與的圖形符號:
或
或的含義:只有所有條件都為0時,結果為0,有任何1個條件為1(或者所有條件為1)時,結果為1
簡化:全0為0,有1為1
或的關系圖形符號:
非:取反
如果a=1,那么b=0
如果a=0,那么b=1
2、限制關系圖形符號
限制關系圖形要么在因(輸入條件)之間,要么在果(輸出結果)之間。
互斥(E-exclude)
含義:可以不選,如果選只能選1個
唯一(O-Only)
含義:有且只有1個(必須要選,而且只能選1個)
唯一和互斥的區別:
互斥可以不選
唯一必須要選1個
包含(I-include)
含義:至少選1個(可以多選,不能不選,最少得選1個)
要求(R-required)
含義:如果a=1 那么要求b必須是1,反之如果a=0,那么b值無所謂
屏蔽(M-masked)
含義:當a=1時,b=0
當a=0,b的值有可能是1,也有可能是0
四、測試步驟
被測程序:交通一卡通充值模擬系統
步驟1:了解需求,找出所有的輸入條件(因)
投幣50元
投幣100元
充值50元
充值100元
步驟2:找出所有的輸出結果(果)
成功充值並退卡
找零
錯誤提示並退卡
將因和果填入《判定表》中
步驟3:找出輸入條件之間的組合和限制關系。
步驟4:明確不同的輸入組合會產生怎樣的輸出結果,畫因果圖,填判定表。(在實際工作中可以只填判定表,不畫因果圖)
五、總結
1、測試步驟
步驟1:分析需求,找出所有的輸入條件
步驟2:找出所有的輸出結果
步驟3:找出輸入條件中的所有組合和限制關系
步驟4:明確每種輸入組合對應的輸出結果,填判定表,畫因果圖(熟練后,畫因果圖可以省略)
說明:
1)畫因果圖只是一種輔助工具,通過分析最終得到判定表,再通過判定表編寫測試用例。但是有時畫因果圖比較麻煩,影響測試效率,所以在應用熟練之后,可以省略畫因果圖直接填判定表,進而編寫測試用例。
2)判定表的缺點:判定表中輸入條件的限制關系不好體現。
如何解決:可以在判定表中添加備注,將限制關系寫入備注部分。
步驟5:根據判定表,編寫測試用例
每1列表示1種組合,寫1條用例
2、因果圖/判定表適合測試控件的組合情況,而且適合測試組合數量比較少的情況。常見的控件有:按鈕(按/不按),單選按鈕(選/不選),復選框(選/不選),選項較少的下拉列表等
3、判定表的特點:
1)輸入條件的順序是無關緊要的
2)輸出結果的順序是無關緊要的
3)先測哪種組合,后測哪種組合是無關緊要的
4)每種組合之間是相互獨立的
4、介紹判定表的組成項: