单元测试
- 格式:doc
- 大小:269.50 KB
- 文档页数:13
实验要求:
1、根据题目要求编写测试用例。
2、根据测试用例编写测试程序进行测试,并记录结果。
3、选择合适测试工具进行单元测试。
4、撰写实验报告。
成 绩 评 定 表
类 别
评 分 标 准
分值
得分
合 计
上机表现
积极出勤、遵守纪律
主动完成实验设计任务
30分
程序代码
比较规范、基本正确
列出条件桩
C1:a<b+c?
C2:b<a+c?
C3:C<a+b?
C4:a=b?
C5:a=c?
C6:b=c?
列出动作桩
A1:非三角形
A2:不等边三角形
A3:等腰三角形
A4:等边三角形
决策表
1
2
3
4
5
6
7
8
条件
C1:a<b+c?
F
T
T
T
T
T
T
T
C2:b<a+c?
—
F
T
T
T
T
T
T
C3:c<a+b?
—
F
F
T
计算机科学与工程学院
《软件测试》实验报告
专业班级
08双特01
实验地点
J503
学生学号
0705060314
指导教师
胡宏银
学生姓名
罗玲
实验时间
2011-11-29
实验项目
实验三单元测试及测试工具使用
实验类别
操作性() 验证性() 设计性(√) 综合性(√)其它( )
实验目的及要求
1、掌握单元测试技术,并按单元测试的要求设计测试用例。
–1)整数;
–2)三个数;
–3)非零数;
–4)正数;
•输出条件要求的关键之处有:
–5)应满足两边长之和大于第三边边长;
–6)等腰;
–7)等边;
•其中,3)、4)和5)并没有在题目上明显给出,但这些条件是必要的。
列出等价类表(表中号码为等价类编号)
表1-1 三角形问题等价类划分
有效等价类
号码
无效等价类
健壮性边界值测试将产生6n+1个测试用例.
健壮性测试最有意义的部分不是输人,而是预期的输出,观察例外情况如何处理。
假定三角形的三条边为a,b,c.输入变量a,b,c.在下列范围内取值:
1≤a≤1000,1≤b≤1000, 1≤c≤1000
边界值分析利用输入变量的最小值(min),稍大于最小值(min+),域内任意值(nom),稍小于最大值(max-),最大值(max)来设计测试用例。即通过使所有变量取正常值,只使一个变量分别去最小值,略高于最小值、略低于最大值和最大值。
Test6
Test7
Test8
600
600
600
500
600
500
600
500
600
600
600
500
700
500
600
500
1
2
600
999
800
1000
0
1001
等腰三角形
等腰三角形
等边三角形
等腰三角形
非等边三角形
非三角形
边长不能为0
边长不能超过1000
Test9
Test10
Test11
Test12
C程序代码如下:
void main()
{
int a,b,c;
cout<<"请输入三角形的三条边a,b,c";
cin>>a>>b>>c;
if(a<=0||b<=0||c<=0||a+b<=c||a+c<=b||b+c<=a)
cout<<"无法构成三角形";
else if(a==b&&a==c&&b==c)
单元测试又称为模块测试。模块并没有严格的定义,按照一般的理解,模块应具有一些基本属性,如名字、明确规定的功能、内部使用的数据、与其他模块或外界的数据联系,实现其特定功能的算法,模块可被其上层模块调用,也可调用其下属模块进行协同工作等。
二、实验内容
题目一: 针对三角形问题进行单元测试
三角形问题:接受三个正整数a、b、c作为输入,用做三角形的边。三边必须满足条件:0<a、b、c≤1000;程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。
前提
输入三个不等的正整数,且两边之和大于第三边
输入
a=300;b=400;c=500
预期结果
输出“三角形是一般三角形”
测试结果
输出“三角形是一般三角形”
测试日期
2011-11-15
备注
无
表1-4 Test2测试用例的测试结果
测试用例ID
Test2
目的
测试程序能否识别等腰三角形
前提
输入三个不等的正整数,且两边之和大于第三边
面向对象语言,如C++,单元测试对象是类或者类的方法。单元测试环境中的基本单元本身不是一个独立的程序,自己不能运行,要靠其它部分来调用和驱动,必须为每个基本单元开发驱动模块或桩模块。
通过这次实验,我学会测试用例的编写,相信自己通过不断的努力,会对单元测试有更深的认识。
表1-2三角形问题测试用表
a
b
c
覆盖等价类号码
300
400
500
1—7
400
400
500
1—7,8
400
500
500
1—7,9
500
400
500
1—7,10
400
400
400
1—7,11
(3)根据设计的两套测试用例集进行测试。
表1-3 Test1测试用例的测试结果
测试用例ID
Test1
目的
测试程序能否识别一般三角形
999
700
1000
600
600
500
600
500
0
600
500
800
500
等腰三角形
等腰三角形
等腰三角形
非等边三角形
非三角形
2)等价类测试:
(1)根据功能性测试技术设计测试用例,主要考虑等价类划分测试技术。
•使用等价类划分方法必须仔细分析和推敲题目所给出的要求。本题的输人条件要求的关键之处有:
条件项:列出针对它左列条件的取值。在所有可能情况下的真假值。
动作项:列出在条件项的各种取值情况下应该采取的动作。
规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。
将具有相同动作,并且其条件项之间存在着极为相似关系的两条或多条规则合并为一条规则
构造决策表可采用以下5个步骤:
(1)列出所有的条件桩和动作桩。
cout<<"构成等边三角形";
else if(a==b||a==c||b==c)
cout<<"构成等腰三角形";
else
cout<<"构成不等边三角形";
}
实验总结
从这次实验中,我学习到了许多知识,单元测试对象一般对应详细设计中所描述的基本单元。结构化编程语言,如C,单元测试对象是函数或者子过程。
100
200
400
非三角形
Test4
500
500
500
等边三角形
Test5
200
200
300
等腰三角形
Test6
200
300
200
等腰三角形
Test7
300
200
200
等腰三角形
Test8
300
400
500
不等边三角形
2、根据结构性测试技术设计测试用例,主要考虑路径测试、数据流等测试技术。
路径测试:
2、根据结构性测试技术设计测试用例,主要考虑路径测试、数据流等测试技术。
(1)路径测试:
首先根据题目旨意画出程序流程图,如下图1-1所示:
图1-1三角形问题程序流程图
其次根据题目旨意画出控制流程图,如下图1-2所示:
图4-4三角形问题控制流程图
环形复杂度V(G)=边数-节点数+2
即环形复杂度V(G)=8-6+2=4
功能达到实验要求
30分
实验报告
及时递交、填写规范
内容完整、体现收获
40分
说明: 评阅教师:
日期:2011年月日
实验内容
一、实验原理
单元测试是软件开发过程中进行的最低级别的测试活动,其目的是要检测程序模块中有无障碍存在。也就是说,一开始不是把程序作为一个整体来测试,而是首先集中注意力来测试程序中较小的结构块,以便发现并纠正模块内部的故障。
路径覆盖的测试用例
测试用例
A,B,C
执行路径
测试用例1
-1,200,200
e0e6e7e9
测试用例2
200,200,200
e0e1e5e8e9
测试用例3
200,200,300
e0e1e2e4e8e9
测试用例4
500,300,400
e0e1e2e3e8e9
(2)数据流测试:
控制流测试是面向程序的结构,控制流图和测试覆盖准则一旦给定,即可产生测试用例,至于程序中每个程序是如何实现的它不关心。与控制流的测试思想不同,数据流测试是面向程序中的变量。