【软件工程】黑盒测试——边界值分析法
实验一 黑盒测试——边界值分析法
图:封面
【开发语言及实现平台或实验环境】
开发语言:Java
实验平台:Windows10, Intellij IDEA
【实验目的】
- 认识黑盒测试方法中边界值分析测试法原理
- 掌握黑盒测试方法中边界值分析测试法过程
【实验要求】
- 要求学生能够理解黑盒测试的边界值测试方法相关概念和测试的过程、 方法。
- 理解健壮性测试的概念。
【实验原理】
对编写的实验内容,采用边界值分析黑盒测试法进行黑盒测试。
【实验材料】
三角形问题
问题描述:三角形问题接受三个整数,a、b 和 c 作为输入,用作三角
形的边。程序的输出是由这三条边确定的三角形类型:等边三角形、等腰 三角形、不等边三角形或非三角形。
作为输入:三角形的三条边必须满足如下条件: C1:1<=a<=100
C2:1<=b<=100
C3:1<=c<=100
C4:a<b+c C5:b<a+c C6:c<a+bNextDate 函数
问题描述:NextDate 是一个由三个变量(月份、日期和年份)的函数。
函数返回输入日期后边的那个日期。 作为输入:变量月份、日期和年都具有整数值,满足以下条件。
C1:1<=月份<=12
C2:1<=日期<=31
C3:1912<=年<=2050
【实验步骤】
三角形问题
1 | package procs; |
运行示例
NextDate
1 | package procs; |
运行示例
【测试用例设计及分析】
三角形问题:测试用例
我们选择最常用的弱健壮测试,设计以下设计用例:
对于三角形问题,分别需要取的(边界)值:
Var | Min | Min- | Min+ | Nom | Max- | Max | Max+ |
---|---|---|---|---|---|---|---|
a | 1 | 0 | 2 | 50 | 99 | 100 | 101 |
b | 1 | 0 | 2 | 50 | 99 | 100 | 101 |
c | 1 | 0 | 2 | 50 | 99 | 100 | 101 |
以下为弱健壮测试用例表:
对边a
测试用例编号 | a | b | c | 类型 |
---|---|---|---|---|
0 | 1 | 50 | 50 | Min |
1 | 0 | 50 | 50 | Min- |
2 | 2 | 50 | 50 | Min+ |
3 | 50 | 50 | 50 | Nom |
4 | 99 | 50 | 50 | Max- |
5 | 100 | 50 | 50 | Max |
6 | 101 | 50 | 50 | Max+ |
对边b
测试用例编号 | a | b | c | 类型 |
---|---|---|---|---|
7 | 50 | 1 | 50 | Min |
8 | 50 | 0 | 50 | Min- |
9 | 50 | 2 | 50 | Min+ |
10 | 50 | 99 | 50 | Max- |
11 | 50 | 100 | 50 | Max |
12 | 50 | 101 | 50 | Max+ |
对边c
测试用例编号 | a | b | c | 类型 |
---|---|---|---|---|
7 | 50 | 50 | 1 | Min |
8 | 50 | 50 | 0 | Min- |
9 | 50 | 50 | 2 | Min+ |
10 | 50 | 50 | 99 | Max- |
11 | 50 | 50 | 100 | Max |
12 | 50 | 50 | 101 | Max+ |
以上是对变量a,对变量b, c测试用例相同,不再重复列举。根据公式,弱健壮测试用例数为: 6*n+1,19,和上表相同。
NextDate:测试用例
对于NextDate问题,分别需要取的(边界)值
Var | Min | Min- | Min+ | Nom | Max- | Max | Max+ |
---|---|---|---|---|---|---|---|
c1(Month,月) | 1 | 0 | 2 | 6 | 11 | 12 | 13 |
c2(Day,日) | 1 | 0 | 2 | 15 | 30 | 31 | 32 |
c3(YEAR,年) | 1912 | 1911 | 1913 | 1981 | 2049 | 2050 | 2051 |
以下为弱健壮测试用例表:
对c1:
测试用例编号 | c1 | c2 | c3 | 类型 |
---|---|---|---|---|
0 | 1 | 15 | 1981 | Min |
1 | 0 | 15 | 1981 | Min- |
2 | 2 | 15 | 1981 | Min+ |
3 | 6 | 15 | 1981 | Nom |
4 | 11 | 15 | 1981 | Max- |
5 | 12 | 15 | 1981 | Max |
6 | 13 | 15 | 1981 | Max+ |
对c2:
测试用例编号 | c1 | c2 | c3 | 类型 |
---|---|---|---|---|
7 | 6 | 1 | 1981 | Min |
8 | 6 | 0 | 1981 | Min- |
9 | 6 | 2 | 1981 | Min+ |
10 | 6 | 29 | 1981 | Max- |
11 | 6 | 30 | 1981 | Max |
12 | 6 | 31 | 1981 | Max+ |
对c3
测试用例编号 | c1 | c2 | c3 | 类型 |
---|---|---|---|---|
13 | 6 | 15 | 1912 | Min |
14 | 6 | 15 | 1911 | Min- |
15 | 6 | 15 | 1913 | Min+ |
16 | 6 | 15 | 2049 | Max- |
17 | 6 | 15 | 2050 | Max |
18 | 6 | 15 | 2051 | Max+ |
根据公式,弱健壮测试用例数为: 6*n+1,该案例的测试用例数为19,符合上表。
【测试结果及分析】
在编写实验代码时,我使用的面向对象的编程方法,将输入、判断、输出都封装成了一个类TriangleProc
。因此,编写测试类时,可以更加容易地实例化对象,调用对象中的方法进行测试。并且测试的方式、顺序、组合都会更灵活。
三角形问题:使用测试类进行测试
测试代码
1 | package exps; |
输出结果
满足预期
三角形问题:手动输入测试
测试用例0:
符合预期。
测试用例1:
符合预期。
测试用例2:
符合预期。
测试用例3:
符合预期。
测试用例4:
符合预期。
测试用例5:
符合预期。
测试用例6:
符合预期。
对于三角形测试,我们主要关注于两个验证函数:验证三角形两边之和大于第三边;验证三角形边的长度范围,以长度为变量,测试边界范围的值。
NextDate: 使用测试类进行测试
测试代码
1 | package exps; |
输入结果
在上述的测试代码中,分别对Year、Month和Day进行弱健壮测试,输出的结果和测试用例设计时的预期相符:
【实验总结】
在实际编程环境中,会遇到很多边界值,因此边界值测试可以很好地检查这些易出错的点上,系统的鲁棒性。
面向对象的编程,也会更好地帮助测试,会使得测试代码的编写更容易,实现高内聚,低耦合。