-.驱动模块测试结果测试用例测试结果测试用例用例采集测试用例被测模块结果输出测试用例理论面积Szsj模块理论面积Srsj模块图1测试系统总体构造图理论面积测试用例Lcort模块-.可修编.-.开始输入正三角行边长定义变量i-i=0i=5判断模块边长和输入边长是否符合调用Szcj模块输出正三角行面积i++结束图2Szcj模块流程图.可修编.-.开始输入正三角行边长定义变量i-i=0i=5判断模块边长和输入边长是否符合调用Srsj模块输出任意三角行面积i++结束图3Srsj模块流程图.可修编.-.开始输入正三角行边长定义变量i-i=0i=5判断模块边长和输入边长是否符合调用Lcort模块输出合理边的面积i++结束图4Lcort模块流程图.可修编.-.NO.12345类别有效等价类有效等价类有效等价类有效等价类无效等价类用例输入数据3,3,31,3,66,4,10,6,14,4理论结果返回1返回3返回3返回-1返回0表1等价分类法返回1返回3返回3返回-1返回-2理论与实际相符理论与实际相符理论与实际相符理论与实际相符理论与实际不符实际结果备注图5等价分类运行图-.可修编.-.NO.12345类别有效等价类有效等价类有效等价类有效等价类有效等价类用例输入数据4,4,43,4,51,2,10,6,14,4,-1理论结果返回1返回2返回3返回-1返回-2表2边界值分类返回1返回2返回3返回-1返回-2理论与实际相符理论与实际相符理论与实际相符理论与实际相符理论与实际不符实际结果备注图6边界值分类运行图-.可修编.-.NO.12345678类别条件覆盖法条件覆盖法条件覆盖法条件覆盖法条件覆盖法判定覆盖法判定覆盖法判定覆盖法用例输入数据5,5,52,0,54,2,-17,6,54,4,95,5,52,0,54,2,-1理论结果返回1返回-1返回-2返回2返回2返回1返回-1返回-2返回1返回-1返回-2返回2返回2返回1返回-1返回-2理论与实际相符理论与实际相符理论与实际相符理论与实际相符理论与实际相符理论与实际相符理论与实际相符理论与实际相符实际结果备注-.可修编.-.910NO.12判定覆盖法判定覆盖法类别路径覆盖法路径覆盖法7,6,54,4,9用例输入数据1,2,33,4,5理论结果返回3返回2返回3返回2完成路径覆盖1完成路径覆盖2返回2返回2返回2返回2实际结果理论与实际相符理论与实际相符备注表3逻辑覆盖法图7逻辑覆盖法运行图-.可修编.-.345表4路径覆盖法路径覆盖法路径覆盖法路径覆盖法4,4,43,-2,10,1,2返回1返回-2返回-1返回1返回-2返回-1完成路径覆盖3完成路径覆盖4完成路径覆盖5图8路径覆盖法-.可修编.-.s开始aa<0IIb<0IIc<0Yreturn-2bNca==0||b==0||c==0Nea>0&&b>0&&c>0dYreturn-1fa==b&&a==c&c==aYa+b&&a+c>b&&b+c>aY*f=Szsjj(a,b,c)gireturn1mbreturn1Y*f=Srsj(a,b,c)Nj*f=Lcort(a,b,c)return2k路径1:sacefhjln路径2:sacefhikn路径3:sacefgmn路径4:sabn路径5:sacdnlreturn3n结束图9路径覆盖流程图#include//定义测试用例floatcy[5][8]={{1,2,3,3,3.4},{3,4,5,2.0,6},{4,4,4,1,0},{3,-2,1,-2,0},{0,1,2,-1,0}};/*桩1:正三角行面积*/floatSzsj(floata){inti;for(i=0;i<5;i++){if((cy[i][0]==a)&&(cy[i][1]==a)&&(cy[i][2]==a)){returncy[i][4];}}}/*桩2:任意三角行面积*/-.可修编.-.floatSrsj(floata,floatb,floatc){inti;for(i=0;i<5;i++){if((cy[i][0]==a)&&(cy[i][1]==b)&&(cy[i][2]==c)){returncy[i][4];}}}/*桩3:判断合理边并返回*/floatLcort(floata,floatb,floatc){inti;for(i=0;i<5;i++){if((cy[i][0]==a)&&(cy[i][1]==b)&&(cy[i][2]==c)){returncy[i][4];}}}inttri_mj(floata,floatb,floatc,float*f){if(a<0||b<0||c<0){//非法情况1*f=0;return-2;}if(a==0||b==0||c==0){//非法情况2*f=0;return-1;}if(a>0&&b>0&&c>0){//合法情况1if(a==b&&b==c&&a==c){*f=Szsj(a);/*正三角行面积*/return1;}elseif(a+b>c&&b+c>a&&c+a>b){//合法情况2*f=Srsj(a,b,c);/*任意三角行面积*/return2;}else{//非法情况3-.可修编.-.*f=Lcort(a,b,c);/*判断合理边并返回*/return3;}}elsereturn0;//非法情况4}/*主控模块*/intmain(){floata,b,c,f=0;//定义三个边长和理论面积inttype,i;//定义和玄幻变量for(i=0;i<5;i++){a=cy[i][0];b=cy[i][1];c=cy[i][2];type=tri_mj(a,b,c,&f);cy[i][5]=type;cy[i][6]=f;if(cy[i][3]==cy[i][5]&&cy[i][4]==cy[i][6])cy[i][7]=1;elsecy[i][7]=-1;}printf("当实际结果与理论值不同时即被测程序存在错误时测试结果中为-1\n");printf("|边a|边b|边c|理论type|理论area|实际type|实际area|测试结果|\n");for(i=0;i<5;i++){printf("|%4.1f|%4.1f|%4.1f|%4.1f|%4.1f|%4.1f|%4.1f|%4.1f|\n",cy[i][0],cy[i][1],cy[i][2],cy[i][3],cy[i][4],cy[i][5],cy[i][6],cy[i][7]);}}-.可修编.