目錄:
①邊界值分析法的介紹和概念
②邊界值分析法的原理和思想
③單缺陷假設和多缺陷假設
④邊界值測試數據類型
⑤內部邊界值分析
⑥各類邊界值測試介紹
⑦基於邊界值分析方法選擇測試用例的原則
⑧邊界值分析法的實例分析
1、邊界值分析法的介紹和概念
邊界值分析是一種常用的黑盒測試方法,是對等價類划分方法的補充;所謂邊界值,是指相對於輸入等價類和輸出等價類而言,稍高於其最高值或稍低於最低值的一些特定情況。邊界值分析的步驟包括確定邊界,選擇測試用例兩個步驟。
根據大量的測試統計數據,很多錯誤是發生在輸入或輸出范圍的邊界上,而不是發生在輸入/輸出范圍的中間區域。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。所以,邊界值分析法是一種很實用的黑盒測試用例方法,它具有很強的發現故障缺陷能力。
2、邊界值分析法原理和思想
2.1邊界值分析法的基本原理
錯誤更可能出現在輸入變量的極值附近。失效極少由兩個(或多個)缺陷的同時發生引起的。
2.2邊界值分析法的基本思想
選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。
表示方法:最小值min,略高於最小值min+,正常值nom,略低於最大值max-,最大值max
3、單缺陷假設和多缺陷假設
單缺陷假設是邊界值分析的關鍵假設。單缺陷假設指“失效極少是由兩個或兩個以上的缺陷同時發生引起的”。在邊界值分析中,單缺陷假設即選取測試用例時僅僅使得一個變量取極值,其他變量均取正常值。
多缺陷假設則是指“失效是由兩個或兩個以上缺陷同時作用引起的”,要求在選取測試用例時同時讓多個變量取極值。
4、邊界值測試數據類型
類型包括:數值、速度、字符、地址、位置、尺寸、數量、空間……
項 |
邊界值 |
測試用例的設計思路 |
字符 |
起始-1個字符/結束+1個字符 |
假設一個文本輸入區域允許輸入1個到255個 字符,輸入1個和255個字符作為有效等價類;輸入0個和256個字符作為無效等價類,這幾個數值都屬於邊界條件值。 |
數值 |
最小值-1/最大值+1 |
假設某軟件的數據輸入域要求輸入5位的數據值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小於5位和大於5位的 數值來作為邊界條件。 |
空間 |
小於空余空間一點/大於滿空間一點 |
例如在用U盤存儲數據時,使用比剩余磁盤空間大一點(幾KB)的文件作為邊界條件。 |
以上類型的邊界值應該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最長、 空/滿等情況下用邊界值作為測試數據
5、內部邊界值分析
在多數情況下,邊界值條件是基於應用程序的功能設計而需要考慮的因素,可以從軟件的規格說明或常識中得到,也是最終用戶可以很容易發現問題的。然而,在測試用例設計過程中,某些邊界值條件是不需要呈現給用戶的,或者說用戶是很難注意到的,但同時確實屬於檢驗范疇內的邊界條件,稱為內部邊界值條件或子邊界值條件。
內部邊界值條件主要有下面幾種:
51、數值的邊界值檢驗:計算機是基於二進制進行工作的,因此,軟件的任何數值運算都有一定的范圍限制。
項 |
范圍或值 |
位(bit) |
0 或 1 |
字節(byte) |
0 ~ 255 |
字(word) |
0~65535(單字)或 0~4294967295(雙字) |
千(K) |
1024 |
兆(M) |
1048576 |
吉(G) |
1073741824 |
5.2字符的邊界值檢驗:在計算機軟件中,字符也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。如下列出了一些常用字符對應的ASCII碼值。
字符 |
ASCII碼值 |
空 (null) |
0 |
空格 (space) |
32 |
可輸入的字符 |
33~126 |
0~9 |
48~57 |
A~Z |
65~90 |
a~z |
97~122 |
5.3其它邊界值檢驗:在不同的行業應用領域,依據硬件和軟件的標准不同而具有各自特定的邊界值。如下列出部分手機相關的邊界值
硬件設備 |
范圍或值 |
手機鋰電池電壓 |
工作電壓:3.6~4.2V; 保護電壓:2.5~3V不等 |
手機正常使用溫度 |
-25°C~+60°C |
6、邊界值測試介紹
6.1基本邊界值測試
有n個輸入變量,設計測試用例使得一個變量在數據有效區內取最大值、略小於最大值、正常值、略大於最小值和最小值。如下圖所示,兩個變量X1,X2。它們的有效取值區間分別為[c,d],[a,b]。
對於有n個輸入變量的程序,基本邊界值分析的測試用例個數為4n+1。
邊界值測試分析采用了可靠性理論的單缺陷假設。
優點:簡便易行;生成測試數據的成本很低
局限性:測試用例不充分;不能發現測試變量之間的依賴關系;不考慮含義和性質;
結論:只能作為初步測試用例使用
6.2健壯性測試
健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性考慮的主要部分是預期輸出,而不是輸入。健壯性測試是邊界值分析的一種簡單擴展。除了變量的5 個邊界分析取值還要考慮略超過最大值(max)和略小於最小值(min)時的情況。健壯性測試的最大價值在於觀察處理異常情況,它是檢測軟件系統容錯性的重要手段。如下圖所示。
PS:軟件容錯性的度量:從非法輸入中恢復;健壯性有兩層含義:容錯能力和恢復能力
對於有n個輸入變量的程序,健壯性測試的測試用例個數為6n+1。
6.3最壞情況測試
最壞情況測試拒絕單缺陷假設,它關心的是當多個變量取極值時出現的情況。最壞情況測試中,對每一個輸入變量首先進行包含最小值、略高於最小值、正常值、略低於最大值、最大值等5個元素集合的測試,然后對這些集合進行笛卡爾積計算,以生成測試用例。最壞情況測試將意味着更大工作量。如下圖所示。
對於有n個輸入變量的程序,最壞情況測試的測試用例個數為5^n。
最壞情況與基本邊界值分析的比較
- 基本邊界值分析測試用例是最壞情況測試用例的真子集
- 最壞情況測試顯然更徹底
- 最壞情況測試工作量大得多,變量函數的最壞情況測試會產生5的n次方個測試用例,邊界值分析只產生4n+1個測試用例
6.4健壯性最壞情況測試
健壯最壞情況假設對每一個變量首先進行最小值、略小於最小值的值、略高於最小值的值、正常值、最大值、略高於最大值的值、略低於最大值的值等7個元素的集合。然后對這些集合進行笛卡爾積運算,以生成測試用例。如下圖所示。
對於有n個輸入變量的程序,健壯最壞情況測試的測試用例個數為7^n。
6.5特殊值測試
- 邊界值分析假定n個變量是互相獨立的,沒有考慮這些變量之間的互相依賴關系;
- 特殊值測試使用領域知識、使用類似程序的經驗開發用例的特殊值。
- 特點:最直觀、最不一致、具有高度主觀性
- 特殊值測試特別依賴測試人員的能力
- 雖然特殊值測試是高度主觀性,但是能更有效地發現問題
例如:2月28日、2月29日
6.6隨機測試
- 隨機測試的基本思想
不是永遠選取有界變量的最小值、略高於最小值、正常值、略低於最大值和最大值,而是使用隨機數生成器選出測試用例。
- 隨機測試的一種實現方法
有界變量a≤X≤b值的一個VisualBasic應用程序生成的X,滿足下式:
X=Int(b-a+1)*Rnd+a
函數Int返回浮點數的整數部分
函數Rnd生成區間[0,1]內的隨機數
7、基於邊界值分析方法選擇測試用例的原則
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)分析規格說明,找出其它可能的邊界條件。
8、邊界值分析法實例分析
現有一個學生標准化考試批閱試卷,產生成績報告的程序。其規格說明如下:程序的輸入文件由一些有80個字符的記錄組成,如右圖所示,所有記錄分為3組:
標題:這一組只有一個記錄,其內容為輸出成績報告的名字。
試卷各題標准答案記錄:每個記錄均在第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)試題分析報告。按試題號排序,列出各題學生答對的百分比。
分別考慮輸入條件和輸出條件,以及邊界條件。給出右表所示的輸入條件及相應的測試用例。