三角形测试(测试用例).docx
.三角形测试用例题目:输入三个数 a、b、c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形是一般三角形、等腰三角形还是等边三角形时。用等价类划分方法为该程序设计测试用例。在三角形计算中,要求三角形的三个边长:A B C 。1、 当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。2、若是等腰三角形打印“等腰三角形”,若两个等腰的平方和等于第三边平方和,则打印“等腰直角三角形”。3、若是等边三角形,则打印:“等边三角形”。4、画出程序流程图并设计一个测试用例。分析一下:1、构成三角形的条件:任意两边之和大于第三边;2、构成等腰三角形的条件:任意两边相等;3、构成等腰直角三角形的条件:任意两边相等,而且两条边的平方和等于第三边的平方和;4、构成等边三角形的条件:三条边都相等。那么用什么样的设计方法进行测试用例的设计呢?一、等价类划分:三角形三条边A、 B、 C 的数据类型不同二、边界值分析:由于三角形的边长可以是正整数或正小数,所以就不对长度进行测试,那么边界值分析就不用了三、因果图法:三角形的三条边数据输入组合我们看一下三角形的流程图:注:改正一个小错误,在判断是否是等腰直角三角形中A 的平方 =B的平方 +C 的平方。由于画图时,网络速度问题,导致真或假的值没有标注。三角形等价类列表判定类型有效等价类无效等价类.一般三角形(a>0)(b>0) (c>0) (a<=0 V b<=0 V c<=0)(a+b)>c) V (a+c)>b) V (b+c)>a) (1)(a+b)<=c) V (a+c)<=b) V (b+c)<=a) (2)等腰三角形 (1) (a=b V a=c V b=c)(3)(2)V (a!=b b!=c a!=c) (4)等边三角形(1) (a=b=c ) (5)(2) V (a!=b!=c)(6)根据上表组成的测试用例:三角形等价类测试用例ID 输入数据覆盖测试用例输出结果a b c13 4 5(1)一般三角形20 4 5(2)非( 一般 ) 三角形33 0 5(2)43 4 0(2)51 4 5(2).63 8 5(2)73 2 1(2)83 3 5(3)等腰三角形9 3 4 310 3 4 4 #include<stdio.h> void main ()float a, b, c;printf(" 请输入三角形三边 "); scanf("%f,%f,%f",&a,&b,&c);if (a=b|b=c|a=c) printf(" 等腰三角形 "); if (a=b&&b=c) printf(" 等边三角形 ");.if (a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)printf("直角三角形 ");elseprintf("普通三角形 ");113 4 9(4)非等腰三角形123 3 3(5)等边三角形13-1 0 1(6)非等边三角形.我们再分析一下三角形的等价类:有效等价类:输入 3 个正整数或正小数:1、两数之和大于第三数,如A<B+C;B<C+A; C<A+B2、两数之和不大于第三数3、两数相等,如A=B或 B=C或 C=A4、三数相等,如A=B=C5 、三数不相等,如 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(A2+B2=C2) (17)(B=C)and(B2+C2=A2) (18)(C=A)and(C2+A2=B2) (19)(A!=B)and(B!=C)and(C!=A) (20)是否是等边三角形(A=B)and(B=C)and(C=A) (21)(A!=B) (22)(B!=C) (23)(C!=A) (24)#include <stdio.h>void main()int a,b,c;printf("Please Input a,b,c:");scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);if(a+b<=c|a+c<=b|b+c<=a) /*判断是否能构成三角形*/printf("No!n");elseprintf("Yes!n");.if(a=c|a=b|b=c) /*判断是否为等腰三角形*/printf("It can be an isoceles triangle!n");if(a=c && a=b) /*判断是否为等边三角形*/printf("It also can be an equilateral triangle!n");elseprintf("But it can not be an equilateral triangle!n");elseprintf("It cant be an isoceles triangle!n");getch();三角形测试用例:序号 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)等腰三角形103,4,3 (1)(2)(3)(4)(5)(6)(15)等腰三角形112 2,2 2,4 (1)(2)(3)(4)(5)(6)(17)等腰直角三角形.124,2 2,2 2 (1)(2)(3)(4)(5)(6)(18)等腰直角三角形132 2,4,2 2 (1)(2)(3)(4)(5)(6)(19)等腰直角三角形143,4,5(1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24)是三角形153,3,3 (1)(2)(3)(4)(5)(6)(16)(21)等边三角形16,无效等价类错误提示17-3,4,5无效等价类 错误提示18a,3,无效等价类错误提示193,4无效等价类错误提示.