软件测试——边界值分析
功能测试是一种软件测试,其中系统根据系统的功能需求进行测试。执行它以确保应用程序正确满足要求。功能测试验证软件应用程序的每个函数是否符合要求和规范。边界值分析(BVA)是功能测试之一。
边界值分析
边界值分析基于测试有效和无效分区的边界值。等效分区边缘的行为比分区内的行为更可能不正确,因此边界是测试可能产生缺陷的区域。
它检查边界附近有较高出错机会的输入值。每个分区都有其最大值和最小值,这些最大值和最小值是分区的边界值。
笔记:
- 有效分区的边界值是有效边界值。
- 无效分区的边界值是无效的边界值。
- 对于每个变量,我们检查 -
- 最小值。
- 刚好高于最低。
- 面值。
- 略低于最大值。
- 最大值。
示例:考虑一个接受 18 到 56 岁的系统。
Boundary Value Analysis(Age accepts 18 to 56) | ||
---|---|---|
Invalid (min-1) | Valid (min, min + 1, nominal, max – 1, max) | Invalid (max + 1) |
17 | 18, 19, 37, 55, 56 | 57 |
有效测试用例:上述的有效测试用例可以是输入大于 17 且小于 57 的任何值。
- 输入值 - 18。
- 输入值 - 19。
- 输入值 - 37。
- 输入值 - 55。
- 输入值 - 56。
无效的测试用例:当输入任何小于 18 且大于 56 的值时。
- 输入值 - 17。
- 输入值 - 57。
单一故障假设:当检查同一应用程序的多个变量时,可以使用单一故障假设。将除一个变量外的所有变量保持在极值,并允许其余变量取极值。对于要检查的 n 变量:
Maximum of 4n+1 test cases
问题:考虑一个确定先前数据的程序。
Input: Day, Month, Year with valid ranges as-
1 ≤ Month≤12
1 ≤ Day ≤31
1900 ≤ Year ≤ 2000
设计边界值测试用例。
解决方案:将年份作为单一故障假设,即年份的值将在 1900 到 2000 之间变化,而其他年份将具有标称值。 Test Cases Month Day Year Output 1 6 15 1990 14 June 1990 2 6 15 1901 14 June 1901 3 6 15 1960 14 June 1960 4 6 15 1999 14 June 1999 5 6 15 2000 14 June 2000
将 Day 作为单一故障假设,即 Day 的值将在 1 到 31 之间变化,而其他的将具有标称值。 Test Case Month Day Year Output 6 6 1 1960 31 May 1960 7 6 2 1960 1 June 1960 8 6 30 1960 29 June 1960 9 6 31 1960 Invalid day
将月份作为单一故障假设,即月份将具有从 1 到 12 变化的值,而其他月份将具有标称值。 Test Case Month Day Year Output 10 1 15 1960 14 Jan 1960 11 2 15 1960 14 Feb 1960 12 11 15 1960 14 Nov 1960 13 12 15 1960 14 Dec 1960
对于要检查的 n 变量,最多需要 4n + 1 个测试用例。因此,对于 n = 3,最大测试用例是 -
4 × 3 + 1 =13
BVA的关注点: BVA关注函数的输入变量。让我们定义两个变量 X1 和 X2,其中 X1 位于 a 和 b 之间,X2 位于 c 和 d 之间。
BVA 背后的想法和动机是错误往往发生在变量的极端附近。边界值上的缺陷可能是无数可能性的结果。
语言类型: BVA 不适用于 COBOL 和 FORTRAN 等自由格式语言,这些语言被称为弱类型语言。这可能很有用,也可能导致错误。
PASCAL, ADA 是一种强类型语言,它需要使用关联数据类型定义的所有常量或变量。
边界值分析的局限性:
- 当产品在测试中时,它工作得很好。
- 它不能考虑变量函数依赖的性质。
- BVA 相当初级。
等价划分
它是一种黑盒测试,可以应用于所有级别的软件测试。在这种技术中,输入数据被划分为可用于派生测试用例的等效分区——
- 在此输入数据被划分为不同的等价数据类。
- 当有一定范围的输入值时应用它。
示例:下面是结合等价分区和边界值的示例。
考虑一个接受最少 6 个字符和最多 10 个字符的字段。那么测试用例的划分范围是0-5、6-10、11-14。 Test Scenario Test Description Expected Outcome 1 Enter value 0 to 5 character Not accepted 2 Enter 6 to 10 character Accepted 3 Enter 11 to 14 character Not Accepted
为什么要结合等价分区和边界分析测试:以下是结合这两种方法的一些原因:
- 在这种情况下,测试用例被简化为可管理的块。
- 测试的有效性不会在测试用例上受到影响。
- 适用于大量变量。