1. 程式人生 > >黑盒測試設計--邊界值法

黑盒測試設計--邊界值法

附近 圖片 數組元素 p s order 最後一行 line 用戶 第四次

一.方法簡介


1.定義:

  邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,幫助從等價類中選取出更具代表性,或者容易出問題的數據進行測試,這種情況下,其測試用例來自等價類的邊界。
  邊界值分析方法的理論基礎也是基於一個假設:假定大多數的錯誤是發生在各種輸入條件的邊界上,如果在邊界附近的取值不會導致程序出錯,那麽其它的取值導致程序錯誤的可能性也很小


2.與等價劃分的區別
1)邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。
2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。


3.邊界值分析方法的考慮:
  根據長期的,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的任意值作為測試數據。


4、邊界值點的定義:
• 上點:邊界上的點,如果域的邊界是封閉的,上點就在域範圍內;如果域的邊界是開放的,上點就在域範圍外
• 離點:就是離上點最近的一個點,如果域的邊界是封閉的,離點就在域範圍外,如果域的邊界是開放的,離點就在域範圍內

• 內點:顧名思義,就是在域範圍內的任意一個點

技術分享圖片

5、邊界值分析法的使用原則
1、如果輸入(輸出)條件規定了取值範圍,或是規定了值的個數,則應該以該範圍的邊界內及邊界附近的值作為測試用例
2. 如果輸入(輸出)條件規定了值的個數的取值範圍,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試數據
3. 如果程序規格說明中提到的輸入或輸出是一個有序的集合,應該註意選取有序集合的第一個和最後一個元素作為測試用例

6.常見的邊界值例子
1)對16-bit 的整數而言 32767 和 -32768 是邊界
2)屏幕上光標在最左上、最右下位置
3)報表的第一行和最後一行

4)數組元素的第一個和最後一個
5)循環的第 0 次、第 1 次和倒數第 2 次、最後一次
6)密碼錯誤三次則鎖定賬號,邊界就是第三次輸入錯誤和第四次輸入錯誤

7、邊界值分析

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)利用邊界值作為測試數據

邊界值 測試用例設計思路
字符長度 起始-1個字符/結束+1個字符 eg:輸入框的長度為200個字節,則輸入199個字節,200個字節,201個字節
數值 最小值-1/最大值+1 eg:假設年齡的範圍是20~60,則選擇19、20、60、61作為測試數據
空間 小於空余空間一點/大於滿空間一點 eg:例如上傳圖片的大小為5M,比5M稍微大一點的,比5M稍微小一點

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

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

技術分享圖片

c)其它邊界值檢驗

8、案例:

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

技術分享圖片

黑盒測試設計--邊界值法