上篇文章(ISO 26262中測試用例的得出方法-邊界值分析)我們介紹了等價類方法和邊界值方法,這兩種方法廣泛應用并適用于各種類型測試的設計中,本章開始我們介紹黑盒測試常用的其他方法,先從因果圖法開始。
01
開始之前
前兩篇(等價類的生成和分析、邊界值分析)介紹的等價類和邊界值法通常只分析單個輸入條件本身,不會涉及多個條件的組合,特別是不會考慮各輸入條件相互之間的邏輯制約關系。如果在測試設計時需要考慮多個輸入條件之間的組合,以及配合輸入條件的多個觸發動作,以得出不同邏輯制約情況下的不同結果,在這種復雜情況下測試設計通常會選用因果圖法。
因果圖法會對需求進行內在邏輯上的深入分析,但對于分析結果的測試用例生成,不能很直觀的對測試設計人員給以體現,需要使用判定表結合起來做測試用例的設計。
02
因果圖法的常用概念
2.1 因果圖法的測試設計步驟
使用因果圖法進行測試分析時,通常都是遇到需求說明中邏輯關系復雜的情況,使用因果圖法分析的步驟通常如下:
1. 對需求進行梳理,劃分出原因及輸入條件,處理過程如何進行即中間狀態或執行動作,得出的結果即輸出條件。
2. 將上個步驟分析出的所有輸入條件,中間狀態或執行動作,輸出條件通過連線連接起來,形成“因果圖”。
3. 使用因果圖法的標準符號,在上個步驟的“因果圖”上標明從原因到結果間的邏輯約束關系,這些符號也標明了原因結果的條件組合關系在某些情況下是不會發生的。
4. 使用判定表將因果圖的每個組合逐個列出來。
5. 使用判定表法將表中每一列組合設計成一條測試用例。
2.2 因果圖法的標記符號
繪制因果圖時會使用統一的標記符號,以及標識方法。通常使用C表示原因及輸入條件,用E表示結果即輸出條件,各節點狀態用0表示不出現,用1表示出現。
原因結果關系的基本標識
原因和結果關系的基本標識有以下4種:
1. 恒等關系,表示原因C1出現時,則結果E1出現,原因C1不出現時,則結果E1不出現。
2. 非關系,表示原因C1出現時,則結果E1不出現,原因C1不出現時,則結果E1出現。
3. 或關系,表示多個原因C1、C2、C3等至少有一個出現時,結果E1出現,C1、C2、C3全部不出現時,結果E1不出現。
4. 與關系,表示多個原因C1、C2、C3等全部出現時,結果E1才會出現,C1、C2、C3只要有一個不出現時,結果E1就不出現。
條件間的邏輯關系標識
輸入和輸入,輸出和輸出間的邏輯約束關系分為5種:
1. 條件間的互斥關系,用“E”標識,表示條件C1、C2間邏輯互斥,不會同時成立,兩個條件最多有1個成立。
2. 條件間的包含關系,用“I”標識,表示多個條件C1、C2等中,必定至少有一條成立,沒有全部條件都不成立的情況。
3. 條件間的唯一關系,用“O”標識,表示多個條件C1、C2中有且僅有一條會成立,不會有全部不成立或者超過1條以上成立的情況。
4. 條件間的要求關系,用“R”標識,表示條件C1成立時,條件C2必須也成立。
5. 條件間的屏蔽關系,用“M”標識,屏蔽關系通常適用于結果輸出條件間的特定邏輯約束,表示條件E1為真時,E2必須是假;E1為假時,E2值不確定而不一定是真。
03
因果圖法的示例
本篇我們繼續使用空調的案例在原邏輯的基礎上稍作改動進行分析。
需求規格說明要求,在車內溫度超過25攝氏度時,打開空調按鈕,發動機啟動情況下,此時風扇啟動吹冷風,空調壓縮機啟動;發動機未啟動時僅打開風扇。在車內溫度低于15攝氏度時,打開空調按鈕,無論發動機是否啟動,此時風扇啟動吹熱風,空調壓縮機不啟動。溫度在15攝氏度至25攝氏度之間時,打開空調按鈕,無論發動機是否啟動,此時僅啟動風扇,空調壓縮機不啟動。
分析上段的需求說明我們可以得出:測試中原始的輸入觸發條件為不同情況下的溫度,加上中間節點發動機的啟動狀態和空調按鈕狀態,綜合判斷得出的不同輸出結果為風扇和壓縮機的組合狀態情況。
繪制因果圖
根據需求分析,我們將最原始的輸入觸發條件的溫度分為3個初始輸入條件,實際觸發溫度有且只有1個,所以初始的3個輸入條件的關系為唯一關系。在過程的中間節點,會因為發動起啟動狀態和空調按鈕開啟狀態,綜合溫度情況,最終影響決定輸出結果的情況。
如輸入條件C1車內溫度大于等于25攝氏度為真時,C2、C3不能成立,中間狀態的發動起狀態和空調按鈕狀態兩個條件的組合對結果的影響為或的關系,結合輸入條件C1,我們分析得知,在C1為真時,如果發動機啟動為真,空調按鈕為假,則結果輸出風扇關閉,壓縮機關閉;如果發動機啟動為假,空調按鈕為真,則結果輸出風扇啟動,壓縮機關閉;如果發動機啟動為真,空調按鈕為真,則結果輸出風扇啟動,壓縮機啟動;如果發動機啟動為假,空調按鈕為假,則結果輸出風扇關閉,壓縮機關閉。其他情況我們根據需求說明類推。
根據分析畫出因果圖如下:
生成判定表
分析畫出的因果圖對邏輯的理解有很大幫助,但是直接對照因果圖設計測試用例則不是友好。通常會使用判定表來協助設計用例,避免測試用例設計遺漏。
如下圖根據因果圖得出判定表:
使用判定表我們就可以避免在不同輸入條件組合時發生場景設計遺漏的情況。本實例中我們可以得出12條不同情況下的測試用例。
04
測試小結
在使用因果圖法時有如下建議:
1. 因果圖法在需求中輸入和輸出以及中間過程有復雜邏輯約束關系時使用,可以通過因果圖輕松梳理整個過程。
2. 在必要時使用因果圖法,相對前兩篇的等價類和邊界值法,因果圖法的復雜程度大大增加,推薦在必要時使用因果圖法。
3. 因果圖法必須搭配判定表使用。
參考文獻:
1. 全國計算機技術與軟件專業技術資格考試指定用書 – 軟件評測師教程.
審核編輯 黃宇
-
測試
+關注
關注
8文章
5315瀏覽量
126712 -
因果圖
+關注
關注
0文章
3瀏覽量
5309
發布評論請先 登錄
相關推薦
評論