1. 程式人生 > >軟體測試-測試用例的經典例子

軟體測試-測試用例的經典例子

一、等價類劃分
問:某程式規定:"輸入三個整數 a、 b、 c分別作為三邊的邊長構成三角形。通過程式判定所構成的三角形的型別,當此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算 … "。用等價類劃分方法為該程式進行測試用例設計。(三角形問題的複雜之處在於輸入與輸出之間的關係比較複雜。)
解:
分析題目中給出和隱含的對輸入條件的要求: 
(1)整數
(2)三個數
(3)非零數 
(4)正數
(5)兩邊之和大於第三邊
(6)等腰
(7)等邊 
如果 a、 b 、 c滿足條件( 1 ) ~ ( 4 ),則輸出下列四種情況之一:
1)如果不滿足條件(5),則程式輸出為 " 非三角形 " 。
2)如果三條邊相等即滿足條件(7),則程式輸出為 " 等邊三角形 " 。
3)如果只有兩條邊相等、即滿足條件(6),則程式輸出為 " 等腰三角形 " 。
4)如果三條邊都不相等,則程式輸出為 " 一般三角形 " 。 
列出等價類表並編號


覆蓋有效等價類的測試用例:
a      b      c              覆蓋等價類號碼
3      4      5             (1)--(7)
4      4      5             (1)--(7),(8)
4      5      5             (1)--(7),(9)    
5      4      5             (1)--(7),(10)
4      4      4             (1)--(7),(11)
覆蓋無效等價類的測試用例:


二、邊界值分析法
NextDate函式的邊界值分析測試用例
在NextDate函式中,隱含規定了變數mouth和變數day的取值範圍為1≤mouth≤12和1≤day≤31,並設定變數year的取值範圍為1912≤year≤2050 。

測試用例 Month Day year 預期輸出
Test1 6 15 1911 1911.6.16
Test2 6 15 1912 1912.6.16
Test3 6 15 1913 1913.6.16
Test4 6 15 1975 1975.6.16
Test5 6 15 2049 2049.6.16
Test6 6 15 2050 2050.6.16
Test7 6 15 2051 2051.6.16
Test8 6 0 2001 Day超界
Test9 6 1 2001 2001.6.2
Test10 6 2 2001 2001.6.3
Test12 6 30 2001 2001.6.31
Test13 6 31 2001 2001.7.1
Test14 6 32 2001 Day超界
Test15 0 15 2001 Month超界
Test16 1 15 2001 2001.1.16
Test17 2 15 2001 2001.2.16
Test18 11 15 2001 2001.11.16
Test19 12 15 2001 2001.12.16
Test20 13 15 2001 Month超界

三、錯誤推測法
測試一個對線性表(比如陣列)進行排序的程式,可推測列出以下幾項需要特別測試的情況:

I. 輸入的線性表為空表;
II. 表中只含有一個元素;
III. 輸入表中所有元素已排好序;
IV. 輸入表已按逆序排好;
V. 輸入表中部分或全部元素相同。

四、因果圖法
有一個處理單價為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)轉換成判定表: