一、测试问题描述
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。用边界值分析法设计测试用例。用黑盒测试方法设计测试用例。
二、设计测试用例
1. 用边界值测试方法设计测试用例
用边界值分析法设计测试用例,按照下列步骤进行:
(1)分析各变量取值
边界值分析的基本思想是使用输入变量的最小值、略高于最小值、正常值、略低于最大值和最大值设计测试用例。因此a,b,c的边界取值是:1,2,100,199,200。
(2)测试用例数
有n个变量的程序,其边界值分析会产生4n+1个测试用例。这里有3个变量,因此会产生13个测试用例。
(3)设计测试用例
用边界值分析法设计测试用例就是使一个变量取边界值(分别取最小值、略高于最小值、正常值、略低于最大值和最大值),其余变量取正常值,然后对每个变量重复进行。本例用边界值分析法设计的测试用例见表1-1。
表1-1 三角形问题的测试用例
测试用例 | 输入数据 | 预期输出 | ||
a | b | c | ||
1 | 100 | 100 | 1 | 等腰三角形 |
2 | 100 | 100 | 2 | 等腰三角形 |
3 | 100 | 100 | 100 | 等边三角形 |
4 | 100 | 100 | 199 | 等腰三角形 |
5 | 100 | 100 | 200 | 非三角形 |
6 | 100 | 1 | 100 | 等腰三角形 |
7 | 100 | 2 | 100 | 等腰三角形 |
8 | 100 | 199 | 100 | 等腰三角形 |
9 | 100 | 200 | 100 | 非三角形 |
10 | 1 | 100 | 100 | 等腰三角形 |
11 | 2 | 100 | 100 | 等腰三角形 |
12 | 199 | 100 | 100 | 等腰三角形 |
13 | 200 | 100 | 100 | 非三角形 |
(1)首先分析题目中给出的条件和隐含的输入要求,输入条件如下:
a)正整数;
b)三个数;
c)构成一般三角形;
d)构成等腰三角形;
e)构成等边三角形;
f)不能构成三角形
(2)根据输入条件的要求划分等价类,列出等价类表并编号,如表1-2所示。
表1-2 三角形问题的等价类
等价类
输入条件 | 有效等 价类 | 编号 | 无效等价类 | 编号 | |
三 个 正 整 数 | 正整数 | 1 | 一边为非正整数 | a为非正整数 | 10 |
b为非正整数 | 11 | ||||
c为非正整数 | 12 | ||||
两边为非正整数 | a,b为非正整数 | 13 | |||
a,c为非正整数 | 14 | ||||
b,c为非正整数 | 15 | ||||
三边均为非正整数 | 16 | ||||
三个数 | 2 | 只输入一个数 | 只给a | 17 | |
只给b | 18 | ||||
只给c | 19 | ||||
只输入两个数 | 只给a,b | 20 | |||
只给a,c | 21 | ||||
只给b,c | 22 | ||||
未输入数 | 23 | ||||
构成一般三角形 | a + b > c, 且a≠b≠c | 3 | a + b < c | 24 | |
a + b = c | 25 | ||||
a + c > b, 且a≠b≠c | 4 | a + c < b | 26 | ||
a + c = b | 27 | ||||
b + c > a, 且a≠b≠c | 5 | b + c < a | 28 | ||
b + c = a | 29 |
构成等腰三角形 | a = b,a ≠ c,且两边之和大于第三边 | 6 | |||
a = c,a ≠ b,且两边之和大于第三边 | 7 | ||||
b = c,a ≠ b,且两边之和大于第三边 | 8 | ||||
构成等边三角形 | a = b = c | 9 |
(3) 设计测试用例,覆盖上表中的等价类,如表1-3表所示。
表1-3三角形问题的测试用例
测试用例
编号 | 输入数据 | 预期输出 | 覆盖等价类 | ||
a | b | c | |||
1 | 5 | 6 | 7 | 一般三角形 | 1,2,3, 4,5 |
2 | 6 | 6 | 5 | 等腰三角形 | 6 |
3 | 6 | 5 | 6 | 等腰三角形 | 7 |
4 | 5 | 6 | 6 | 等腰三角形 | 8 |
5 | 6 | 6 | 6 | 等边三角形 | 9 |
6 | -5 | 6 | 6 | 提示:输入不符合要求 | 10 |
7 | 6 | 0 | 6 | 提示:输入不符合要求 | 11 |
8 | 6 | 6 | 3.6 | 提示:输入不符合要求 | 12 |
9 | 0 | -5 | 6 | 提示:输入不符合要求 | 13 |
10 | 5.6 | 6 | -2 | 提示:输入不符合要求 | 14 |
11 | 6 | 0 | 3.5 | 提示:输入不符合要求 | 15 |
12 | 3.5 | 5.6 | 4.5 | 提示:输入不符合要求 | 16 |
13 | 6 | - | - | 提示:请输入数据 | 17 |
14 | - | 5 | - | 提示:请输入数据 | 18 |
15 | - | - | 5 | 提示:请输入数据 | 19 |
16 | 6 | 6 | - | 提示:请输入数据 | 20 |
17 | 6 | - | 4 | 提示:请输入数据 | 21 |
18 | - | 5 | 6 | 提示:请输入数据 | 22 |
19 | - | - | - | 提示:请输入数据 | 23 |
20 | 5 | 6 | 15 | 不能构成三角形 | 24 |
21 | 6 | 7 | 13 | 不能构成三角形 | 25 |
22 | 4 | 10 | 5 | 不能构成三角形 | 26 |
23 | 6 | 10 | 4 | 不能构成三角形 | 27 |
24 | 5 | 6 | 15 | 不能构成三角形 | 28 |
25 | 7 | 8 | 15 | 不能构成三角形 | 29 |
(1)列出所有的条件桩和动作桩
条件桩:
C1:a < b + c?
C2:b < a + c?
C3:c < a + b?
C4:a = b?
C5:a = c?
C6:b = c?
动作桩:
a1: 非三角形
a2: 不等边三角形
a3: 等腰三角形
a4: 等边三角形
a5: 不可能
(2)根据输入条件和输出的关系,填写各条规则,画出判定表,如表1-4所示。
表1-4 三角形问题的判定表
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
条件 | C1:a < b + c? | F | T | T | T | T | T | T | T | T | T | T |
C2:b < a + c? | — | F | T | T | T | T | T | T | T | T | T | |
C3:c < a + b? | — | — | F | T | T | T | T | T | T | T | T | |
C4:a = b? | — | — | — | T | T | T | T | F | F | F | F | |
C5:a = c? | — | — | — | T | T | F | F | T | T | F | F | |
C6:b = c? | — | — | — | T | F | T | F | T | F | T | F | |
动作 | a1: 非三角形 | X | X | X | ||||||||
a2: 不等边三角形 | X | |||||||||||
a3: 等腰三角形 | X | X | X | |||||||||
a4: 等边三角形 | X | |||||||||||
a5: 不可能 | X | X | X |
表1-5 三角形问题的测试用例
用例ID | a | b | c | 预期输出 |
1 | 4 | 1 | 2 | 非三角形 |
2 | 1 | 4 | 2 | 非三角形 |
3 | 1 | 2 | 4 | 非三角形 |
4 | 5 | 5 | 5 | 等边三角形 |
5 | ? | ? | ? | 不可能 |
6 | ? | ? | ? | 不可能 |
7 | 2 | 2 | 3 | 等腰三角形 |
8 | ? | ? | ? | 不可能 |
9 | 2 | 3 | 2 | 等腰三角形 |
10 | 3 | 2 | 2 | 等腰三角形 |
11 | 3 | 4 | 5 | 不等边三角形 |