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