三角形问题的复杂之处在于输入与输出之间的关系比较复杂。分析题目中给出和隐含的对输入条件的要求:
(1) 整数
(2) 三个数
(3) 非零数
(4) 正数
(5) 任意两边之和大于第三边
(6) 等腰
(7) 等边
如果a 、 b 、c 满足条件(1)~ (4),则输出下列四种情况之一:
1. 如果不满足条件(5),则程序输出为 " 非三角形 " 。
2. 如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。
3. 如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。
4. 如果三条边都不相等,则程序输出为 " 一般三角形 " 。
列出等价类表并编号,形成等价类表
输入条件 |
有效等价类 |
编码 |
无效等价类 |
编码 |
整数 |
均为整数 |
(1) |
a为非整数 |
(10) |
b为非整数 |
(11) | |||
c为非整数 |
(12) | |||
a、b为非整数 |
(13) | |||
b、c为非整数 |
(14) | |||
a、c为非整数 |
(15) | |||
a、b、c均为非整数 |
(16) | |||
三个数值 |
输入a、b、c三个数值 |
(2) |
只输入a |
(17) |
只输入b |
(18) | |||
只输入c |
(19) | |||
只输入a、b |
(20) | |||
只输入b、c |
(21) | |||
只输入a、c |
(22) | |||
输入三个以上的数 |
(23) | |||
非零数 |
都不为零 |
(3) |
a为0 |
(24) |
b为0 |
(25) | |||
c为0 |
(26) | |||
a、b为0 |
(27) | |||
b、c为0 |
(28) | |||
a、c为0 |
(29) | |||
a、b、c均为0 |
(30) | |||
正数 |
都是正数 |
(4) |
a小于0 |
(31) |
b小于0 |
(32) | |||
c小于0 |
(33) | |||
a、b小于0 |
(34) | |||
b、c小于0 |
(35) | |||
a、c小于0 |
(36) | |||
a、b、c均小于0 |
(37) | |||
两边之和大于第三边 |
a+b大于c b+c大于a c+a大于b |
(5) |
a+b小于c |
(38) |
a+b等于c |
(39) | |||
b+c小于a |
(40) | |||
b+c等于a |
(41) | |||
c+a小于b |
(42) | |||
c+a等于b |
(43) | |||
其中两边相等 |
a=b |
(6) |
|
|
b=c |
(7) |
|
| |
c=a |
(8) |
|
| |
三边都相等 |
a=b=c |
(9) |
|
|
覆盖有效等价类的测试用例:
编号 |
测试用例 |
覆盖的等价类 |
预期结果 |
a b c | |||
1 |
3 4 5 |
(1)--(5) |
|
2 |
4 4 5 |
(1)--(5),(6) |
|
3 |
4 5 5 |
(1)--(5),(7) |
|
4 |
5 4 5 |
(1)--(5),(8) |
|
5 |
4 4 4 |
(1)--(5),(9) |
|
覆盖无效等价类的测试用例:
编号 |
测试用例 |
覆盖的等价类 |
预期结果 |
a b c | |||
6 |
|
(10) |
|
7 |
|
(11) |
|
8 |
|
(12) |
|
9 |
|
(13) |
|
10 |
|
(14) |
|
11 |
|
(15) |
|
12 |
|
(16) |
|
13 |
|
(17) |
|
14 |
|
(18) |
|
15 |
|
(19) |
|
16 |
|
(20) |
|
17 |
|
(21) |
|
18 |
|
(22) |
|
19 |
|
(23) |
|
20 |
|
(24) |
|
21 |
|
(25) |
|