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