【正确答案】分析题目中给出和隐含的对输入条件的要求:
①整数,②三个数,③非零数,④正数,⑤两边之和大于第三边,⑥等腰,⑦等边。
如果a、b、c满足条件①~④,则输出下列4种情况之一:
(1)如果不满足条件⑤,则程序输出为“非三角形”。
(2)如果三条边相等即满足条件⑦,则程序输出为“等边三角形”。
(3)如果只有两条边相等,即满足条件⑥,则程序输出为“等腰三角形”。
(4)如果三条边都不相等,则程序输出为“一般三角形”。
列出等价类表并编号,结果如表1所示。
表1 等价类表
|
输入条件 | 有效等价类 | 无效等价类 |
是否是三角形的三条边 | A>0 (1) | A≤0 (7) |
B>0 (2) | B≤0 (8) |
C>0 (3) | C≤0 (9) |
A+B>C (4) | A+B≤C (10) |
A+C>B (5) | A+C≤B (11) |
B+C>A (6) | B+C≤A (12) |
是否是等腰三角形 | A=B (13) | A≠B AND A≠B AND B≠C (16) |
B=C (14) |
C=A (15) |
是否是等边三角形 | A=B AND A=C AND B=C (17) | A≠B (18) |
A≠B (19) |
A≠B (20) |
根据等价类设计等价类测试用例如表2所示。
表2 等价类测试用例表
|
符号 | [ABC] | 覆盖等价类 | 输出 |
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)、(18) | 非等边三角形 |
14 | [3、4、3] | (1)、(2)、(3)、(4)、(5)、 (6)、(19) |
15 | [3、3、4] | (1)、(2)、(3)、(4)、(5)、 (6)、(20) |