測試用例設計方法之因果圖法

2021-12-27 13:09:41 字數 2325 閱讀 1539

(一) 因果圖法的**

大家熟悉的等價類劃分法和邊界值分析法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯絡、相互組合等;

但是,如考慮所輸入條件之間的相互組合,會由於組合情況數目相當大,需要大量的測試用例;

因果圖法,是一種幫助人們系統地選擇一組高效率測試用例的方法。

(二) 因果圖法的特點

考慮輸入條件間的組合關係;

考慮輸出條件對輸入條件的信賴關係,即因果關係;

測試用例發現錯誤的效率高;

能檢查出功能說明中的某些不一致或遺漏;

因果圖方法最終生產的就是判定表,它適合於檢查程式輸入條件和各種組合情況。

(三) 因果圖法基本步驟

1. 分割功能說明書

對於規模比較大的程式來說,由於輸入條件的組合數太大,所以很難整體上使用乙個因果圖。我們可以把它劃分為若干部分,然後分別對每個部分使用因果圖。例如,測試編譯程式時,可以把每個語句作為乙個部分。

2. 識別出「原因」和「結果」,並加以編號

所謂原因,是指輸入條件或輸入條件的等價類;而結果則是指輸出條件或輸出條件的等價類。每個原因或結果都對應於因果圖中的乙個節點。當原因或結果成立(或出現)時,相應的節點取值為1,否則為0。

例如,有乙個飲料自動售貨機(處理單價為5角錢)的控制處理軟體,它的軟體規格說明如下:

若投入5角錢的硬幣,按下「橙汁」或「啤酒」的按鈕,則相應的飲料就送出來。若投入1元錢的硬幣,同樣也是按「橙汁」或「啤酒」的按鈕,則自動售貨機在送出相應飲料的同時退回5角錢的硬幣。

分析這一段說明,我們可以列出原因和結果。

原因如下:

投入1元硬幣;

投入5角硬幣;

按下「橙汁」按鈕;

按下「啤酒」按鈕

結果 退還5角錢;

送出「橙汁」飲料;

送出「啤酒」飲料

3. 根據功能說明書中規定的原因和結果之間的關係畫出因果圖

因果圖的基本符號如圖1所示:

1.因果圖的基本符號

圖中左邊的節點表示原因,右邊的節點表示結果。恒等、非、或、與的含義:

恒等:若a=1,則b=1;若a=0,則b=0;

非:若a=1,則b=0,若a=0,則b=1;

或:若a=1或b=1或c=1,則d=1;若a= b= c=0,則d=0;

與:若a= b= c=1,則d=1;若a=0或b=0或c=0,則d=0。

畫因果圖時,原因在左,結果在右,由上而下排列,並根據功能說明書中規定的原因和結果之間的關係,用上述基本符號連線起來。在因果圖中還可以引入一些中間節點。

利用上面的例子,根據原因和結果,可以畫出相對應的因果圖,如下圖所示:

因果圖注意:在繪製因果圖時,需要引入一些必要的表示中間狀態的處理節點。

4. 根據功能說明在因果圖中加上約束條件

由於語法或環境限制,有些原因與原因之間、原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。因果圖的約束條件如圖所示:

其中互斥、包含、唯

一、要求時對原因的約束,遮蔽是對結果的約束。他們的含義如下:

互斥:表示不同時為1,即a,b,c中至多只有乙個1;

包含:表示至少有乙個1,即a,b,c中不同時為0;

唯一:表示a,b,c中有且僅有乙個1;

要求:表示若a=1,則b必須為1。即不可能a=1且b=0;

遮蔽:表示若a=1,則b必須為0

完善上面的因果圖,新增必要的約束條件,如原因①和原因②不能同時發生,也即1元硬幣和5角硬幣不會同時被投入到自動售貨機內;而原因③和原因④也不能同時發生,因為程式的規格說明書規定,在投入硬幣後,只能按下「橙汁」或「啤酒」的按鈕。新增約束條件的因果圖如下圖所示:

5. 根據因果圖畫出判定表

畫判定表的方法一般比較簡單,可以把所有原因作為輸入條件,每一項原因(輸入條件)安排為一行,而所有的輸入條件的組合一一列出(真值為1,假值為0),對於每一種條件組合安排為一列,並把各個條件的取值情況分別添入判定表中對應的每乙個單元格中。例如,如果因果圖中的原因有4項,那麼,判定表中的輸入條件則共有4行,而列數則為24=16。確定好輸入條件的取值之後,我們便可以很容易地根據判定表推算出各種結果的組合,也即輸出,其中也包括中間節點的狀態取值。

上述方法考慮了所有條件的所有組合情況,在輸入條件比較多的情況下,可能會產生過多的條件組合,從而導致判定表的行數太多,過於複雜。然而在實際情況中,由於這些條件之間可能會存在約束條件,所以很多條件的組合是無效的,也就是說,它們在判定表中也完全是多餘的。因此根據因果圖畫出判定表時,我們可以有意識地排除掉這些無效的條件組合,從而使判定表的列數大幅度減少。

例如,根據圖所示的因果圖,可以畫出如表所示的判定表。

6. 為判定表的每一列設計乙個測試用例

即為從因果圖中匯出的判定表中的每一列設計乙個測試用例。

場景法設計測試用例

如何使用場景法設計測試用例 由安博測試空間技術中心提供 通過運用場景來對系統的功能點或業務流程的描述,從而提高測試效果。場景法一般包含基本流和備用流,從乙個流程開始,通過描述經過的路徑來確定的過程,經過遍歷所有的基本流和備用流來完成整個場景。為什麼場景法能如此清晰的描述整個事件?因為,現在的系統基本...

測試用例設計 場景法

測試用例設計 場景法 個人見解與學習 時間 2010 11 19 目錄1 引言 3 2 基本測試 3 2.1 測試優缺點 3 2.2 黑盒功能測試分解法 3 2.3 個人簡介篇 3 3 場景法用例 4 1 什麼是場景法?4 2 場景法特點 4 3.1 基本流 6 3.2 分支流 6 3.3 驗證流 ...

測試用例設計方法培訓

等價類劃分是一種典型的黑盒測試方法。這一方法完全不考慮程式的內部結構,只依據程式的規格說明來設計測試用例。等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭示程式中的錯誤都是等效的。等價類合理地假設 某個等價類的代表值,與該等價類的其他值,對於測試來說是等價的。因此,可以把全部的輸入資料...