2.邊界值分析方法
大量測試實踐得出,軟件bug多發生在輸入或輸出范圍的邊界上,包括稍高及稍低於其邊界值的情況。常見的此類bug原因有,疏忽開區間閉區間、疏忽循環變量的初始值(0,1的區別)、數組越界等等。
·幾種邊界值分析法模型
一般性邊界值、健壯性邊界值、最壞邊界值、最壞健壯性邊界值。
(1) 邊界條件
如果軟件在能力達到極限時能夠運行,那么在正常情況下一般也不會有什么問題。普通邊界條件在產品說明書中有定義,或在用戶實際使用中確定,比較容易發現。
(2) 次邊界條件
有些邊界值在軟件內部,稱作內部邊界條件,要測試到這些內部邊界,要求大體了解軟件的工作方式,如2的乘方和ASCII表。
① 2的乘方:
計算機和軟件的計數基礎是二進制數,在建立等價區間時,要考慮是否需要包含2的乘方邊界條件。
例如,聯系人號碼最多支持500個字符,除考慮0,1,2和499,500,501外,還要覆蓋任何可能的2的乘方次邊界,包含臨近雙位邊界的14、15和16,以及臨近字節邊界的254、255和256。
② ASCII表
另一個常見的次邊界條件是ASCII字符表。
0~9的后面ASCII值是48~57.斜杠字符“/”在數字0的前面,而冒號字符“:”在數字9的后面。大寫字母A~Z對應65~90.小寫字母對應97~122.這些情況都代表次邊界條件。例如,聯系人的郵件地址編輯文本框只接受用戶輸入字母A~Z、a~z、0~9、“_”、“@”、“.”等字符,就應該在非法區間中包含ASCII表中這些字符前后的值包括:問號“?”、開方括號“[”、開花括號“{”、斜杠“/”、“:”脫字符“^”、開單引號“`”、減號/破折號“-”等。
(3) 設計原則
① 如果輸入條件規定了值的范圍,剛剛超越范圍邊界的值,在范圍內緊貼邊界的值;
② 如果輸入條件規定了值的個數,則用最大個數,最大個數多1,最小個數,最小個數少1的數作為測試數據;
③ 前面兩條對輸出條件同樣適用;
④ 如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個和最后一個元素作為測試數據;
⑤ 如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構邊界上的值作為測試數據。
⑥ 分析規格說明,找出其他可能的邊界條件。