1、软件工程 三角形软件测试源码截图流程图图1测试系统总体结构图图2 Szcj模块流程图图3 Srsj模块流程图图4 Lcort模块流程图NO.类别用例实际结果备注输入数据理论结果1有效等价类3,3,3返回1返回1理论与实际相符2有效等价类1,3,6返回3返回3理论与实际相符3有效等价类6,4,1返回3返回3理论与实际相符4有效等价类0,6,1返回-1返回-1理论与实际相符5无效等价类4,4返回0返回-2理论与实际不符表1等价分类法图5 等价分类运行图NO.类别用例实际结果备注输入数据理论结果1有效等价类4,4,4返回1返回1理论与实际相符2有效等价类3,4,5返回2返回2理论与实际相符3有效等价
2、类1,2,1返回3返回3理论与实际相符4有效等价类0,6,1返回-1返回-1理论与实际相符5有效等价类4,4,-1返回-2返回-2理论与实际不符表2 边界值分类图6边界值分类运行图NO.类别用例实际结果备注输入数据理论结果1条件覆盖法5,5,5返回1返回1理论与实际相符2条件覆盖法2,0,5返回-1返回-1理论与实际相符3条件覆盖法4,2,-1返回-2返回-2理论与实际相符4条件覆盖法7,6,5返回2返回2理论与实际相符5条件覆盖法4,4,9返回2返回2理论与实际相符6判定覆盖法5,5,5返回1返回1理论与实际相符7判定覆盖法2,0,5返回-1返回-1理论与实际相符8判定覆盖法4,2,-1返回
3、-2返回-2理论与实际相符9判定覆盖法7,6,5返回2返回2理论与实际相符10判定覆盖法4,4,9返回2返回2理论与实际相符表3逻辑覆盖法图7逻辑覆盖法运行图NO.类别用例实际结果备注输入数据理论结果1路径覆盖法1,2,3返回3返回3完成路径覆盖12路径覆盖法3,4,5返回2返回2完成路径覆盖23路径覆盖法4,4,4返回1返回1完成路径覆盖34路径覆盖法3,-2,1返回-2返回-2完成路径覆盖45路径覆盖法0,1,2返回-1返回-1完成路径覆盖5表4路径覆盖法图8路径覆盖法图9路径覆盖流程图#include /定义测试用例float cy58 = 1,2,3,3,3.4,3,4,5,2.0,6
4、,4,4,4,1,0,3,-2,1,-2,0,0,1,2,-1,0;/*桩1:正三角行面积*/float Szsj(float a) int i; for(i=0;i5;i+) if(cyi0=a)&(cyi1=a)&(cyi2=a) return cyi4; /*桩2:任意三角行面积*/ float Srsj(float a,float b,float c) int i; for(i=0;i5;i+) if(cyi0=a)&(cyi1=b)&(cyi2=c) return cyi4; /*桩3:判断合理边并返回*/ float Lcort(float a,float b,float c) i
5、nt i; for(i=0;i5;i+) if(cyi0=a)&(cyi1=b)&(cyi2=c) return cyi4; int tri_mj(float a, float b, float c, float *f) if (a 0 | b 0 | c 0 & b 0 & c 0 ) /合法情况1 if (a = b & b = c & a = c) *f = Szsj(a); /*正三角行面积*/ return 1; else if (a+b c & b+c a & c+a b) /合法情况2 *f = Srsj(a, b, c); /*任意三角行面积*/ return 2 ; else
6、 /非法情况3 *f = Lcort( a, b, c ); /*判断合理边并返回*/ return 3 ; else return 0; /非法情况4/*主控模块*/int main() float a,b,c,f=0;/定义三个边长和理论面积 int type,i;/定义和玄幻变量 for(i=0;i5;i+) a=cyi0; b=cyi1; c=cyi2; type = tri_mj(a,b,c,&f); cyi5=type; cyi6=f; if(cyi3=cyi5 & cyi4=cyi6) cyi7=1; else cyi7=-1; printf(当实际结果与理论值不同时即被测程序存在错误时测试结果中为-1n); printf(| 边a | 边b | 边c | 理论type | 理论area | 实际type | 实际area | 测试结果 |n); for(i=0;i5;i+) printf(| %4.1f | %4.1f | %4.1f |%4.1f|%4.1f|%4.1f|%4.1f|%4.1f|n,cyi0,cyi1,cyi2,cyi3,cyi4,cyi5,cyi6,cyi7);