測試用例設計白皮書--邊界值分析方法

測試用例設計白皮書--邊界值分析方法
Author: Vince      來源:http://blog.csdn.net/vincetest
數組

 

一.方法簡介
1.定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。一般邊界值分析法是做爲對等價類劃分法的補充,這種狀況下,其測試用例來自等價類的邊界。
 

2.與等價劃分的區別
  1)邊界值分析不是從某等價類中隨便挑一個做爲表明,而是使這個等價類的每一個邊界都要做爲測試條件。
  2)邊界值分析不只考慮輸入條件,還要考慮輸出空間產生的測試狀況。
數據結構

3.邊界值分析方法的考慮:
  長期的測試工做經驗告訴咱們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。所以針對各類邊界狀況設計測試用例,能夠查出更多的錯誤。
  使用邊界值分析方法設計測試用例,首先應肯定邊界狀況。一般輸入和輸出等價類的邊界,就是應着重測試的邊界狀況。應當選取正好等於,剛剛大於或剛剛小於邊界的值做爲測試數據,而不是選取等價類中的典型值或任意值做爲測試數據。
函數

4.常見的邊界值
  1)對16-bit 的整數而言 32767 和 -32768 是邊界
  2)屏幕上光標在最左上、最右下位置
  3)報表的第一行和最後一行
  4)數組元素的第一個和最後一個
  5)循環的第 0 次、第 1 次和倒數第 2 次、最後一次
測試

5.邊界值分析
  1)邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在於劃分的邊界上,所以在等價類的邊界上以及兩側的狀況設計測試用例。
    例:測試計算平方根的函數
        --輸入:實數
        --輸出:實數
        --規格說明:當輸入一個0或比0大的數的時候,返回其正平方根;當輸入一個小於0的數時,顯示錯誤信息"平方根非法-輸入值小於0"並返回0;庫函數Print-Line能夠用來輸出錯誤信息。
       
  2)等價類劃分:
    I.能夠考慮做出以下劃分:
      a、輸入 (i)<0 和 (ii)>=0
      b、輸出 (a)>=0 和 (b) Error
    II.測試用例有兩個:
      a、輸入4,輸出2。對應於 (ii) 和 (a) 。
      b、輸入-10,輸出0和錯誤提示。對應於 (i) 和 (b) 。
編碼

  3)邊界值分析:
    劃分(ii)的邊界爲0和最大正實數;劃分(i)的邊界爲最小負實數和0。由此獲得如下測試用例:
    a、輸入 {最小負實數}
    b、輸入 {絕對值很小的負數}
    c、輸入 0
    d、輸入 {絕對值很小的正數}
    e、輸入 {最大正實數}
   
  4)一般狀況下,軟件測試所包含的邊界檢驗有幾種類型:數字、字符、位置、重量、大小、速度、方位、尺寸、空間等。
  5)相應地,以上類型的邊界值應該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、  最短/最長、 空/滿等狀況下。
  6)利用邊界值做爲測試數據
spa

 
邊界值
測試用例的設計思路
字符
起始-1個字符/結束+1個字符
假設一個文本輸入區域容許輸入1個到255個 字符,輸入1個和255個字符做爲有效等價類;輸入0個和256個字符做爲無效等價類,這幾個數值都屬於邊界條件值。
數值
最小值-1/最大值+1
假設某軟件的數據輸入域要求輸入5位的數據值,可使用10000做爲最小值、99999做爲最大值;而後使用恰好小於5位和大於5位的 數值來做爲邊界條件。
空間
小於空餘空間一點/大於滿空間一點
例如在用U盤存儲數據時,使用比剩餘磁盤空間大一點(幾KB)的文件做爲邊界條件。


  7)內部邊界值分析:
    在多數狀況下,邊界值條件是基於應用程序的功能設計而須要考慮的因素,能夠從軟件的規格說明或常識中獲得,也是最終用戶能夠很容易發現問題的。然而,在測試用例設計過程當中,某些邊界值條件是不須要呈現給用戶的,或者說用戶是很難注意到的,但同時確實屬於檢驗範疇內的邊界條件,稱爲內部邊界值條件或子邊界值條件。
    內部邊界值條件主要有下面幾種:
    a)數值的邊界值檢驗:計算機是基於二進制進行工做的,所以,軟件的任何數值運算都有必定的範圍限制。.net

 

範圍或值
位(bit)
0 或 1
字節(byte)
0 ~ 255
字(word)
0~65535(單字)或 0~4294967295(雙字)
千(K)
1024
兆(M)
1048576
吉(G)
1073741824

    b)字符的邊界值檢驗:在計算機軟件中,字符也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。下表中列出了一些經常使用字符對應的ASCII碼值。設計

 

字符
ASCII 碼值
字符
ASCII 碼值
空 (null)
0
A
65
空格 (space)
32
a
97
斜槓 ( / )
47
Z
90
0
48
z
122
冒號 ( : )
58
單引號 ( ‘ )
96
@
64
 
 


    c)其它邊界值檢驗
   
6.基於邊界值分析方法選擇測試用例的原則
  1)若是輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值做爲測試輸入數據。
    例如,若是程序的規格說明中規定:"重量在10公斤至50公斤範圍內的郵件,其郵費計算公式爲……"。做爲測試用例,咱們應取10及50,還應取10.01,49.99,9.99及50.01等。
  2)若是輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數做爲測試數據。
    好比,一個輸入文件應包括1~255個記錄,則測試用例可取1和255,還應取0及256等。
  3)將規則1)和2)應用於輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。
    例如,某程序的規格說明要求計算出"每個月保險金扣除額爲0至1165.25元",其測試用例可取0.00及1165.2四、還可取一0.01及1165.26等。
    再如一程序屬於情報檢索系統,要求每次"最少顯示1條、最多顯示4條情報摘要",這時咱們應考慮的測試用例包括1和4,還應包括0和5等。
  4)若是程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素做爲測試用例。
  5)若是程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值做爲測試用例。
  6)分析規格說明,找出其它可能的邊界條件。code

二.實戰演習
1.現有一個學生標準化考試批閱試卷,產生成績報告的程序。其規格說明以下:程序的輸入文件由一些有80個字符的記錄組成,如右圖所示,全部記錄分爲3組:
blog

 

 


  ①標題:這一組只有一個記錄,其內容爲輸出成績報告的名字。
  ②試卷各題標準答案記錄:每一個記錄均在第80個字符處標以數字"2"。該組的第一個記錄的第1至第3個字符爲題目編號(取值爲1一999)。第10至第59個字符給出第1至第50題的答案(每一個合法字符表示一個答案)。該組的第2,第3……個記錄相應爲第51至第100,第101至第150,…題的答案。
  ③每一個學生的答卷描述:該組中每一個記錄的第80個字符均爲數字"3"。每一個學生的答卷在若干個記錄中給出。如甲的首記錄第1至第9字符給出學生姓名及學號,第10至第59字符列出的是甲所作的第1至第50題的答案。若試題數超過50,則第2,第3……紀錄分別給出他的第51至第100,第101至第150……題的解答。而後是學生乙的答卷記錄。
  ④學生人數不超過200,試題數不超過999。
  ⑤程序的輸出有4個報告:
    a)按學號排列的成績單,列出每一個學生的成績、名次。
    b)按學生成績排序的成績單。
    c)平均分數及標準誤差的報告。
    d)試題分析報告。按試題號排序,列出各題學生答對的百分比。
  解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應的測試用例。

 
  輸出條件及相應的測試用例表。

 
 
2.三角形問題的邊界值分析測試用例
在三角形問題描述中,除了要求邊長是整數外,沒有給出其它的限制條件。在此,咱們將三角形每邊邊長的取範圍值設值爲[1, 100] 。
 

測試用例
a
b
c
預期輸出
Test1
Test2
Test3
Test4
Test5
60
60
60
50
50
60
60
60
50
50
1
2
60
99
100
等腰三角形
等腰三角形
等邊三角形
等腰三角形
非三角形
Test6
Test7
Test8
Test9
60
60
50
50
1
2
99
100
60
60
50
50
等腰三角形
等腰三角形
等腰三角形
非三角形
Test10
Test11
Test12
Test13
1
2
99
100
60
60
50
50
60
60
50
50
等腰三角形
等腰三角形
等腰三角形
非三角形

 


  
 

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

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

 

相關文章:

  1、測試用例設計白皮書--測試用例基本概念

  2、測試用例設計白皮書--等價類劃分方法

  3、測試用例設計白皮書--邊界值分析方法

  4、測試用例設計白皮書--錯誤推測方法

  5、測試用例設計白皮書--因果圖方法

  6、測試用例設計白皮書--斷定表驅動分析方法

  7、測試用例設計白皮書--正交實驗設計方法

  8、測試用例設計白皮書--功能圖分析方法

  9、測試用例設計白皮書--場景設計方發

  10、測試用例設計白皮書--測試用例設計綜合策略

歡迎轉載此文,轉載時請註明文章來源:文斯測試技術研究中心 http://blog.csdn.net/vincetest