资源描述
《软件测试与质量保证》综合性实验
本科学生综合性实验报告
项目组长_ 陈贝贝 学号_ 0088225
成 员 0088225 陈贝贝
专 业_ 软件工程 班级 08级4班
实验项目名称_C++程序单元测试综合训练 _
指导教师及职称_ 段喜龙 讲师 _ _
开课学期 11 至_ 12 学年_一_学期
上课时间 2011 年 11 月 8 日
学生实验报告
学生姓名
陈贝贝
学号
0088225
同组人:无
实验项目
C++程序单元测试综合训练
■必修 □选修
□演示性实验 □验证性实验 □操作性实验 ■综合性实验
实验地点
H123
实验仪器台号
H123-**
指导教师
段喜龙
实验日期及节次
2011.11.15 567节
一、实验综述
1、实验目的及要求
实验目的:
1. 巩固学生在课堂上学习到的关于单元测试的基本知识。
2. 让学生熟悉软件项目测试全过程管理的方法与流程,并培养作为软件测试者应该具有的基本素质,激发学生主动学习和应用新测试工具的意识。
实验要求:
1. 通过对软件测试辅助工具C++Test的学习,并针对一些常见的C++程序开展单元测试的训练,使学生深刻理解软件测试在软件工程专业中的地位,掌握C++Test的基本使用技巧。
2. 熟悉软件项目测试全过程管理的方法与流程,并培养作为软件测试者应该具有的基本素质,激发学生主动学习和应用新测试工具的意识。
3. 针对基础性实验编写以下三个程序(三选一)的测试程序——三角形问题、日期问题和佣金问题,进行测试实践,要求测试用例必须为手动编写且不少于30个。
2、实验仪器、设备或软件
(1) 设备:实验室微机
(2) 运行环境:Windows xp
(3) 软件:VC++,C++Test
(4) 用例程序
二、实验过程(实验步骤、记录、数据、分析)
(1) 步骤一
l 安装C++test
打开安装源程序,同普通的windows应用程序一样,选择安装路径,完成安装。
注意:
用c++test 对文件read simbols的时候,输入窗口显示没有找到GCC编译器,环境变量里没有GCC编译器的路径:Compiler GNU GCC 2.9.x used in project configuration cannot be found.Please be sure that directory containing GNU GCC 2.9.x compiler, is included in the $PATH environmental variable.
如图示:
在网上找了好多解决办法都没有凑效,
Eg:请将gcc所在目录添加到环境变量中,右键我的电脑->属性->高级->环境变量,在下面的系统变量中找到Path, 选中,点编辑,在最后边加一个分好";"然后填上gcc的全路径。
后来到Parasoft的官网上发现上面有几句话:
Installation
To install C++Test, simply run the setup executable that you downloaded from the Parasoft Web site or that is on your CD, and follow the installation program's on-screen directions. The installation program will automatically install C++Test on your computer.
Important:Open and use Microsoft® Visual C++® (6.0, .NET, or .NET 2003) at least once before installing C++Test. Close Microsoft Visual C++ before you install C++Test.
然后先把c++test卸载了,安装好Visual C++ 6.0 ,再装c++test,问题就解决了。要注意的是在装C++test之前要先装Visual C++ 6.0,并且要至少先运行一次Visual C++ 6.0~~
l 安装成功后运行C++test
(2) 步骤二
以佣金问题为例,运行程序
1.打开被测文件
(1) 打开C++Test,右击【project】->【file/open file】,选择C++Test安装目录下examples/cpptest_demo.cpp,这个cpp文件将出现在当前的project下。
(2) 在当前project下,右击【cpptest_demo.cpp】->【read symbols】(读入符号表),此时C++Test将parse(剖析)这个源程序,分析出此文件的文件结构。
l 当选择代码时,被选择的代码也会以蓝色块的形式出现。
l 代码左侧的红色精灵帽表示静态分析时出现问题的所在;
l 黄色小齿轮则表示动态分析时出现问题的所在。点击相应的地方,会出现对问题的一个简单描述。
2.静态测试
rules
l 静态测试是指不用执行程序的测试,它主要采取方案—代码走查、技术评审、代码审查的方法对软件产品进行测试。
检查项:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审手册。
仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
l 三角形箭头【TestUsing】->【configuration】->【built-in】->【shouldHaveRules】
l C++Test走查所用到的规范可以在静态测试标签的rule manage下看到。
在静态分析栏中的Results标签是对静态分析结果的一个罗列。每个红色精灵帽都代表一种违规行为,而它旁边的数字则代表测试代码中出现这种违规的次数。紧接着的字母表明违规行为的严重级别。再后面就是对这条规范的大致描述以及规则编号。
而标签Rules Manager则是对这些规则的管理,当用户需要使用某条规则的时候,只需要在相应规则左侧的方框内打上勾就表明选择了该条规则。而当用户不需要某条规则检查的时候,只需要去掉相应规则的勾就可以了。
下图,右侧就是静态测试(代码走查)的结果。每条违规信息包括对违规的描述,该错误共发生的次数以及相对应的具体位置。而下面的rule desription则是对这条规则的一个比较详细的描述。顶层的文件夹后面的“I=4 PV=1 V=33……”描述的是整个的对违规信息的统计。
I表示information,通知行为
PV表示possible violation,可能的违规行为
V表示violation,违规行为
PSV表示possible servere violation,可能的严重违规行为
SV表示servere violation,严重违规行为。
3.动态测试
l 动态方法是指通过运行被测程序,检查动态行为、运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。
l 在向右三角型旁边的下拉箭头【TestUsing】->【configuration】->【built-in】->【UnitTesting】->【WhiteBoxaNalysis】
可以从各个层面上(单个测试用例,整个函数的测试用例,整个代码的测试用例)去看相对应代码的覆盖率。操作的时候,只需要右击相应的层次(例如一个测试用例),选择show coverage,就可以看到对应的覆盖率了。
在动态测试中的Test Case/Results栏中,主要是对测试用例的一个总体管理。在这里,所有的测试用例的状态都一目了然,绿色表示成功,红色表示失败。用户可以自己添加或修改测试用例。
而Stub Tables栏则是对桩函数的管理,Suppressions则是对测试对象的一个管理。例如,上面的Data类有很多个成员函数,当用户并不想全部都测,而只是测其中的几个。这个时候就可以通过Suppressions进行选择。
除此之外,上面的Tree filter还提供强大的滤波器功能,可以让用户更好的关注他们的焦点,例如只看最近一次测试的失败用例。
其中:
OK :函数返回正确的值或者函数执行后对象的条件满足。
Failed(FLD) :函数返回值不正确或者函数执行后对象的条件不满足。
Error(ERR):使用者或系统出现异常导致错误。
Tested(TST) :实际执行的测试用例个数。
Total(TOT) :总的测试用例个数。
LC (Line Coverage) :语句覆盖。
BBC (Basic Block Coverage) :块覆盖。
PC (Path Coverage) :路径覆盖。
DC (Decision Coverage) :决策覆盖。
MC/DC (Modified Condition/Decision Coverage) :多条件决策覆盖。
CC (Condition Coverage) :条件覆盖。
添加修改测试用例:
其中:
. 参数(Arguments): 函数的入口参数。
. 参数出口条件(Arguments Post): 函数执行完成时入口参数的状态。
. 返回值(Return): 函数的返回值。
. 对象前置条件(Pre Conditions> This): 测试开始前对象的条件。
. 对象后置条件(Post Conditions> This): 测试执行后对象的条件。
. 前置条件(Pre Conditions> Externals): 测试开始前全局变量的条件。
. 后置条件(Post Conditions> Externals): 测试执行后全局变量的条件。
三、结论
1、实验结果
2、分析讨论
四、指导教师评语及成绩:
评语:
成绩: 指导教师签名:
批阅日期:
展开阅读全文