某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序
判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别
作计算 … "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)
测试输入:
1, 整数
2, 三个数
3, 非零数
4, 正数
5, 两边之和大于第三边
6, 等腰
7, 等边
输出分析:(满足条件1-4)
1, 不满足条件5,程序输出“非三角形”
2, 满足7(输入三边相等) 输出“等边三角形”
3, 满足6 输出“等腰三角形”
4, 满足5并且三边不相等 输出“一般三角形”
等价类划分:
输入等价类 | 有效等价类 | 有效编号 | 无效等价类 | 无效等价类细分 | 无效编号 |
整数 | 整数 | 1 | 一边为非整数 | a为非整数 | 2 |
b为非整数 | 3 | ||||
c为非整数 | 4 | ||||
两边为非整数 | a,b为非整数 | 5 | |||
b,c为非整数 | 6 | ||||
a,c为非整数 | 7 | ||||
三边均为非整数 | a,b,c均为非整数 | 8 | |||
三个数 | 三个数 | 9 | 只给1边 | 给a | 10 |
给b | 11 | ||||
给c | 12 | ||||
只给2边 | 给a,b | 13 | |||
给a,c | 14 | ||||
给b,c | 15 | ||||
给3边 | 给a,b,c | 16 | |||
非零数
| 非零数
| 17 | 一边为零 | a=0 | 18 |
b=0 | 19 | ||||
c=0 | 20 | ||||
两边为零 | a=0, b=0 | 21 | |||
a=0, c=0 | 22 | ||||
c=0, b=0 | 23 | ||||
三边都为零 | a=0, b=0,c=0 | 24 | |||
正数 | 正数 | 25 | 一边为负数 | a<0 | 26 |
b<0 | 27 | ||||
c<0 | 28 | ||||
俩边为负数 | a<0,b<0 | 29 | |||
| a<0,c<0 | 30 | |||
| b<0,c<0 | 31 | |||
三边为负数 | a<0,b<0,c<0 | 32 | |||
两边之和大于第三边(一般三角形) | a+b>c | 33 | a+b=c |
| 36 |
a+b<c |
| 37 | |||
a+c>b | 34 | a+c=b |
| 38 | |
a+c<b |
| 39 | |||
b+c>a | 35 | b+c=a |
| 40 | |
b+c<a |
| 41 | |||
等边 | a=b=c | 42 |
|
|
|
等腰 | a=b(且两边之和大于第三边) | 43 |
|
|
|
b=c | 44 |
|
|
| |
a=c | 45 |
|
|
|
测试数据覆盖:
测试用例覆盖: