输入三个整数a、b、c分别作为三边的边长构成三角形。通过程序判定是否构成三角形以及所构成的三角形的类型,分别输出“非三角形”、“一般三角形”、“等腰三角形”或“等边三角形”。用等价类划分方法为该程序设计测试用例。
参考答案:分析题目中给出和隐含的对输入条件的要求:
①整数,②三个数,③非零数,④正数,⑤两边之和大于第三边,⑥等腰,⑦等边。
如果a、b、c满足条件①~④,则输出下列4种情况之一:
(1)如果不满足条件⑤,则程序输出为“非三角形”。
(2)如果三条边相等即满足条件⑦,则程序输出为“等边三角形”。
(3)如果只有两条边相等,即满足条件⑥,则程序输出为“等腰三角形”。
(4)如果三条边都不相等,则程序输出为“一般三角形”。
列出等价类表并编号,结果如表1所示。
根据等价类设计等价类测试用例如表2所示。 表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 等价类测试用例表 符号 [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)