測試相關理解(三)—邊界值分析方法
1、邊界值分析:長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。
從整體的角度可以分為單元測試、整合測試、系統測試、確認測試。
單元測試:是針對軟體設計的最小單位—程式模組,進行正確性檢驗的測試工作。一般包括邏輯檢查、結構檢查、介面檢查、出錯處理、程式碼註釋、輸入校驗、邊界值檢查。
因此邊界值測試屬於單元測試,也屬於黑盒測試。2.與等價劃分的區別
1)邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。
2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。
3.邊界值分析方法的考慮:
長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試資料,而不是選取等價類中的典型值或任意值作為測試資料。
4.常見的邊界值
1)對
2)螢幕上游標在最左上、最右下位置
3)報表的第一行和最後一行
4)陣列元素的第一個和最後一個
5)迴圈的第 0 次、第 1 次和倒數第 2 次、最後一次
5.邊界值分析
1)邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在於劃分的邊界上,因此在等價類的邊界上以及兩側的情況設計測試用例。
例:測試計算平方根的函式
--輸入:實數
--輸出:實數
--規格說明:當輸入一個0或比0大的數的時候,返回其正平方根;當輸入一個小於0的數時,顯示錯誤資訊
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個字元 |
假設一個文字輸入區域允許輸入1個到255個 字元,輸入1個和255個字元作為有效等價類;輸入0個和256個字元作為無效等價類,這幾個數值都屬於邊界條件值。 |
數值 |
最小值-1/最大值+1 |
假設某軟體的資料輸入域要求輸入5位的資料值,可以使用10000作為最小值、99999作為最大值;然後使用剛好小於5位和大於5位的 數值來作為邊界條件。 |
空間 |
小於空餘空間一點/大於滿空間一點 |
例如在用U盤儲存資料時,使用比剩餘磁碟空間大一點(幾KB)的檔案作為邊界條件。 |
7)內部邊界值分析:
在多數情況下,邊界值條件是基於應用程式的功能設計而需要考慮的因素,可以從軟體的規格說明或常識中得到,也是終端使用者可以很容易發現問題的。然而,在測試用例設計過程中,某些邊界值條件是不需要呈現給使用者的,或者說使用者是很難注意到的,但同時確實屬於檢驗範疇內的邊界條件,稱為內部邊界值條件或子邊界值條件。
內部邊界值條件主要有下面幾種:
a)數值的邊界值檢驗:計算機是基於二進位制進行工作的,因此,軟體的任何數值運算都有一定的範圍限制。
項 |
範圍或值 |
位(bit) |
0或者1 |
位元組(byte) |
0——225 |
字(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.24、還可取一0.01及1165.26等。
再如一程式屬於情報檢索系統,要求每次"最少顯示1條、最多顯示4條情報摘要",這時我們應考慮的測試用例包括1和4,還應包括0和5等。
4)如果程式的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素作為測試用例。
5)如果程式中使用了一個內部資料結構,則應當選擇這個內部資料結構的邊界上的值作為測試用例。
6)分析規格說明,找出其它可能的邊界條件。