这是我软件测试课程的一个作业题,没什么难度。
1. 题目:输入整数a、b、c,分别作为三角形的三条边,编写程序判断由三条边构成的三角形的类型为:等边三角形、等腰三角形、一般三角形,以及不能构成三角形。
2. 简单的实现:
逻辑图:
代码
public static String SanJiaoXing(float a, float b, float c)
{
return ((a + b) <= c || (a + c) <= b || (b + c) <= a) ? "不能构成三角形" : ((a == b && b == c) ? "等边三角形" : ((a != b && b != c && c != a) ? "普通三角形" : "等腰三角形"));
}
3. 选择的测试方法:等价划分法。
输入条件 | 输入三个整数 | 有效等价类 | 编号 | 无效等价类 | 编号 |
整数 | 1 | a为非整数 | 12 | ||
b为非整数 | 13 | ||||
c为非整数 | 14 | ||||
a,b为非整数 | 15 | ||||
b,c为非整数 | 16 | ||||
c,a为非整数 | 17 | ||||
a,b,c都为非整数 | 18 | ||||
三个数 | 2 | 只给a | 19 | ||
只给b | 20 | ||||
只给c | 21 | ||||
只给a,b | 22 | ||||
只给b,c | 23 | ||||
只给c,a | 24 | ||||
给出3个以上 | 25 | ||||
非零数 | 3 | a为0 | 26 | ||
b为0 | 27 | ||||
c为0 | 28 | ||||
a,b为0 | 29 | ||||
b,c为0 | 30 | ||||
c,a为0 | 31 | ||||
a,b,c都为0 | 32 | ||||
正数 | 4 | a<0 | 33 | ||
b<0 | 34 | ||||
b<0 | 35 | ||||
a<0且b<0 | 36 | ||||
b<0且c<0 | 37 | ||||
c<0 且a<0 | 38 | ||||
a<0且a<0 且a<0 | 39 | ||||
输出条件 | 普通三角形 | a+b>c | 5 | a+b<c | 40 |
a+b=c | 41 | ||||
b+c>a | 6 | b+c<a | 42 | ||
b+c=a | 43 | ||||
c+a>b | 7 | c+a<b | 44 | ||
c+a=b | 45 | ||||
等腰三角形 | a=b=c | 8 |
|
| |
等边三角形 | a=b&&b!=c | 9 |
|
| |
a=c&&a!=b | 10 |
|
| ||
b=c&&c!=a | 11 |
|
|
生成的测试用例:
覆盖有效等价类的测试用例:
a | b | c | 覆盖有效等价类号码 |
3 | 4 | 5 | 1,7 |
4 | 4 | 5 | 1,7,8 |
4 | 5 | 5 | 1,7,9 |
5 | 4 | 5 | 1,7,10 |
覆盖无效等价类的测试用例:
a | b | c | 覆盖无效等价类号码 | a | b | c | 覆盖无效等价类号码 |
2.5 | 4 | 5 | 12 | 0 | 0 | 5 | 29 |
3 | 4.5 | 5 | 13 | 3 | 0 | 0 | 30 |
3 | 4 | 5.5 | 14 | 0 | 4 | 0 | 31 |
3.5 | 4.5 | 5 | 15 | 0 | 0 | 0 | 32 |
3 | 4.5 | 5.5 | 16 | -3 | 4 | 5 | 33 |
3.5 | 4 | 5.5 | 17 | 3 | -4 | 5 | 34 |
4.5 | 4.5 | 5.5 | 18 | 3 | 4 | -5 | 35 |
3 | Null | Null | 19 | -3 | -4 | 5 | 36 |
Null | 4 | Null | 29 | -3 | 4 | -5 | 37 |
Null | Null | 5 | 21 | 3 | -4 | -5 | 38 |
3 | 4 | Null | 22 | -3 | -4 | -5 | 39 |
Null | 4 | 5 | 23 | 3 | 1 | 5 | 40 |
3 | Null | 5 | 24 | 3 | 2 | 5 | 41 |
3 | 4 | 5 | 25 | 3 | 1 | 1 | 42 |
0 | 4 | 5 | 26 | 3 |
| 1 | 43 |
3 | 0 | 5 | 27 | 1 | 4 | 2 | 44 |
3 | 4 | 0 | 28 | 3 | 4 | 1 | 45 |