
ParasoftCTest操作手册可编辑范本.doc
72页C++Test介绍C++Test介绍修订历史记录日期版本说明作者C++Test 6.0C++Test原理,使用介绍,RuleWizard定制规则目录第一章 C++Test 特性4第二章 C++Test 使用6一.安装说明61.Windows下安装62.申请License6二.启动C++Test71.从VC++里启动C++Test72.传统启动C++Test8三.Linux下安装及启动9四.C++Test快速测试101.打开被测文件102.静态测试123.动态测试144.生成报表16第三章 C++Test高级功能19一.导入VC++工程(Import VC++ project)19二.选择编译器(project configuration)20三.设置测试配置(test configuration )21四.编码规则测试结果分析26五.测试用例分析28六.Data Source33七.桩函数设置40八.导入导出测试用例43九.Test Objects45十.覆盖率分析48十一.回归测试52十二.其他设置551.设置TCM552.设置GRS563.设置源代码编辑器和HTML浏览器57第四章 RuleWizard定制规则59一.启动RuleWizard59二.打开一个现有的规则60三.设计一个新规则62四.C++Test中导入自定义规则71第一章 C++Test 特性C++Test是一个C/C++单元测试工具,自动测试任何C/C++类、函数或部件,而不需要您编写一个测试用例、测试驱动程序或桩调用。
C++Test能够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试)C++Test是一个易于使用的产品,能够适应任何开发生命周期.通过将C++Test集成到开发过程中,您能够有效地防止软件错误,提高代码的稳定性,并自动化单元测试技术(这是极端编程过程的基础) 特性· 即时测试类/函数 · 支持极端编程模式下的代码测试 · 自动建立类/函数的测试驱动程序和桩调用 · 自动建立和执行类/函数的测试用例 · 提供快速加入和执行说明和功能性测试的框架· 执行自动回归测试 · 执行部件测试(COM)优点· 帮助您立即验证类功能性和构造 · 将您从编写测试驱动程序、桩和测试用例的繁重工作中解放出来 · 自动化极端编程和其它编程模式的单元测试过程 · 使得您能够实现和执行100%的代码覆盖性 · 支持紧急和短线开发项目 · 降低调试和维护时间 · 改善应用的可靠性 · 防止简单错误的扩大 系统要求最小系统要求:· Pentium class processor 800MHz· 512 MB RAM (1024MB is recommended)· 150 MB free disk space for C++Test installation其他要求:· 保留足够的磁盘空间供测试使用。
支持平台Windows• Supported Platforms:Windows NT, 2000, XP• Supported Compilers:Microsoft® Visual C++® 60, .NET®, or NET 2003®, GNU GCC 295x or 3.x Cygwin GCC 2x, 3.2.x, 33.xMingw GCC 2.95x, 32.x, 3xUNIX• Supported Platforms:Linux kernel 24 (with System V IPC), glibc 2.2, Pentium processorSolaris 7, 8, 9, UltraSPARC processor• Supported Compilers:GNU GCC 3.2x,GNU GCC 3.3.x,GNU GCC 3xSun® C++ 53® (Sun Forte C++ 6 Update 2 for SPARC Solaris), Sun® C++ 55® (Sun ONE Studio 8)第二章 C++Test使用一.安装说明1.Windows下安装打开安装源程序,同普通的windows应用程序一样,选择安装路径,完成安装。
2.申请License1.申请License从桌面或者菜单打开C++Test,将弹出类似于下面的一个要求输入密码的窗口: 按“是(Y)” 进入.这里的machine ID就是C++Test和主机绑定的信息或在进入C++Test主界面后,在菜单Help -〉 License… 可以同样打开下面的界面这个machine ID需交给Parasoft代理商,来申请license而由于license的种类不同,可以分为local license(单机版)和net license(网络版)2.输入License将相应的license和expire date粘贴到相应的位置,如果信息正确,系统将提示license ok如果信息不正确,系统将提示wrong license输入正确的license,打开C++Test,就可以进入C++Test的用户界面了二.启动C++Test1.从VC++里启动C++Test安装VC++后,再安装C++Test,VC++工具条里会自动地增加使用C++Test的按扭可以启动C++Test界面,或进行C++Test静态和动态测试2.传统启动C++Test开始 —〉 程序 —> C++Test,可以启动C++Test。
三.Linux下安装及启动1. 建议安装linux red hat 90及以上版本,建议安装开发工作站,同时需要图形界面支持2. 在图形界面下建立组gtest(或其他)3. 在图形界面下建立用户utest(或其他),并且属于组gtestutest主目录是/home/utest.用bash.4. 在/home/utest/下建立目录cpptest,并且拷贝cpptest_linux_6sh到cpptest目录下5. 在图形界面下用utest用户登录6. 在Terminal tool中进入/home/utest/cpptest目录7. 执行安装cpptest_linux_64.sh(或./ cpptest_linux_6.0.1安装程序是脚本安装程序,没有图形安装界面.C++Test将安装在/home/utest/cpptest目录下8. 进入/home/utest目录下.在.bash_profile文件中给环境变量PATH行后面增加 :/home/utest/cpptest/bin 然后保存9. 用户utest重新在图形界面下登录10. 在Terminal tool中输入c++test(或在图形界面下执行/home/utest/cpptest/bin/c++test程序).可以启动c++test四.C++Test快速测试1.打开被测文件(1) 打开C++Test,选择file/open file,选择C++Test安装目录下examples/cpptest_demo.cpp,这个cpp文件将出现在当前的project下.(2) 在当前project下,右击cpptest_demo.cpp,选择read symbols(读入符号表),此时C++Test将parse(剖析)这个源程序,分析出此文件的文件结构。
在源代码窗口可以看到我们所测试的代码,界面非常友好,当选择代码时,被选择的代码也会以蓝色块的形式出现.并且,当我们进行了静态分析和动态分析时,这里我们也可以非常直观的观测到静态分析和动态分析的结果代码左侧的红色精灵帽表示静态分析时出现问题的所在,黄色小齿轮则表示动态分析时出现问题的所在点击相应的地方,会出现对问题的一个简单描述2.静态测试在向右三角型旁边的下拉箭头,选择内置的编码规则项目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.动态测试在向右三角型旁边的下拉箭头,选择内置的白盒测试C++Test将自动完成代码的动态测试可以从各个层面上(单个测试用例,整个函数的测试用例,整个代码的测试用例)去看相对应代码的覆盖率操作的时候,只需要右击相应的层次(例如一个测试用例),选择show coverage,就可以看到对应的覆盖率了在动态测试中的Test Case/Results栏中,主要是对测试用例的一个总体管理在这里,所有的测试用例的状态都一目了然,绿色表示成功,红色表示失败用户可以自己添加或修改测试用例而Stub Tables栏则是对桩函数的管理,Suppressions则是对测试对象的一个管理例如,上面的Data类有很多个成员函数,当用户并不想全部都测,而只是测其中的几个。
这个时候就可以通过Suppressions进行选择.除此之外,上面的Tree filter还提供强大的滤波器功能,可以让用户更好的关注他们的焦点,例如只看最近一次测试的失败用例下图,右侧就是对动态测试的一个整体描绘列举了所有的测试用例,并且用颜色来区分成功和失败的测试用例,绿色代表成功通过了的测试用例,而红色代表没有通过也就是失败了的测试用例,对于每个错误的测试用例都有一个大致的描述每个测试用例或者各个节点上都做到了相应的覆盖率信息,包括了LC(语句覆盖),BBC(块覆盖),PC(路径覆盖),DC(决策覆盖),MCDC(多条件决策覆盖)以及CC(条件覆盖)此外,上面的tree filt。
