边值分析——三角问题
边界值分析 (BVA)是一种黑盒软件测试技术,其中使用边界值设计测试用例。 BVA 基于单一故障假设,也称为关键故障假设,它指出故障很少是两个或多个同时发生的故障的产物。因此,在为 BVA 设计测试用例时,我们将除一个变量外的所有变量保持为标称值,并允许其余变量取极值。
BVA 的测试用例设计:
在首先为 BVA 设计测试用例时,我们确定问题中输入变量的数量。对于每个输入变量,我们然后确定它可以取的值的范围。然后我们确定每个输入变量的极值和标称值。
考虑一个输入变量 t 取值在 [l, r] 范围内。t 的极值是 -
t = l
t = l+1
t = r-1
t = r
变量的标称值可以是 (l, r) 范围内的任何值。
在大多数 BVA 实现中,它被视为范围 (r+l)/2 的中间值。
右图显示了二变量问题分析的边界值的名义值和极值。
在单一故障假设下,对于有 n 个输入的问题,BVA 中的测试用例总数为 4n+1。
4n 个案例对应于测试案例,每个变量的四个极值使另一个 n-1 变量保持在标称值。另一种情况是所有变量都保持在标称值。
使用 BVA 进行测试用例设计的常见问题之一是下面讨论的三角形问题-
三角形问题接受三个整数 - a, b, c 作为三角形的三个边。我们还将三角形边的范围定义为 [l, r],其中 l>0。它返回由 a、b、c 组成的三角形的类型(不等腰、等腰、等边、非三角形)。
对于 a、b、c 形成三角形,应满足以下条件——
a < b+c
b < a+c
c < a+b
如果违反这些条件中的任何一个,则输出不是三角形。
- 对于等边三角形,所有边都相等。
- 对于等腰三角形,正好有一对边相等。
- 对于不等边三角形,所有边都是不同的。
下表显示了三角形问题的测试用例设计。范围值 [l, r] 取为 [1, 100],标称值取为 50。
总的测试用例是,
4n+1 = 4*3+1 = 13
Test Case ID | a | b | c | Expected Output |
---|---|---|---|---|
T1 | 1 | 50 | 50 | Isosceles |
T2 | 2 | 50 | 50 | Isosceles |
T3 | 99 | 50 | 50 | Isosceles |
T4 | 100 | 50 | 50 | Not a Triangle |
T5 | 50 | 50 | 50 | Equilateral |
T6 | 50 | 1 | 50 | Isosceles |
T7 | 50 | 2 | 50 | Isosceles |
T8 | 50 | 99 | 50 | Isosceles |
T9 | 50 | 100 | 50 | Not a Triangle |
T10 | 50 | 50 | 1 | Isosceles |
T11 | 50 | 50 | 2 | Isosceles |
T12 | 50 | 50 | 99 | Isosceles |
T13 | 50 | 50 | 100 | Not a Triangle |