密级密级::内部使用
内部使用
版本:版本:11.0.0
C++Test 测试工具指导书
测试工具指导书
C++Test
2005 年 7 月 09 日
文档编号:
C++Test 测试工具指导书
目录
文档说明 .......................................................................................................... 错误!未定义书签。
变更记录 .......................................................................................................... 错误!未定义书签。
目录 .....................................................................................................................................................2
前言 .................................................................................................................. 错误!未定义书签。
序言 .......................................................................................................... 错误!未定义书签。
相关文档 ..................................................................................................错误!未定义书签。
一.C++Test 概述............................................................................................................................. 4
二.安装说明 .................................................................................................................................... 5
三.界面说明 .................................................................................................................................... 6
1. 菜单栏: ............................................................................................................................... 7
File 菜单 ........................................................................................................................... 7
Edit 菜单 ........................................................................................................................... 8
Project 菜单 .................................................................................................................... 9
Test 菜单 ........................................................................................................................ 12
Coverage 菜单 ..................................................................................................................12
Setting 菜单 ......................................................................................................................12
Tool 菜单..........................................................................................................................13
Help 菜单 ..........................................................................................................................13
2. 工具栏................................................................................................................................. 13
3. Project Tree 区.....................................................................................................................14
4. Main GUI Panel 区 ...............................................................................................................15
5. Output / Message Panel 区...................................................................................................15
6. Test tab..................................................................................................................................16
Source Code Tab...............................................................................................................16
Static Analysis Tab........................................................................................................... 18
Dyanmic Analysis Tab......................................................................................................20
Test Progress Tab..............................................................................................................24
Statistics Tab.....................................................................................................................25
四.操作(demo).............................................................................................................................. 25
建立测试环境 .......................................................................................................................... 25
静态测试 .................................................................................................................................. 27
动态测试 .................................................................................................................................. 28
生成报表 .................................................................................................................................. 29
五.应用举例 .................................................................................................................................. 30
六、高级使用技巧 .......................................................................................................................... 35
1.静态规则配置库导入/导出功能.......................................................................................35
2.工程模板 (project’s template)................................................................................36
3.定制测试用例 .................................................................................................................... 38
4.对象库 ................................................................................................................................ 38
5.自动测试尽可能多的分支和边界条件 ............................................................................39
- 2 -
C++Test 测试工具指导书
【例】发现条件中的整型边界条件..............................................................................39
【例】发现条件中的字符型边界条件 ..........................................................................40
【例】使用枚举类型生成测试用例的输入值..............................................................40
【例】使用特殊字符...................................................................................................... 41
6.处理复杂数据类型 ............................................................................................................ 42
【例】用类、枚举和自定义类型做输入/输出 ............................................................42
【例】用结构、枚举和指针类型做输入/输出 ............................................................44
7.处理复杂嵌套类型 ............................................................................................................ 46
【例】应用多层嵌套类 ..................................................................................................46
8.自定义桩时返回复杂数据类型 ........................................................................................48
【例】桩返回类型为结构指针......................................................................................49
9.初始化对象 ........................................................................................................................ 50
【例】使用用户定义构造函数初始化对象 ..................................................................50
10.自动测试用户定义构造函数和重载函数 ......................................................................52
11.测试 C++模板(template)应用...................................................................................53
【例】自动测试模板应用..............................................................................................53
12.自动捕获代码异常 .......................................................................................................... 55
创建测试单元(Test Unit).................................................................................................... 56
13.函数序列测试 .................................................................................................................. 56
14.观察测试覆盖性 .............................................................................................................. 57
七、常见问题解答 .......................................................................................................................... 58
问题 1: 测试用例显示的测试结果不明确的,怎样定位到源码行?C++Test 怎样 Debug
所选测试用例问题?.............................................................................................................. 58
问题 2: 找不到头文件错误怎么处理? .............................................................................58
Source Code 属性页中的源文件不能显示汉字注释怎么办? ......................... 59
问题 3:
问题 4:
Project Settings > compiler options 的 Preprocessor flags 做什么用?
...................................................................................................................................................59
问题 5: 如果函数要求的输入参数是 int 类型,C++Test 能否提供输入 float 类型 或
者 char 类型的异常参数? .................................................................................................... 59
八、建议 .......................................................................................................................................... 60
工程创建及配置建议.............................................................................................................. 60
创建测试单元建议 .................................................................................................................. 60
其他建议 .................................................................................................................................. 61
九、小结 .......................................................................................................................................... 61
- 3 -
C++Test 测试工具指导书
一.C++Test 概述
C++Test 是一个 C/C++单元测试工具,自动测试任何 C/C++类、函数或部件,而不需要
您编写一个测试用例、测试驱动程序或桩调用。C++Test 能够自动测试代码构造(白盒测试)、
测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试)。C++Test 是一个易于使
用的产品,能够适应任何开发生命周期。通过将 C++Test 集成到开发过程中,您能够有效地
防止软件错误,提高代码的稳定性,并自动化单元测试技术(这是极端编程过程的基础)。
·支持平台
Windows2000,WindowsNT,Linux
·支持编译器
VC 6.0 GNU,VC7.0 GNU(Windows2000/NT)
GCC(Linux)
功能描述:
·静态测试
C++Test 内 嵌 了 业 界 最 出 名 的 Effective C++(epcc) 、 More Effective C++(mepcc) 、
meyer-klaus(mk)以及 Universal Code Standard(ucs)规范。同时,它也集成了由 parasoft 累积出
来的一些规范。静态测试中,C++Test 会对代码进行详尽的扫描,验证代码中是否存在和这
些规范相冲突的地方,尽快的发现一些简单或低级错误,避免由它们带来的集成扩散。
·动态测试(白盒测试)
C++Test 提供了一种有效并且高效的方法执行白盒测试。C++Test 完全自动执行所有的
白盒测试过程,自动生成和执行精心设计的测试用例。自动标记任何运行失败,并以一种简
单的图示化结构显示。然后自动保存这些测试用例,能够方便地用于以后的回归测试。
由于 C++Test 能够自动生成桩函数,或允许你加入自己的桩函数,因此它能够测试引用
外部对象的类。换句话说,C++Test 能够运行任何一个或一组类,并自动生成和执行一组测
试用例,它们被设计成能够发现尽可能多的错误。
C++Test 允许你定制白盒测试用例的生成,和在什么层次上(项目、文件、类或方法)
执行测试。
·动态测试(黑盒测试)
C++Test 通过自动化黑盒测试的大部分操作,减轻了这类测试的负担。
你可以简单地输入测试用例输入,然后让 C++Test 运行测试用例并自动确定实际的输出
结果。如果结果正确,不需要其它动作。如果结果不正确,你可以输入预期的输出结果。这
样比手工输入每个测试用例的结果更快更容易。
C++Test 自动设计了一组广谱的白盒测试用例。当使用这些测试用例在黑盒测试时,你
只需简单地观察实际的输出结果,然后对任何不正确的结果输入预期的值。当你需要输入或
修改测试用例时,你可以在 C++Test 自动生成的测试用例框架种简单地键入相应的值。这将
显著地加快建立测试用例的过程。
·回归测试
C++Test 完全自动化与回归测试有关的所有步骤。C++Test 首次测试某个类时,自动保
存其测试和测试参数。当需要执行回归测试时,你可以打开合适的项目和文件,运行所有原
来的白盒和黑盒测试用例;C++Test 会自动运行完全相同的测试用例和测试参数,并告之发
现的任何问题。这意味着你能够立即知道修改是否引入了任何错误。
- 4 -
C++Test 测试工具指导书
二.安装说明
注意:
在安装 C++Test 之前,一定要先安装好 Microsoft Visual C++ (6.0 或 .NET)。并且
关闭 Microsoft Visual C++。
安装源程序:C++Test-21_jre.exe
具体操作主要分三步走:
第一步:打开安装源程序,同普通的 windows 应用程序一样,选择安装路径,
完成安装。
第二步:从桌面或者菜单打开 C++Test,将弹出类似于下面的一个窗口:
这里的 machine ID 就是 C++Test 和主机绑定的信息。这个 machine ID 需交给 parasoft,
来申请 license。而由于 license 的种类不同,可以分为 local license(单机版)和 net
license(网络版)。
第三步:将相应的 license 和 expire date 粘贴到相应的位置,如果信息正确,
系统将提示 license ok。如果信息不正确,系统将提示 wrong license。输入正确的
license,打开 C++Test,就可以进入 C++Test 的用户界面了。
C++Test 安装完毕后,自动和 Microsoft Visual C++集成,在 Microsoft Visual C++
工具栏上显示如下按钮:
- 5 -
C++Test 测试工具指导书
其中: Launch C++Test GUI :打开 C++Test 界面;
Static Analysis (File) :执行静态测试;
Dynamic Analysis (File) :执行动态测试、回归测试;
Complete Analysis (File) :自动导入 Microsoft Visual C++当前打开的文件到
C++Test,编译测试用例,执行静态和动态测试;
Complete Analysis (Project) :自动导入 Microsoft Visual C++当前打开的工程
到 C++Test,编译测试用例,执行静态和动态测
试;
Stop :停止测试。
三.界面说明
启动 C++Test
可以从 Microsoft Visual C++上的 Launch C++Test GUI 按钮启动 C++Test,也可以
直接启动 C++Test.,启动后,进入 C++Test 界面。
- 6 -
C++Test 测试工具指导书
1. 菜单栏:
File 菜单
New Project :创建新的测试项目。可以是空的项目,也可以是已经存在的
Microsoft Visual C++项目。
- 7 -
C++Test 测试工具指导书
◆ Open Project :打开项目。
◆ Close Project :关闭项目。
◆ Save Project :保存项目。
◆ Save project As :项目另存为。
◆ Open File(s) :打开文件。
◆ Close File(s) :关闭文件。
◆ Close All File(s) :关闭所有的文件。
◆ Import :从其它项目、用户或第三方库导入测试用例或测试对象。
◆ Export :导出测试用例或测试对象到其它项目、用户或第三方库。
◆ Print Report :打印测试报告。
◆ Print Preview :打印预览。
◆ Generate HTML Report :生成 HTML 文件格式的报告。
◆ Recent Files :最近打开的文件。
◆ Recent Project :最近打开的项目。
◆ Exit :退出。
Edit 菜单
Edit Source :打开项目树面板中选中的文件。以何种编译器打开需要在下面设置
- 8 -