一、实验名称:
黑盒测试
二、实验目的:
目的:
了解黑盒测试的概念、目标和方法,掌握使用边界值分析和等价类测试进行黑盒测试。
三、实验内容:
实验内容:
编写三角形分类程序并进行测试。该程序的功能是,读入代表三角形边长的3个整数,判定它们能否组成三角形。如果能组成三角形,则输出三角形是等边、等腰或任意三角形的分类信息。
1、用黑盒方法设计测试用例(包括边界值分析法和等价类划分法)
2、画出该程序的流程图和控制流图。
3、输入测试用例进行测试
四、实验步骤:
1.黑盒测试设计用例
(1)等价类划分法以及设置边界值
根据问题,现在要求输入三个整数 a、b、c,我们使得满足以下基本条件:
条件1. 1≤a≤100 条件2. 1≤b≤100 条件3. 1≤c≤100
条件4. a<b+ c 条件5. b<a+ c 条件6. c<a+ b
那么,如果输入值 a、b、c 不满足条件 1、条件 2 和条件 3 ,程序给出“边的取值超出”的信息。
如果输入值 a、b、c 满足条件 1、条件 2和条件3,则输出下列四种情况之一:
①如果不满足条件4、条件5和条件6中的一个,则程序输出为“非三角形”。
②如果三条边相等,则程序输出为“等边三角形”。
③如果恰好有两条边相等,则程序输出为“等腰三角形”。
④如果三条边都不相等,则程序输出为“普通三角形”。
A.根据以上情况进行等价类划分,分为有效等价类和无效等价类。
输入条件 | 有效等价类 | 无效等价类 |
是否满足三角形的3条边 | 100≥a>≥1 (1) 100≥b≥1 (2) 100≥c≥1 (3) a+b>c (4) b+c>a (5) a+c>b (6) | a<1 (7) a>100(21) b<1 (8) b>100(22) c<1 (9) c>100(23) a+b≤c (10) b+c≤a (11) a+c≤b (12) |
是否为等腰三角形 | a=b (13) b=c (14) a=c (15) | a≠b and b≠c and c≠a (16) |
是否为等边三角形 | a=b and b=c and a=c (17) | a≠b (18) b≠c (19) c≠a (20) |
B.设计测试用例(有效等价类填充为橙色)
a.在设计一个测试用例的时候要尽可能多的满足有效等价类。eg:1
b.而对于无效等价类,设计一个新的测试用例使其仅覆盖一个尚未被覆盖的无效等价类。eg:2-7
c.除了满足(1)-(6)的基本三角形的条件外,每一个测试用例覆盖一个有效等价类,因为不能同时满足,否则变为等边三角形eg:8-10,无效测试同理只覆盖一个无效等价类eg:11。
d.等边三角形只有一个条件,直接一条用例即可eg:12。无效的三个无效等价类即设计三个测试用例eg:13-15。
e.同b
用例编号 | a b c | 覆盖等价类 | 预期输出 |
1 | 3,4,5 | (1)(2)(3)(4)(5)(6) | 一般三角形 |
2 | 0,1,2 | (7) | 不能构成三角形 |
3 | 1,0,2 | (8) | |
4 | 1,2,0 | (9) | |
5 | 1,2,3 | (10) | |
6 | 1,3,2 | (11) | |
7 | 3,1,2 | (12) | |
8 | 3,3,4 | (1)(2)(3)(4)(5)(6)(13) | 等腰三角形 |
9 | 3,4,4 | (1)(2)(3)(4)(5)(6)(14) | |
10 | 3,4,3 | (1)(2)(3)(4)(5)(6)(15) | |
11 | 3,4,5 | (1)(2)(3)(4)(5)(6)(16) | 非等腰三角形 |
12 | 3,3,3 | (1)(2)(3)(4)(5)(6)(17) | 等边三角形 |
13 | 3,4,4 | (1)(2)(3)(4)(5)(6)(14)(18) | 非等边三角形 |
14 | 3,4,3 | (1)(2)(3)(4)(5)(6)(15)(19) | |
15 | 3,3,4 | (1)(2)(3)(4)(5)(6)(13)(20) | |
16 | 101,1,2 | (21) | 越界 |
17 | 1,2,101 | (22) | 越界 |
18 | 1,101,2 | (23) | 越界 |
(2)边界值分析法
①分析各变量取值
仅考虑有效区间单个变量边界值(一般边界值):用最小值、略高于最小值、正常值、略低于最大值和最大值。即abc的边界值为1 2 50 99 100
②测试用例数
有n个变量的程序,其边界值分析会产生4n+1个测试用例。这里有3个变量,因此会产生13个测试用例。
③设计测试用例
用边界值分析法设计测试用例就是使一个变量取边界值,其余变量取正常值,然后对每个变量重复进行。边界值分析法设计的测试用例见下表
用例编号 | a b c | 测试边界 | 预期输出 |
1 | 1,50,50 | 对a边界进行测试 | 等腰三角形 |
2 | 2,50,50 | 等腰三角形 | |
3 | 50,50,50 | 等边三角形 | |
4 | 99,50,50 | 一般三角形 | |
5 | 100,50,50 | 等腰三角形 | |
6 | 50,1,50 | 对b边界进行测试 | 等腰三角形 |
7 | 50,2,50 | 等腰三角形 | |
8 | 50,99,50 | 等腰三角形 | |
9 | 50,100,50 | 不成三角形 | |
10 | 50,50,1 | 对c边界进行测试 | 等腰三角形 |
11 | 50,50,2 | 等腰三角形 | |
12 | 50,50,99 | 等腰三角形 | |
13 | 50,50,100 | 不成三角形 |
2.绘图
(1)程序流程图如下
(2)程序控制流图
3.用例测试
(1)等价类测试
测试用例1-15
测试用例16-18
(2)边界值测试
测试用例1-13
五、实验总结:
- 总结:黑盒测试技术是我们常用的软件测试的方法,在测试中我们需要将边界值测试,等价类测试等联合起来使用。任何一款软件都不可能做到完全测试,我们只是尽可能的将方法结合使用,减少软件的缺陷,已便用户更好的体验
- 问题:开始划分等价类的时候忘记边界值的问题,没有将边界值考虑进去,使得测试用例没有尽可能的覆盖。其次在进行边界值分析的时候,有以下两条原则:(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。(2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。纠结应该用哪一个比较合适,最后选择回归到题目发现是整数,选择第二条较为合适,没有仔细辨别题目浪费了时间。最后发现自己基础知识有待提高,对待问题存在一知半解。
- 改进措施:对于黑盒测试,要尽可能考虑出每一种情况,所选的用例尽可能的覆盖到每一个类,最后加强专业知识的一个提高,近期因为网课存在对学习懈怠的情况,要杜绝此类问题。