本文通過案例的形式,詳細講解黑盒測試用例設計技術中的邊界值分析法。
無數的測試實踐表明,大量的故障往往發生在輸入定義域或輸出值域的邊界上,而不是在其內部。因此,針對各種邊界情況設計測試用例,通常會取得很好的測試效果。
邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法,通常作為對等價類划分法的補充,其測試用例來自等價類的邊界。
邊界值分析使用與等價類划分法相同的划分,只是邊界值分析假定錯誤更多地存在於划分的邊界上,因此在等價類的邊界上以及兩側的情況設計測試用例。
如果你對等價類划分法還不了解,可先閱讀【黑盒測試用例設計技術–等價類划分法】。
對邊界值設計測試用例的原則
(1)如果輸入條件規定了值的范圍,則應取剛達到這個范圍的邊界值以及剛剛超過這個范圍邊界的值作為測試輸入數據。
(2)如果輸入條件規定了值的個數,則用最大個數、最小個數和比最大個數多1個、比最小個數少1個的數作為測試數據。
(3)根據程序規格說明的每個輸出條件,使用原則(1)。
(4)根據程序規格說明的每個輸出條件,使用原則(2)。
(5)如果程序的規格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應選取集合中的第一個和最后一個元素作為測試用例。
(6)如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值作為測試用例。
(7)分析程序規格說明,找出其它可能的邊界條件。
Example
某程序具有如下功能:文本框要求輸入日期信息,日期限定在1990年1月~2049年12月,並規定日期由6位數字字符組成,前4位表示年,后2位表示月;程序需對輸入的日期有效性進行校驗。
用等價類划分方法和邊界值分析法為該程序的“日期檢查功能”設計測試用例。
划分等價類 & 選取邊界值
步驟一、要求輸入6個數字字符yyyynn;參照等價類划分法規則5,划分為一個有效等價類和三個無效等價類。
- 有效等價類(1):輸入6個數字字符
- 無效等價類(2):輸入6個字符,存在非數字的情況
- 采用邊界值,6個字符全為非數字:abcdef
- 采用邊界值,6個字符中有1個為非數字:19930m
- 無效等價類(3):輸入少於6個數字字符
- 采用邊界值,輸入5個數字字符
- 無效等價類(4):輸入多於6個數字字符
- 采用邊界值,輸入7個數字字符
步驟二、在有效等價類(1)的基礎上,參照等價類划分法規則6,對該等價類進行細分;考察6個數是否滿足日期格式要求,1990<=yyyy<=2049,01<=nn<=12,參照規則,划分為一個有效等價類和四個無效等價類。
- 有效等價類(5):日期格式滿足要求,1990<=yyyy<=2049,01<=nn<=12
- 采用邊界值,[yyyy,nn]取值為:[1990,06],[1991,06],[2020,06],[2020,11],[2020,12]
- 無效等價類(6):yyyy不滿足要求,yyyy<1990
- 采用邊界值,[yyyy,nn]取值為:[1989,06]
- 無效等價類(7):yyyy不滿足要求,yyyy>2049
- 采用邊界值,[yyyy,nn]取值為:[2050,06]
- 無效等價類(8):nn不滿足要求,nn<01
- 采用邊界值,[yyyy,nn]取值為:[2020,00]
- 無效等價類(9):nn不滿足要求,nn>12
- 采用邊界值,[yyyy,nn]取值為:[2020,13]
設計測試用例
序號 | yyyynn | 覆蓋等價類 | 預期輸出結果 |
---|---|---|---|
– | – | 覆蓋有效等價類和邊界值 | – |
1 | 199006 | (1)(5) | 日期格式有效 |
2 | 199106 | (1)(5) | 日期格式有效 |
3 | 202006 | (1)(5) | 日期格式有效 |
4 | 202011 | (1)(5) | 日期格式有效 |
5 | 202012 | (1)(5) | 日期格式有效 |
– | – | 覆蓋無效等價類和邊界值 | – |
6 | abcdef | (2) | 日期格式無效 |
7 | 19930m | (2) | 日期格式無效 |
8 | 19935 | (3) | 日期格式無效 |
9 | 1993050 | (4) | 日期格式無效 |
10 | 198906 | (6) | 日期格式無效 |
11 | 205006 | (7) | 日期格式無效 |
12 | 202000 | (8) | 日期格式無效 |
13 | 202013 | (9) | 日期格式無效 |