软件工程 三角形软件测试源码截图流程图.docx
《软件工程 三角形软件测试源码截图流程图.docx》由会员分享,可在线阅读,更多相关《软件工程 三角形软件测试源码截图流程图.docx(14页珍藏版)》请在冰豆网上搜索。
软件工程三角形软件测试源码截图流程图
图1测试系统总体结构图
图2Szcj模块流程图
图3Srsj模块流程图
图4Lcort模块流程图
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
有效等价类
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
返回-2
返回-2
理论与实际相符
9
判定覆盖法
7,6,5
返回2
返回2
理论与实际相符
10
判定覆盖法
4,4,9
返回2
返回2
理论与实际相符
表3逻辑覆盖法
图7逻辑覆盖法运行图
NO.
类别
用例
实际结果
备注
输入数据
理论结果
1
路径覆盖法
1,2,3
返回3
返回3
完成路径覆盖1
2
路径覆盖法
3,4,5
返回2
返回2
完成路径覆盖2
3
路径覆盖法
4,4,4
返回1
返回1
完成路径覆盖3
4
路径覆盖法
3,-2,1
返回-2
返回-2
完成路径覆盖4
5
路径覆盖法
0,1,2
返回-1
返回-1
完成路径覆盖5
表4路径覆盖法
图8路径覆盖法
图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){//合法情况1
if(a==b&&b==c&&a==c){
*f=Szsj(a);/*正三角行面积*/
return1;
}
else
if(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;
else
cy[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]);
}
}