软工工程实验报告.docx
《软工工程实验报告.docx》由会员分享,可在线阅读,更多相关《软工工程实验报告.docx(7页珍藏版)》请在冰豆网上搜索。
![软工工程实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/1/f70752d1-a043-48d0-b950-4ea5f8b9d911/f70752d1-a043-48d0-b950-4ea5f8b9d9111.gif)
软工工程实验报告
软件测试报告
学号:
XXX
姓名:
XXX
专业:
计算机科学与技术
测试程序(贪心算法)
输入面额范围:
0-21474836.47
#include
#include
usingnamespacestd;
constintSIZE=9;
intcoin[SIZE]={10000,5000,2000,1000,500,100,50,20,10};
intnum[SIZE];
intexchange(intn);
intmain()
{
doublemoney;
stringname[SIZE]={"一百元","五十元","二十元","十元","5元","1元","5角","2角","1角"};
cout<<"请输入金额:
";
cin>>money;
if(money<0||money>21474836.47){
cout<<"超出范围"<return0;
}
intn=(int)(money*100);
exchange(n);
for(inti=0;icout<"<}
return0;
}
intexchange(intn)
{
inti;
for(i=0;iif(n>=coin[i])break;
while(n>0&&iif(n>=coin[i])
{
n-=coin[i];
num[i]++;
}
elseif(n<10&&n>=5){
num[SIZE-1]++;
break;
}
else++i;
}
return0;
}
白盒测试
一.测试用例设计
1.程序流程图
2.控制流图
3.环路复杂度计算
V=E–N+2=19–13+2=8(E是流图中边的条数,N是结点数)
4.基本路径集设计
A:
1,2,3,4,12,5a,13
B:
1,2,3,4,12,5a,5b,13
C:
1,2,3,4,12,5a,5b,6,7,8,13
D:
1,2,3,4,12,5a,5b,6,7,8,9a,10,9b,13
E:
1,2,3,4,12,5a,5b,6,7,8,9a,10,9b,11,13
注:
由源程序可知,其他三条路径可省略
5.测试用例集设计
A路径:
-52预期输出:
0,0,0,0,0,0,0,0,0
B路径:
0.08预期输出:
0,0,0,0,0,0,0,0,0
C路径:
100预期输出:
1,0,0,0,0,0,0,0,0
D路径:
6.8预期输出:
0,0,0,0,1,1,1,1,1
E路径:
12.06预期输出:
0,0,0,1,0,2,0,0,1
二.插桩后源程序清单与判定覆盖率分析结果
#include
#include
usingnamespacestd;
constintSIZE=9;
intcoin[SIZE]={10000,5000,2000,1000,500,100,50,20,10};
intnum[SIZE];
intexchange(intn);
intm=7;
bools0=0;
bools1=0;
bools2=0;
bools3=0;
intmain()
{
doublemoney;
stringname[SIZE]={"一百元","五十元","二十元","十元","5元","1元","5角","2角","1角"};
cout<<"请输入金额:
";
while(cin>>money){
cout<<"请输入预测值";
intt;
inttp[9];
for(inti=0;i<9;++i)
{
cin>>t;
tp[i]=t;
}
intn=(int)(money*100);
boolisSuccessful=1;
cout<<"程序运行路径:
";
exchange(n);
for(inti=0;icout<"<}
for(inti=0;i{
if(tp[i]!
=num[i]){
isSuccessful=0;
break;
}
}
if(isSuccessful)
cout<<"成功"<else
cout<<"失败"<cout<<"请输入金额:
(输入q退出)";
for(inti=0;inum[i]=0;
}
cout<<"测试结果:
总路径覆盖率为"<return0;
}
intexchange(intn)
{
inti;
for(i=0;iif(n>=coin[i])break;
cout<<"1-2-3-4-12-5a";
boolm0=0;
boolm1=0;
if(n>0){
cout<<"-5b";
if(s0==0){
++m;
s0=1;
}
}
while(n>0&&iif(n>=coin[i])
{
n-=coin[i];
num[i]++;
if(m0==0){
cout<<"-6-7-8";
m0=1;
}
if(s1==0){
m+=3;
s1=1;
}
}
elseif(n<10&&n>=5){
num[SIZE-1]++;
cout<<"-11";
if(s2==0)
{
++m;
s2=1;
}
break;
}