基于三种黑盒测试技术生成测试用例
[toc]
1. 需求与程序实现
1.1. 输入范围(从命令行输入)检查
1.1.1. 详细需求描述
a. 整数类型检测,
b. 下界小于等于上界;
c. 不正确时提示重新输入;
1.1.2. 程序设计
主要程序流程请见下图:
![](_v_images/20200321172245994_26369.png =350x)
1.1.3. 程序实现
1.2. 等价类划分技术
1.2.1. 详细需求描述
对输入范围划分,返回一个有效区间和两个无效区间
1.2.2. 程序设计
通过形参传入区间上下界,通过等价类划分法划分区间:
(1).Integer.MIN_VALUE 到输入的区间下界减11
(2).输入的区间下界到输入的区间上界
(3).输入的区间上界加一到 Integer.MAX_VALUE。
1.2.3. 程序实现
1.3. 边界值分析技术
1.3.1. 详细需求描述
对于各区间去边界值,并返回边界值,注意返回的边界值里没有重复值.
个人理解:去边界值的意思为以边界值分析
1.3.2. 程序设计
对各区间边界值一般采用-1
或+1
的方法在边界上处理,为防止值重复,设置不同的常量对-1
或+1
进行修正.
1.3.3. 程序实现
1.4. 随机值生成
1.4.1. 详细需求描述
应用随机数生成器对每个区间生成指定数量(从命令行输入)的随机值.注意返回的值里没有重复值.
1.4.2. 程序设计
- 在等价类的三个区间内调用Math.random()随机生成n 个数
必须注意的是,为了防止整数溢出,必须对区间最大值与最小值的差值使用
long
类型.
- 利用HashSet去重,利用指定的数量
n
- 最后再将这些数组打包成一个二维数组返回
1.4.3. 程序实现
2. 程序测试
2.1. 程序实现
调用功能1,2,3,4主程序如下:
2.2. 测试结果
3. 总结
基于三种黑盒测试技术生成测试用例,本作业(完整代码)使自己实践掌握了等价类/边界值分析/随机数生成三种黑盒测试技术的测试用例生成方法,也感觉到了测试用例生成的不易.并且再测试用例生成的过程中,也需要注意一些细节:
- Scanner类一次关闭后再次唤醒无用(所有的scanner类共享一个输入流2),如果需要在非main方法中调用需设置成
static
- 为避免测试用例值的重复,可以使用不同的”偏移值”以及HashSet等
- 功能模块解耦后可以大大简化代码,逻辑也更清晰
- 等价类的无效区间理论上涉及到+∞或−∞,在计算机中用参数类型能取到的最大值/最小值代替,并且需要避免它们参与运算时造成整数溢出