(转)测试用例的设计方法(全)之二 错误推断、因果图
?
測試用例的設(shè)計方法(全)之二
(3)錯誤推測方法
一.??? 方法簡介
1.???????? 定義:基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設(shè)計測試用例的方法。
2.???????? 錯誤推測方法的基本思想:
列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。
1)??????? 例如, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行。 這些都是容易發(fā)生錯誤的情況。可選擇這些情況下的例子作為測試用例。
2)??????? 例如,前面例子中成績報告的程序,采用錯誤推測法還可補(bǔ)充設(shè)計一些測試用例:
I.????????? 程序是否把空格作為回答
II.?????? 在回答記錄中混有標(biāo)準(zhǔn)答案記錄
III.???? 除了標(biāo)題記錄外,還有一些的記錄最后一個字符即不是2也不是3
IV.???? 有兩個學(xué)生的學(xué)號相同
V.??????? 試題數(shù)是負(fù)數(shù)。
3)??? 再如,測試一個對線性表(比如數(shù)組)進(jìn)行排序的程序,可推測列出以下幾項需要特別測試的情況:
I.????????? 輸入的線性表為空表;
II.?????? 表中只含有一個元素;
III.???? 輸入表中所有元素已排好序;
IV.???? 輸入表已按逆序排好;
V.??????? 輸入表中部分或全部元素相同。
二.??? 實戰(zhàn)演習(xí)
??? 暫無
?
?
因(4)因果圖方法
一.??? 方法簡介
1.定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。
2.因果圖法產(chǎn)生的背景:
等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。
如果在測試時必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個動作的形式來進(jìn)行測試用例的設(shè)計,這就需要利用因果圖(邏輯模型)。
3.因因果圖介紹
1)?4種符號分別表示了規(guī)格說明中向4種因果關(guān)系。
2)?因果圖中使用了簡單的邏輯符號,以直線聯(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. 因果圖概念
1)??? 關(guān)系
①恒等:若ci是1,則ei也是1;否則ei為0。
②非:若ci是1,則ei是0;否則ei是1。
③或:若c1或c2或c3是1,則ei是1;否則ei為0。“或”可有任意個輸入。
④與:若c1和c2都是1,則ei為1;否則ei為0。“與”也可有任意個輸入。
2)??? 約束
輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系,稱為約束。例如, 某些輸入條件本身不可能同時出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號標(biāo)明這些約束。
A.輸入條件的約束有以下4類:
?? ① E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。
?? ② I約束(或):a、b和c中至少有一個必須是1,即 a、b 和c不能同時為0。
?? ③ O約束(唯一);a和b必須有一個,且僅有1個為1。
?? ④R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。
B.輸出條件約束類型
???輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。
5.?采用因果圖法設(shè)計測試用例的步驟:
1)分析軟件規(guī)格說明描述中, 那些是原因(即輸入條件或輸入條件的等價類),那些是結(jié)果(即輸出條件), 并給每個原因和結(jié)果賦予一個標(biāo)識符。
2)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間, 原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖。
3)由于語法或環(huán)境限制, 有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況, 在因果圖上用一些記號表明約束或限制條件。
4)把因果圖轉(zhuǎn)換為判定表。
5)把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例。
二.?實戰(zhàn)演習(xí)
1.?某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。
解答:
1)?根據(jù)題意,原因和結(jié)果如下:
???????原因:
????????? 1——第一列字符是A;
????????? 2——第一列字符是B;
????????? 3——第二列字符是一數(shù)字。
?????? 結(jié)果:
????????? 21——修改文件;
????????? 22 ——給出信息L;
????????? 23——給出信息M。
2)?其對應(yīng)的因果圖如下:
11為中間節(jié)點(diǎn);考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。
3)根據(jù)因果圖建立判定表。
?
表中8種情況的左面兩列情況中,原因①和原因②同時為1,這是不可能出現(xiàn)的,故應(yīng)排除這兩種情況。表的最下一欄給出了6種情況的測試用例,這是我們所需要的數(shù)據(jù)。
2.有一個處理單價為5角錢的飲料的自動售貨機(jī)軟件測試用例的設(shè)計。其規(guī)格說明如下:若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來。若售貨機(jī)沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣。
1)?分析這一段說明,列出原因和結(jié)果
原因:
1.售貨機(jī)有零錢找
2.投入1元硬幣
3.投入5角硬幣
4.押下橙汁按鈕
5.押下啤酒按鈕
結(jié)果:
21.售貨機(jī)〖零錢找完〗燈亮???
22.退還1元硬幣
23.退還5角硬幣 ????????????
24.送出橙汁飲料
25.送出啤酒飲料
2)畫出因果圖,如圖所示。所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。建立中間結(jié)點(diǎn),表示處理的中間狀態(tài)。中間結(jié)點(diǎn):
11. 投入1元硬幣且押下飲料按鈕
?????? ???????? 12. 押下〖橙汁〗或〖啤酒〗的按鈕
?????? ???????? 13. 應(yīng)當(dāng)找5角零錢并且售貨機(jī)有零錢找
?????? ???????? 14. 錢已付清
?
3)轉(zhuǎn)換成判定表:
?
4)?在判定表中,陰影部分表示因違反約束條件的不可能出現(xiàn)的情況,刪去。第16列與第32列因什么動作也沒做,也刪去。最后可根據(jù)剩下的16列作為確定測試用例的依據(jù)。
轉(zhuǎn)載于:https://www.cnblogs.com/dadan_beijing2007/archive/2009/04/22/1441321.html
總結(jié)
以上是生活随笔為你收集整理的(转)测试用例的设计方法(全)之二 错误推断、因果图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 表面的简洁
- 下一篇: HDOJ1269(迷宫城堡)