1341901124武易软工工程实验报告.docx
《1341901124武易软工工程实验报告.docx》由会员分享,可在线阅读,更多相关《1341901124武易软工工程实验报告.docx(12页珍藏版)》请在冰点文库上搜索。
![1341901124武易软工工程实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/20/b87c50b4-26f3-41f6-8368-ea4881fbf758/b87c50b4-26f3-41f6-8368-ea4881fbf7581.gif)
1341901124武易软工工程实验报告
软件测试报告
学号:
1341901124
姓名:
武易
专业:
计算机科学与技术
测试程序(贪心算法)
输入面额范围:
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;
}
else{
++i;
if(m1==0){
cout<<"-9a-10-9b";
m1=1;
}
if(s3==0){
m+=3;
s3=1;
}
}
}
cout<<"-13"<return0;
}
测试截图:
四,心得体会
通过实验,我对软件测试有了进一步的认识和学习,对白盒测试流程有了较清楚的了解,收获很多。
黑盒测试
一.等价划分
1.确定等价类
输入条件
有效等价类
唯一标识
无效等价类
唯一标识
键入一个浮点值
0-21474836.47
1
小于0
2
大于21474836.47
3
2.确定测试用例
序号
用例(输入数据)
期望输出
覆盖有效等价类
实际输出
1
896.53
812011100
1
812011100
2
-89
超出范围
2
超出范围
3
30000000
超出范围
3
超出范围
二.边界值分析
测试用例
用例编号
测试数据
预期输出
实际输出
1
0
000000000
000000000
2
0.1
000000001
000000001
3
21474836.47
21474801111021
21474801111021
4
21474836.48
超出范围
超出范围
二.实验总结
通过黑盒测试实验,我学习到了黑盒测试中的等价划分以及边界值分析等测试方法,理解了软件测试在软件开发阶段所占的重要地位。