郝愛語
摘要:因果圖分析法是編寫測(cè)試用例的重要方法之一,屬于黑盒測(cè)試的范疇。因果圖分析法原理簡單,步驟明確,應(yīng)用廣泛。但目前諸多參考教材對(duì)于該方法的介紹基本都采用了相對(duì)復(fù)雜而且相類似的實(shí)例,對(duì)學(xué)習(xí)者來說有一定的困難。結(jié)合多年軟件測(cè)試用例設(shè)計(jì)的經(jīng)驗(yàn),在實(shí)踐的前提下,就因果圖分析法設(shè)計(jì)測(cè)試用例給出了詳盡的介紹,特別是針對(duì)因果圖轉(zhuǎn)換成判定表這一步驟,提出了明確簡潔的轉(zhuǎn)換辦法并結(jié)合淺顯易懂的實(shí)例加以實(shí)現(xiàn),從而進(jìn)一步簡化了因果圖分析法的應(yīng)用,也為廣大學(xué)習(xí)者提供了一定的參考價(jià)值。
關(guān)鍵詞:黑盒測(cè)試;測(cè)試用例;因果圖;判定表
中圖分類號(hào):X928.3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3198(2009)23-0217-02
1引言
隨著軟件質(zhì)量受重視程度的日益增加,軟件測(cè)試在國內(nèi)軟件項(xiàng)目開發(fā)中也越來越受重視,并得以迅速發(fā)展,而測(cè)試用例是軟件測(cè)試全部過程的核心,是測(cè)試執(zhí)行環(huán)節(jié)的基本依據(jù)。因果圖分析法是設(shè)計(jì)測(cè)試用例的重要方法之一,它屬于黑盒測(cè)試的范疇。因果圖分析法原理簡單,步驟明確,但由于目前諸多參考教材對(duì)于該方法的介紹基本都采用了相對(duì)復(fù)雜實(shí)例,特別當(dāng)把因果圖轉(zhuǎn)換成判定表這一步驟,目前還沒有提出過明確性的方法,所有的實(shí)例都是直接給出答案,而沒有解釋方法,這樣就給學(xué)習(xí)者在理解上造成一定的困難,本文在教學(xué)實(shí)踐前提下,就因果圖如何轉(zhuǎn)換為判定表提出了一種簡易可行的方法,并結(jié)合實(shí)例加以實(shí)現(xiàn)。
2方法介紹
2.1因果圖定義
因果圖(cause effect graphics)是一種形式化語言,是一種組合邏輯網(wǎng)絡(luò)圖。它是把輸入條件視為“因”,把輸出或程序狀態(tài)的改變視為“果”,將黑盒看成是從因到果的網(wǎng)絡(luò)圖,采用邏輯圖的形式來表達(dá)功能說明書中輸入條件的各種組合與輸出的關(guān)系。因果圖法的基本原理是通過因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,然后為判定表的每一列設(shè)計(jì)一個(gè)測(cè)試用例。
2.2產(chǎn)生背景
等價(jià)類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯(cuò)的情況已經(jīng)測(cè)試到了,但多個(gè)輸入條件組合起來可能出錯(cuò)的情況卻被忽視了。如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來進(jìn)行測(cè)試用例的設(shè)計(jì),這就需要利用因果圖。因果圖法是一種幫助人們系統(tǒng)地選擇一組高效率測(cè)試用例的方法。
2.3因果圖基本符號(hào)和條件約束
(1)4種符號(hào)分別表示了規(guī)格說明中4種因果關(guān)系,如圖所示:
①恒等:若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。
圖1
(2)因果圖中使用了簡單的邏輯符號(hào),以直線聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。
(3)Ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。Ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。
(4)約束:是指輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系。例如,某些輸入條件本身不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號(hào)標(biāo)明這些約束。
輸入條件的約束有以下4類:
①E約束(異):a和b中至多有一個(gè)可能為1,即a和b不能同時(shí)為1。
②I約束(或):a、b和c中至少有一個(gè)必須是1,即a、b和c不能同時(shí)為0。
③O約束(唯一):a和b必須有一個(gè),且僅有1個(gè)為1。
④R約束(要求):a是1時(shí),b必須是1,即不可能a是1時(shí)b是0。
輸出條件約束類型:只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。
2.4利用因果圖生成測(cè)試用例的基本步驟(如圖2)
圖2
(1)分析軟件規(guī)格說明描述中,哪些是原因(即輸入條件或輸入條件的等級(jí)類),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。
(2)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對(duì)應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖。
(3)由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況,在因果圖上用一些記號(hào)表明約束或限制條件(可略)。
(4)把因果圖轉(zhuǎn)換為判定表。(重點(diǎn)改進(jìn)之處)
按照由上至下,從左往右的順序依次轉(zhuǎn)換各關(guān)系,具體方法如下:
①恒等:原因?yàn)檎?1)|結(jié)果為真(1),原因?yàn)榧?0)|結(jié)果為假(0);
②非:原因?yàn)檎?1)|結(jié)果為假(0)|原因?yàn)榧?0),結(jié)果為真(1);
③或(∨):原因分別取真一次,結(jié)果為真;
④與(∧):原因同時(shí)取真一次,結(jié)果為真。
(5)把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測(cè)試用例(測(cè)試用例在判定表中)。
3因果圖實(shí)例推導(dǎo)
某軟件規(guī)格說明書包含“訂貨單處理程序”的處理邏輯描述為:如果訂貨金額不足500元且未過期,則向顧客發(fā)出批準(zhǔn)單和提貨單,已過期的什么通知也不發(fā);如果訂貨金額超過500但不足1000,則發(fā)出批準(zhǔn)單和提貨單,對(duì)已經(jīng)過期的發(fā)過期通知單;如果訂貨金額超過1000,不論是否過期,都要發(fā)出批準(zhǔn)單和提貨單。
第一步:對(duì)說明進(jìn)行分析,得到原因和結(jié)果:
原因:1——訂貨金額不足500;
2——訂貨金額超過500但不足1000;
3——訂貨金額超過1000;
4——已過期;
5——未過期。
結(jié)果:21——發(fā)批準(zhǔn)單和提貨單;
22——發(fā)過期通知單;
23——什么通知也不發(fā)。
第二步:畫出因果圖。
畫因果圖時(shí),原因在左,結(jié)果在右,由上而下排列,并根據(jù)功能說明書中規(guī)定的原因和結(jié)果之間的關(guān)系,用上述基本符號(hào)連接起來。在因果圖中還可以引入一些中間節(jié)點(diǎn)。
圖3
將原因和結(jié)果用因果圖的邏輯符號(hào)連接起來,其中編號(hào)為11的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因。
第三步:轉(zhuǎn)換成判定表。
判定表(DecisionTable)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況下的工具。判定表通常由四部分組成:
(1)條件樁(ConditionStub):列出了問題的所有條件。
(2)動(dòng)作樁(ActionStub):列出了問題規(guī)定可能采取的操作。
(3)條件項(xiàng)(ConditionEntry):列出針對(duì)它左列條件的取值。
(4)動(dòng)作項(xiàng)(ActionEntry):列出了在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。
表1判定表(由上至下,從左往右排序號(hào);設(shè)訂貨金額為W)
4結(jié)語
通過以上介紹,可以得到一個(gè)快捷而簡單的利用因果圖設(shè)計(jì)測(cè)試用例的辦法,尤其在將因果圖轉(zhuǎn)換成判定表時(shí),已經(jīng)變得有章可循,實(shí)際上這個(gè)辦法是通用的,對(duì)于所有的實(shí)例都是可以實(shí)現(xiàn)的,學(xué)習(xí)者可以嘗試。
參考文獻(xiàn)
[1]@徐芳.軟件測(cè)試技術(shù)[M].北京:機(jī)械工業(yè)出版社,2007.
[2]@朱少民.全程軟件測(cè)試[M].北京:電子工業(yè)出版社,2007.