邊界值分析法
對程序輸入或輸出的邊界值進行分析和測試,是對等價類划分法的一種補充。
邊界值的基本概念
- 開區間:介於固定的兩點間的所有點的集合(不包含給定的兩點)
記為(a,b):a<x<b 取值不包括a、b - 閉區間:介於固定的兩點間的所有點的集合 (包含給定的兩點)
記為[a,b]:a<=x<=b 取值包括a、b - 上點:就是邊界上的點,不管它是開區間還是閉區間。
就是說,如果該點是封閉的,那上點就在域范圍內,如果該點是開放的,那上點就在域范圍外 - 內點:就是在域范圍內的任意一個點 。
- 離點:就是離上點最近的一個點。
如果邊界是封閉的,那離點就是域范圍外離上點最近的點,如果邊界是開放的,那離點就是域范 圍內離上點最近的點。
邊界條件類型
邊界條件:可以在產品說明書中有定義或者在使用軟件過程中確定
隱含的邊界值:
x的n次方 x n 此處除了x和n需要測試整型的邊界值,還隱含 了x n 整個結果也必須是整數
ASCII表 隱含需求是0256或-128127
其他邊界條件:如輸入信息為空、非法、錯誤、 不正確和垃圾數據
通常情況下,軟件測試所包含的邊界檢驗有多種類型:數字、字符、尺寸、空間等。
相應地,以上類型的邊界值應該在:最大 /最小、首位/末位、最短/最長、 空/滿等情況下。
邊界值方法小結
- 輸入、輸出、判斷、循環最容易產生邊界錯誤
邊界值的選擇
如果輸入條件規定了值的范圍,則應該取剛達到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為測試輸入數據;
(例如:0-50,0、50、51、-1)
如果輸入條件規定了值的個數,則用最大個數、最小個數、 比最大個數多1個、比最小個數少1個的數做為測試數據;
(例如:運動員的參賽項目為1-3項,則0項、1項、3項、4項)
如果程序用了一個內部結構,應該選取這個內部數據結構的 邊界值作為測試用例;
分析規格說明,找出其他可能的邊界條件。
常見的邊界值
- 對16-bit 的整數而言 32767 和 -32768 是邊界
- 屏幕上光標在最左上、最右下位置
- 報表的第一行和最后一行
- 數組元素的第一個和最后一個
- 循環的第 0 次、第 1 次和倒數第 2 次、最后一次
邊界值方法小結
- 確定邊界值的方法
- 對取值范圍進行界定
- 對取值個數進行界定
- 有序集合
- 分析規格說明,找出其他邊界條件
與等價划分的區別
- 邊界值是特定明確的值,不是從某等價類中抽取一個作為代表,而是每個邊界值都要作為測試條件。
- 等價類是范圍值,從范圍中抽取一個。
- 邊界值是為了准確的測試邊界效應,等價類是為了在有限測試成本內控制測試范圍並盡可能多的覆蓋。
等價類、邊界值小結
等價類、邊界值都是以數據為中心,為用例設計、挑選數據的方法。是幾乎所有黑盒測試方法的基礎,也是工作中最常用(甚至是首要)的設計方法
由於涉及到數據類型、數據取值范圍,要深度掌握這些方法需要一定開發語言基礎