更新時(shí)間:2021-11-08 來源:黑馬程序員 瀏覽量:
因果圖法是一種利用圖解法分析輸人的各種組合情況的測試方法,它考慮了輸入條件的各種組合及輸入條件之間的相互制約關(guān)系,并考慮輸出情況。例如,某一軟件要求輸人地址,具體到市區(qū),如“北京→昌平區(qū)”“天津→南開區(qū)”,其中第2個(gè)輸人受到第1個(gè)輸入的約束,輸人的地區(qū)只能在輸人的城市中選擇,否則地址就是無效的。像這樣多個(gè)輸人之間有相互制約關(guān)系,就無法使用等價(jià)類劃分法和邊界值法設(shè)計(jì)測試用例。因果圖法就是為了解決多個(gè)輸人之間的作用關(guān)系而產(chǎn)生的測試用例設(shè)計(jì)方法。
下面介紹如何使用因果圖展示多個(gè)輸人和輸出之間的關(guān)系,并且學(xué)習(xí)如何通過因果圖法設(shè)計(jì)測試用例。
因果圖需要處理輸入之間的作用關(guān)系,還要考慮輸出情況,因此它包含了復(fù)雜的邏輯關(guān)系,這些復(fù)雜的邏輯關(guān)系通堂用圖示來展現(xiàn),這些圖示就是因果圖。
因果圖使用一些簡單的邏輯符號和直線將程序的因(輸人)與果(輸出)連接起來,一般原因用ci表示,結(jié)果用ei表示,ci與ei可以取值“0”或“1”,其中“0”表示狀態(tài)不出現(xiàn),“1”表示狀態(tài)出現(xiàn)。
ci與ei,之間有恒等、非(~)、或(V)、與(A)4種關(guān)系,如圖下圖所示。
上圖中展示了因果圖的4種關(guān)系,每種關(guān)系的具體含義如下所示。
(1)恒等:在恒等關(guān)系中,要求程序有1個(gè)輸人和1個(gè)輸出,輸出與輸入保持一致。若ci為1,則ei也為1;若ci為0,則ei,也為0。
(2)非:非使用符號“~”表示,在這種關(guān)系中,要求程序有1個(gè)輸人和1個(gè)輸出,輸出是輸入的取反。若ci為1,則ei為0;若ci為0,則ei為1。
(3)或:或使用符號“∨”表示,或關(guān)系可以有任意個(gè)輸入,只要這些輸入中有一個(gè)為則輸出為1,否則輸出為0。
(4)與:與使用符號“∧”表示,與關(guān)系也可以有任意個(gè)輸入,但只有這些輸入全部為輸出才能為1,否則輸出為0。
在軟件測試中,如果程序有多個(gè)輸入,那么除了輸入與輸出之間的作用關(guān)系之外,這些輸人之間往往也會(huì)存在某些依賴關(guān)系,某些輸入條件本身不能同時(shí)出現(xiàn),某一種輸人可能會(huì)影響其他輸人。例如,某一軟件用于統(tǒng)計(jì)體檢信息,在輸人個(gè)人信息時(shí),性別只能輸入男或女,這兩種輸人不能同時(shí)存在,而且如果輸入性別為女,那么體檢項(xiàng)就會(huì)受到限制。這些依賴關(guān)系在軟件測試中稱為“約束”,約束的類別可分為4種:E(Exclusive,異)、I(at least one,或)、O(one and only one,唯一)、R(Requires,要求),在因果圖中,用特定的符號表明這些約束關(guān)系,如圖所示。
上圖展示了多個(gè)輸入之間的約束符號,這些約束關(guān)系的含義具體如下所示。
(1) E(異):a和b中最多只能有一個(gè)為1,即α和b不能同時(shí)為1。
(2) I(或):a、b和c中至少有一個(gè)必須是1,即a、b、c不能同時(shí)為0。
(3)O(唯一):a和b有且僅有一個(gè)為1。
(4) R(要求):a和b必須保持一致,即a為1時(shí),b也必須為1;a為0時(shí),b也必須為0。
上面這4種都是關(guān)于輸入條件的約束。除了輸入條件,輸出條件也會(huì)相互約束,輸出條件的約束只有一種——M(Mask,強(qiáng)制),在因果圖中,使用特定的符號表示輸出條件之間的強(qiáng)制約束關(guān)系,如下圖所示。
在輸出條件的強(qiáng)制約束關(guān)系中,如果a為1,則b強(qiáng)制為0;如果a為0,則b強(qiáng)制為1。
使用因果圖法設(shè)計(jì)測試用例需要經(jīng)過以下幾個(gè)步驟。
(1)分析程序規(guī)格說明書描述內(nèi)容,確定程序的輸入與輸出,即確定“原因”和“結(jié)果”。
(2)分析得出輸入與輸入之間、輸入與輸出之間的對應(yīng)關(guān)系,將這些輸入與輸出之間的關(guān)系使用因果圖表示出來。
(3)由于語法與環(huán)境的限制,有些輸入與輸入之間、輸入與輸出之間的組合情況是不可能出現(xiàn)的,對于這種情況,使用符號標(biāo)記它們之間的限制或約束關(guān)系。
(4)將因果圖轉(zhuǎn)換為決策表。決策表將在下一小節(jié)介紹。
(5)根據(jù)決策表設(shè)計(jì)測試用例。
因果圖法考慮了輸入情況的各種組合以及各種輸入情況之間的相互制約關(guān)系,可以幫助測試人員按照一定的步驟高效率地開發(fā)測試用例。此外,因果圖是由自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種嚴(yán)格方法,它能夠發(fā)現(xiàn)規(guī)格說明書中存在的不完整性和二義性,幫助開發(fā)人員完善產(chǎn)品的規(guī)格說明。
猜你喜歡