软件测试 实验报告三.docx
《软件测试 实验报告三.docx》由会员分享,可在线阅读,更多相关《软件测试 实验报告三.docx(22页珍藏版)》请在冰点文库上搜索。
软件测试实验报告三
实验报告三
课程名称
软件测试技术
实验日期
3.7-3.21
实验项目名称
白盒测试
实验地点
1#617
实验类型
□验证型
设计型□综合型
学时
8
实验组成员
一、实验目的及要求(本实验所涉及并要求掌握的知识点)
掌握白盒测试方法,使用各类代码覆盖率方法及基本路径测试方法对代码进行手工测试。
二、实验环境(本实验所使用的硬件设备和相关软件)
硬件:
微型计算机
软件:
要求安装有微软Windows操作系统、word、VC++或者MyEclipse
网络:
可以访问互联网
三、实验内容
单元测试脚本1:
给定三个正整数作为三角形的三条边,判定是否构成三角形以及所属三角形的种类。
//C语言
#include
voidmain()
{
inta,b,c;
printf("Enterthreenumbers:
");
scanf("%d%d%d",&a,&b,&c);
if((a+b>c)&&(b+c>a)&&(a+c>b))
{
if((a==b)&&(b==c))printf("等边三角形");
if((a==b)||(b==c)||(a==c))printf("等腰三角形");
elseprintf("普通三角形");
}
elseprintf("不是三角形");
printf("\n");
}
//Java语言
importjava.util.Scanner;
publicclasstestTriangle{
publicstaticvoidmain(String[]args){
inta,b,c;
Scannersc=newScanner(System.in);
System.out.print("Enterthreenumbers:
");
a=sc.nextInt();
b=sc.nextInt();
c=sc.nextInt();
if((a+b>c)&&(b+c>a)&&(a+c>b))
{
if((a==b)&&(b==c))System.out.println("等边三角形");
if((a==b)||(b==c)||(a==c))System.out.println("等腰三角形");
elseSystem.out.println("普通三角形");
}
elseSystem.out.println("不是三角形");
System.out.println("\n");
}
}
单元测试脚本2:
给定10组整数序列,每组三个整数,计算每组的最大数并输出。
#include
voidmain()
{
inti,a,b,c;
i=0;
while(i<10)
{
printf("Enterthreenumbers:
");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
if(a>c)printf("max:
a=%d\n",a);
elseif(a==c)printf("max:
a=c=%d\n",a);
elseprintf("max:
c=%d\n",c);
}
else
{
if(a==b)
{
if(a>c)printf("max:
a=b=%d\n",a);
elseif(a==c)printf("max:
a=b=c=%d\n",a);
elseprintf("max:
c=%d\n",c);
}
else
{
if(b>c)printf("max:
b=%d\n",b);
elseif(b==c)printf("max:
b=c=%d\n",b);
elseprintf("max:
c=%d\n",c);
}
}
i++;
}
}
主要工作内容:
1、依据语句覆盖、分支覆盖、条件覆盖、基本路径测试分别给出测试用例,用word表格记录;
序号
测试用例设计依据
测试数据
预期结果
实际结果
a
b
c
1
语句覆盖
2
3
4
XXX
5
6
2、执行测试用例,将执行结果填入表格,给出bug报告;
3、给出修改建议。
注意:
1、测试用例包括测试数据及预期结果;
2、基本路径测试要求画出程序流程图、控制流图,计算环形复杂度,给出路径并导出测试用例。
拓展实验
工资管理程序
工资管理程序部门伪代码,请用判定覆盖标准进行分析并设计测试用例。
//DSize-DEPTTAB表的长度;ESize-EMPTAB表的长度
voidBonus(TABLEEMPTAB,TABLEDEPTTAB,intESIZE,intDSIZE,intERRCODE)
{
intMaxSales=0;
ERRCODE=0;
if((ESIZE<=0)||(DSIZE<=0))ERRCODE=1;
else
{
for(inti:
=1;i<=DSIZE;i++)//找最大销售量
{
if(Sales[i]>MaxSales)MaxSales=Sales[i];
}
for(intj=1;j<=DSize;j++)
{
if(Sales[j]==MaxSales)
{
Boolfound=false;
for(intk=1;k<=ESize;k++)
{
if(EMPTAB.Dept(k)==DEPTTAB.Dept(j))
{
found=true;
if(salary(k)>=15000||Job(k)==’M’)
salary(k)=salary(k)+100;
else
salary(k)=salary(k)+200;
}
}
if(!
found)ERRCODE=2;
}
}}}
Name
Jobcode
Dept
Salary
雇员表(EMPTTAB)
Dept
Sales
部门表(DEPTTAB)
四、实验步骤
1、研究单元测试脚本设计思路;
2、根据代码设计说明设计测试用例;
3、对单元测试代码进行测试并记录测试结果;
4、对拓展实验测试内容进行分析并设计测试用例;
5、整理并提交实验报告。
五、实验结果
1、依据语句覆盖、分支覆盖、条件覆盖、基本路径测试分别给出测试用例,用word表格记录;
序号
测试用例设计依据
测试数据
预期结果
实际结果
a
b
c
1
语句覆盖
1
2
3
不是三角形
不是三角形
2
2
2
2
等边三角形
等边三角形
等腰三角形
3
2
3
4
普通三角形
普通三角形
5
分支覆盖
2
2
2
等边三角形
等边三角形
等腰三角形
6
2
2
3
等腰三角形
等腰三角形
7
2
3
4
普通三角形
普通三角形
8
1
2
3
不是三角形
不是三角形
9
条件覆盖
1
2
3
不是三角形
不是三角形
10
3
2
1
不是三角形
不是三角形
11
2
3
1
不是三角形
不是三角形
12
2
2
3
等腰三角形
等腰三角形
13
2
2
2
等边三角形
等腰三角形
等边三角形
等腰三角形
14
2
3
2
等腰三角形
等腰三角形
15
2
3
4
普通三角形
普通三角形
条件覆盖详细步骤:
判定条件
测试数据
预期结果
实际结果
a+b>c
b+c>a
a+c>b
a==b
b==c
a==c
a
b
c
F
1
2
3
不是三角形
不是三角形
T
F
3
2
1
不是三角形
不是三角形
T
T
F
2
3
1
不是三角形
不是三角形
T
T
T
T
F
2
2
3
等腰三角形
等腰三角形
T
T
T
T
T
2
2
2
等边三角形
等腰三角形
等边三角形
等腰三角形
T
T
T
F
T
2
3
2
等腰三角形
等腰三角形
T
T
T
F
F
2
3
4
普通三角形
普通三角形
代码流程图
基本路径测试:
环形复杂度为4。
Path1:
1-2-8-9
Path2:
1-2-3-4-9
Path3:
1-2-3-5-6-9
Path4:
1-2-3-5-7-9
Path
测试用例设计依据
测试数据
预期结果
实际结果
a
b
c
1
基本路径测试
1
2
3
不是三角形
不是三角形
2
2
2
2
等边三角形
等边三角形
等腰三角形
3
2
2
3
等腰三角形
等腰三角形
4
2
3
4
普通三角形
普通三角形
修改建议,在“if((a==b)||(b==c)||(a==c))printf("等腰三角形");”语句前面加一个else
即将语句改为“elseif((a==b)||(b==c)||(a==c))printf("等腰三角形");”
基本路径测试
环形复杂度为4。
2、
序号
测试用例设计依据
测试数据
预期结果
实际结果
i
a
b
c
1
语句覆盖
0
3
2
2
max:
a=3
max:
a=3
2
1
3
2
3
max:
a=c=3
max:
a=c=3
3
2
3
2
4
max:
c=4
max:
c=4
4
3
3
3
2
max:
a=b=3
max:
a=b=3
5
4
3
3
3
max:
a=b=c=3
max:
a=b=c=3
6
5
3
3
4
max:
c=4
max:
c=4
7
6
2
3
2
max:
b=3
max:
b=3
8
7
2
3
3
max:
b=c=3
max:
b=c=3
9
8
2
3
4
max:
c=4
max:
c=4
10
分支覆盖
0
4
3
3
max:
a=4
max:
a=4
11
1
4
3
4
max:
a=c=4
max:
a=c=4
12
2
4
3
5
max:
c=5
max:
c=5
13
3
4
4
3
max:
a=b=4
max:
a=b=4
14
4
4
4
4
max:
a=b=c=4
max:
a=b=c=4
15
5
4
4
5
max:
c=5
max:
c=5
16
6
3
4
3
max:
b=4
max:
b=4
17
7
3
4
4
max:
b=c=4
max:
b=c=4
18
8
3
4
5
max:
c=5
max:
c=5
19
条件覆盖
0
3
2
1
max:
a=3
max:
a=3
20
1
3
3
3
max:
a=b=c=3
max:
a=b=c=3
21
10
4
5
6
结束
结束
i
i<10
a>b
a>c
a==c
a==b
a>c
a==c
b>c
b==c
a
b
c
预期结果
实际结果
0
T
T
T
3
2
2
max:
a=3
max:
a=3
1
F
T
3
2
3
max:
a=c=3
max:
a=c=3
2
F
F
3
2
4
max:
c=4
max:
c=4
3
F
T
T
3
3
2
max:
a=b=3
max:
a=b=3
4
F
T
3
3
3
max:
a=b=c=3
max:
a=b=c=3
5
F
F
3
3
4
max:
c=4
max:
c=4
6
F
T
2
3
2
max:
b=3
max:
b=3
7
F
T
2
3
3
max:
b=c=3
max:
b=c=3
8
F
F
2
3
4
max:
c=4
max:
c=4
9
1
2
3
max:
c=3
max:
c=3
10
F
2
3
5
执行结束
执行结束
复杂度:
10
Path1:
1-2-21
Path2:
1-2-3-4-5-20-2-21
Path3:
1-2-3-4-6-7-20-2-21
Path4:
1-2-3-4-6-7-8-20-2-21
Path5:
1-2-3-9-10-11-20-2-21
Path6:
1-2-3-9-15-17-20-2-21
Path7:
1-2-3-9-10-12-13-20-2-21
Path8:
1-2-3-9-10-12-14-20-2-21
Path9:
1-2-3-9-15-16-18-20-2-21
Path10:
1-2-3-9-15-16-19-20-2-21
序号
测试用例设计依据
测试数据
预期结果
实际结果
a
b
c
i
path1
基本路径测试
0
path2
3
2
1
1
max:
a=3
max:
a=3
Path3
3
2
3
2
max:
a=c=3
max:
a=c=3
Path4
2
1
3
3
max:
c=3
max:
c=3
Path5
3
3
1
4
max:
a=b=3
max:
a=b=3
Path6
3
3
3
5
max:
a=b=c=3
max:
a=b=c=3
Path7
2
2
3
6
max:
c=3
max:
c=3
Path8
2
3
1
7
max:
b=3
max:
b=3
Path9
1
3
3
8
max:
b=c=3
max:
b=c=3
Path10
1
2
3
9
max:
c=3
max:
c=3
3.
测试数据
预期结果
测试结果
雇员表(EMPTTAB):
Name
Jobcode
Dept
Salary
部门表(DEPTTAB):
Dept
Sales
ERRCode=1
ERRCode=1即表格中无数据
雇员表(EMPTTAB):
Name
Jobcode
Dept
Salary
张三
经理
A
13000
李四
普员
B
16000
王五
普员
A
3000
部门表(DEPTTAB):
Dept
Sales
A
50万
B
45万
C
50万
ERRCode=2
Name
Jobcode
Dept
Salary
张三
经理
A
13100
李四
普员
B
16000
王五
普员
A
3200
ERRCode=2
Name
Jobcode
Dept
Salary
张三
经理
A
13100
李四
普员
B
16000
王五
普员
A
3200
六、实验总结(对本实验结果进行分析,实验心得体会及改进意见)
通过这三次的上机实验,通过分析实验程序,用不同的白盒测试方法设计测试用例,也测试出来一些问题,并解决实施,过程中遇到了很多问题,甚至分不清语句覆盖、条件覆盖、判定覆盖的区别,经过和同学探讨,解决了不少问题,以后会继续努力的
实验成绩
指导教师签名:
年月日