一:三角形问题(等价类划分法)
例:输入三个整数为三角形的三条边的长度值,程序打印输出这个三角形为不等边的,等腰的,或是等边三角形。
分析:
设三边分别为A,B,C,如能构成三角形的三边,须:
●A>O,B>0,C>0,且A+B>C,B+C>A,A+C>B;
●如是等腰三角形,则要判断A=B||A=C;
●如是等边三角形,须判断是否A=B,且B=C,且A=C;
由此可得三角形等价类设计表:
输入条件 | 有效等价类 | 无效等价类 |
是否为三角形的三边 | A>0 (1) B>0 (2) C>0 (3) A+B>C (4) B+C>A (5) A+C>B (6) |
A<=0 (7) B<=0 (8) C<=0 (9) A+B<=C (10) B+C<=A (11) A+C<=B (12) |
是否为等腰三角形 | A=B (13) B=C (14) A=C (15) |
A≠B且B≠C且C≠A(16) |
是否为等边三角形 | A=B且B=C且C=A (17) | A≠B (18) B≠C (19) C≠A (20) |
设计测试用例,输入顺序为A,B,C
序号 | “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” | (12) | |
7 | “3,1,2” | (11) | |
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& |