面试的时候,面试官问我:“测试一个三角形的用例怎么写?”,我当时晕了,回答了几个特殊情况,感觉他不太满意,具体的该怎么回答呢?
最佳答案
一、等价类划分:三角形三条边A、B、C的数据类型不同
二、边界值分析:由于三角形的边长可以是正整数或正小数,所以就不对长度进行测试,那么边界值分析就不用了
三、因果图法:三角形的三条边数据输入组合
我们看一下三角形的流程图:
我们再分析一下三角形的等价类:
有效等价类:
输入3个正整数或正小数:
1、两数之和大于第三数,如A<B+C;B<C+A;C<A+B
2、两数之和不大于第三数
3、两数相等,如A=B或B=C或C=A
4、三数相等,如A=B=C
5、三数不相等,如A!=B,B!=C,C!=A
无效等价类:
1、空
2、负整数
3、非数字
4、少于三个数
三角形测试用例类别
输入条件有效等价类无效等价类
是否是三角形
(A>0) (1)
(B>0) (2)
(C>0) (3)
(A+B>C) (4)
(B+C>A) (5)
(C+A>B) (6) (A<=0) (7)
(B<=0) (8)
(C<=0) (9)
(A+B<=C) (10)
(B+C<=A) (11)
(C+A<=B) (12)
是否是等腰三角形
(A=B) (13)
(B=C) (14)
(C=A) (15) (A!=B)and(B!=C)and(C!=A) (16)
是否是等腰直角三角形:
(A=B)and(A^2+B^2=C^2) (17)
(B=C)and(B^2+C^2=A^2) (18)
(C=A)and(C^2+A^2=B^2) (19)
是否是等边三角形:
(A=B)and(B=C)and(C=A) (20)
(A!=B) (21)
(B!=C) (22)
(C!=A) (23)
三角形测试用例:
序号[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] (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 [2√2,2√2,4] (1)(2)(3)(4)(5)(6)(17)等腰直角三角形
12 [4,2√2,2√2] (1)(2)(3)(4)(5)(6)(18)等腰直角三角形
13 [2√2,4,2√2] (1)(2)(3)(4)(5)(6)(19)等腰直角三角形
14 [3,4,5] (1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24)是三角形
15 [3,3,3] (1)(2)(3)(4)(5)(6)(16)(21)等边三角形
16 [,,,]无效等价类错误提示
17 [-3,4,5]无效等价类错误提示
18 [a,3,@]无效等价类错误提示
19 [3,4]无效等价类错误提示