已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+Test介绍C+Test介绍修订历史记录日期版本说明作者C+Test 6.0C+Test原理,使用介绍,RuleWizard定制规则目录第一章 C+Test 特性4第二章 C+Test 使用6一安装说明61Windows下安装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+ 6.0, .NET, or .NET 2003, GNU GCC 2.95x or 3.x. Cygwin GCC 2.95.x, 3.2.x, 3.3.xMingw GCC 2.95.x, 3.2.x, 3.3.xUNIX Supported Platforms:Linux kernel 2.4 (with System V IPC), glibc 2.2, Pentium processorSolaris 7, 8, 9, UltraSPARC processor Supported Compilers:GNU GCC 3.2.x,GNU GCC 3.3.x,GNU GCC 3.4.xSun C+ 5.3 (Sun Forte C+ 6 Update 2 for SPARC Solaris), Sun C+ 5.5 (Sun ONE Studio 8)第二章 C+Test 使用一安装说明1Windows下安装打开安装源程序,同普通的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 9.0及以上版本,建议安装开发工作站,同时需要图形界面支持2 在图形界面下建立组gtest(或其他)3 在图形界面下建立用户utest(或其他),并且属于组gtest。utest主目录是/home/utest。用bash。4 在/home/utest/下建立目录cpptest,并且拷贝cpptest_linux_.sh到cpptest目录下5 在图形界面下用utest用户登录6 在Terminal tool中进入/home/utest/cpptest目录7 执行安装cpptest_linux_.sh(或./ cpptest_linux_.sh)。安装程序是脚本安装程序,没有图形安装界面。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 filter过滤器功能可以帮助用户迅速察看到自己关心的焦点或错误。4生成报表选择file/generate report,根据对报表的需求,选择适当的报表内容种类(例如dynamic analysis1,coverage statistic1)。生成一个HTML格式的报表。第三章 C+Test高级功能一导入VC+工程(Import VC+ project)C+Test 6.0可以直接导入VC+ 6.0 project,VC+ .Net project和VC+ .Net2003 project文件。菜单File - New Project 出现下面的界面1 选择Import VC+ 6.0 project 2 输入测试工程文件名称(project name)3 选择VC+ 6.0工程文件.dsp(VC+ 6.0 project files)二选择编译器(project configuration)如果你同时安装了VC+6.0 和VC+.Net的话。你必须选择你需要的编译器。否则C+Test6.0会使用默认的编译器。菜单 Project - Project Configurations 选择VC+6.0为当前测试工程的编译器(下面界面默认的C+Test使用编译器是VC+.Net2003)三设置测试配置(test configuration )C+Test 6.0可以选择不同的测试配置选项对一个工程、文件进行测试。测试配置:是一系列编码规则、单元测试用例生成规则的组合,决定要测试什么编码规则,如何生成测试用例。菜单 Tests - Test Configurations 打开测试配置界面。1 新建一个测试配置:选择project - 鼠标右键 New Configuration2 Analysis Flow 决定是否要做编码规则测试和单元测试3 Analysis Settings 包括Coding Standards和Unit Testing。其中Coding Standards 选择需要的规则。打选择规则4 Unit Testing 中Types设置不同数据类型在生成测试用例的取值,可以增加某种数据类型在生成测试用例时的取值。比如char 类型可以增加特定的字符A5 设置一个被测单元自动生成测试用例的最大数目(默认是50个)6 设置新增加的测试设置为活动7 用新增加测试设置进行测试。在向右三角型旁边的下拉箭头,选择新增加的测试设置。四编码规则测试结果分析下图,右侧就是静态测试(代码走查)的结果。I表示information,通知行为PV表示possible violation,可能的违规行为V表示violation,违规行为PSV表示possible servere violation,可能的严重违规行为SV表示servere violation,严重违规行为。1顶层的文件夹后面的“I=4 PV=1 V=33”描述的是整个的对违规信息的统计。2下面的每个小红帽 表示一条违例规则。前面的数字表示违反次数,紧接着是严重程度,然后是此规则的简单描述。每条违规信息包括对违规的描述,该错误共发生的次数以及相对应的具体位置。而下面的rule desription则是对这条规则的一个比较详细的描述。3Tree filter:可以按严重程度分类显示。4Coding Standards的Suppressions可以按严重程度,类,文件等条件决定是否要显示测试结果。下图中对Violation类型的编码规则测试结果不显示5不显示Violation类型的测试结果五测试用例分析用C+Test做单元测试,最重要的步骤是分析测试用例。如果这步没有做好,你会觉得C+Test不适合你们;如果做好了,你的单元测试就做好了。用C+Test做单元测试,重点在分析测试用例,而不是设计测试用例。C+Test自动生成的测试用例是白盒测试用例。如果你要用C+Test做黑盒测试,你需要手工增加黑盒测试用例或修改白盒测试用例使之成为黑盒测试用例,要求:要准确地分析测试用例,必须对被测函数有清楚的了解。1选择Examplescomplex.cpp文件2选择工具条中向右三角型进行进行单元测试3选择一个测试用例,然后按“Edit”按扭进入 测试用例编辑界面4分析测试用例Arguments:测试前的函数的参数值Arguments Post:测试后的函数的参数值Return:测试前设定的函数的返回值Pre-Conditions This:测试前对象构造值,特别是构造对象时给成员变量设定的的值Pre-Conditions Externals:测试前全局变量值Post-Conditions This:测试后对象构造值,特别是构造对象时给成员变量设定的的值Post-Conditions Externals:测试后全局变量值Execution Result:预期的测试结果。是正常返回、Assert失败,还是各种异常返回A) 首先让我们先看看源代码/complex.cpp/ This example illustrates how C+Test works with overloaded operators and constructorsclass Complex public: Complex(float re = 0, float im = 0) : _re(re), _im(im) Complex operator+(const Complex&); Complex operator-(const Complex&);private: float _re; float _im;Complex Complex:operator+(const Complex& c) return Complex(this-_re + c._re, this-_im + c._im);Complex Complex:operator-(const Complex& c) return Complex(this-_re - c._re, this-_im - c._im);Complex testComplexOperators(Complex& a, Complex& b) Complex zero; Complex neg_a = zero - a; Complex neg_a_sum_b = neg_a - b; return a + b + neg_a_sum_b; /this function should always return complex zero valueB)我们的测试用例是针对 函数Complex Complex:operator+(const Complex& c)的Arguments: 表示函数参数是一个Complex& c,这个参数对象c构造的时候给c成员变量 float _re = 1.0;float _im = -1.0Arguments Post: 表示函数测试后。这个参数对象c在测试后c成员变量 float _re = 1;float _im = -1Return:表示返回对象Complex,它的值应当 成员变量float _re = 自身的成员变量_re + 输入对象c的成员变量_re(1);float _im =自身的成员变量_im + 输入对象c的成员变量_im(0);注意:这里的返回值是错误的,正确的是 _re =3;_im = -3才对。此测试用例测试结果应当是错误的(变红)。Pre-Conditions:表示进行单元测试的时候,类成员变量的值float _re = 2;float _im = -2Post-Conditions:表示在测试后。类成员变量的值float _re = 2;float _im = -2Execution Result:表示测试结束是Normal Return。正常结束,而不是异常结束C)上面测试用例测试后的结果是失败的 预期的结果是(_re=1,_im=0)。实际的结果是(_re=3,_im=-3)5调试测试用例选择某个测试用例 - 鼠标右键 - Debug Selected Test Case(s) - 打开VC+.Net 2003(默认编译器)调试界面。注意:对VC+6.0好象无法进行调试。六Data Source如果一个函数有一系列相似的输入,比如协议类函数。这个时候可以把这一系列相似的输入保存成一个excel文件,CSV文件或数据库的表。我们称之为Data Source。这样当C+Test进行单元测试的时候,可以根据Data Source 的内容生成一系列的测试用例。1打开C+Test 安装目录ExamplesDataSourcedsexample.cpp2菜单 project - project configurations - 打开工程配置界面。选择Data Sources。按“Add”按扭增加Data Source文件。3输入Data Source名称4选择Data Source类型为 CSV Data Source 4选择C+Test 安装目录ExamplesDataSource data.csv 文件。/data.csv 的内容LOWER;UPPER;TESTED;ANSWER3;8;5;TRUE3;8;1;FALSE4;9;10;FALSE2;3;3;FALSE2;3;2;FALSE-1;1;0;TRUE5选择data.csv文件的分割符号。要根据实际的.csv文件分割符号选择 或; 。6按按扭“Show Columns”显示Data Souce文件 的列名称。类似excel表格中的列头名称。7根据设置的Data Source 生成测试用例。选择Unit Testing - 选择函数 isBetween - “Add”,增加测试用例8选择刚才设置好的Data Source配置 csv1。要在Use Data Souce前面打。然后按“Show Columns”9在输入、输出参数和返回值中选择对应的列。10测试用例按Data Source文件自动生成。不同于一般情况下生成的测试用例七桩函数设置对于单元测试,如果一个函数A调用了其他函数B(桩函数),而函数B由于还没有实现或其他原因无法使用。要正确测试函数A,就必须对函数B(桩函数)进行设置特定的返回值供测试函数A使用1打开C+Test自带的Examples stubs.cpp。2选择stubs.cpp - 鼠标右键 - Read Symbols解析stubs.cpp。 从下面的界面可以看到mod2()函数调用了odd()函数。但是odd()函数没有实现。要对测试mod2的所以必须实现桩函数odd()。3选择 Unit Testing - 选择Stub Configuration - 选择odd()函数 - 鼠标右键 - add user definition。4打开stub 设置界面。人为增加代码 return ture;,让函数 bool odd(int)返回true or false(下面返回值为true),保存修改后的桩函数。5进行单元测试。打开C+Test测试用例编辑界面。不论输入mod2()函数的输入参数是什么值,它的返回值应当是1,这是因为桩函数odd()返回值为true。八导入导出测试用例当你测试某个单元,使用一些特殊或自己定义的测试用例。而其他人也同样测试此单元,你可以通过测试用例的Import和Export功能,导入或导出特定的测试用例。生成一个XML文件。1 导出测试用例:选择某个测试用例或某个函数 - 鼠标右键 - 选择 Export (或从菜单File - Export)2导入测试用例:选择某个函数 - 鼠标右键 - 选择 Import(或从菜单File - Import)九Test Objects当你测试某个类的一个单元时,使用一些特殊或自己定义的类构造对象。而测试一个类中的其他函数或其他人也需要此构造对象的时候,你可以通过Test Objects例的Import和Export功能,导入或导出特定的Test Objects。生成一个XML文件。一个Test Objects可能包含一个或多个成员变量,而且这些成员变量有特定的值。1 Store Object:在图形化测试用例界面中 - 某个对象 - 鼠标右键 -选择 Store Object)2Use Object:在图形化测试用例界面中 - 某个对象 - 选择右边框中的Data 对象的一个Test Object -鼠标右键 -选择 Use Object)测试用例的对象Data的值已经变成为Test Object的值1 导出Test Object:选择某个Test Object或某个对象 - 鼠标右键 - 选择 Export (或从菜单File - Export)2 导入Test Object:选择某个对象 - 鼠标右键 - 选择 Import(或从菜单File - Import)十覆盖率分析1 可以显示工程、类、函数和单个测试用例的覆盖率。当分别选择工程、类、函数和单个测试用例的时候,在下边的Coverage Statistic Tab中显示相应的覆盖率2从菜单Coverage - Coverage Source可以选择覆盖率来源Any:包括自身函数和其他函数调用此函数产生的Own:函数测试用例产生的External:其他函数的测试用例调用此函数产生的3覆盖率分:Line Coverage:语句覆盖Basic Block Coverage:没有包含分支,控制流转的一段代码覆盖Path Coverage:一条从函数入口到出口的路径覆盖Decision (Branch) Coverage:分支覆盖Modified Condition/Decision Coverage (MC/DC):嵌套boolean表达式的组合覆盖Condition Coverage:boolean表达式中的各个boolean条件覆盖4覆盖率显示颜色:绿色:=80%黄色:=40% 同时 80%红色: Show Coverage打开源文件覆盖率下图中第一列数字: 行标第二列数字:代码被执行的此数目:在当前行上有额外的覆盖率信息代码蓝色表示执行过十一回归测试回归测试:先做单元测试 -保存单元测试用例 - 修改源代码 - 用原来的测试用例测试修改后的代码1打开Examplecpptest_demo.cpp。按进行单元测试。结果如下2修改源代码,并保存void Data:copyToBuffer(char * from) / argument should be validated - exception thrown if NULL passed / off by one error - should use instead of = const unsigned SZ = getSize(); for (int i = 0; i = SZ; + i) *(_data + i) = *(from + i); _dataSZ - 1 = 0;修改为void Data:copyToBuffer(char * from) / argument should be validated - exception thrown if NULL passed / off by one error - should use instead of =const unsigned SZ = getSize();if (NULL!=_data & NULL!=from) for (int i = 0; i Customize 打开设置界面。选择 Team Configuration Manager。在下面的界面中输入TCM所在的服务器,然后按“Check”按扭。检测TCM设置是否正确。(前提是要正确安装和运行TCM)。2设置GRS GRS是一个全局报告系统,它自动从C+Test.Jtest的测试工具中收集测试数据。并且按不同的角色,显示不同的内容。菜单 Settings - Customize 打开设置界面。选择 Test - Group Reporting System - Settings。在下面的界面中输入GRS所在的服务器,然后按“Check”按扭。检测GRS设置是否正确(前提是要正确安装和运行GRS)。3设置源代码编辑器和HTML浏览器菜单 Settings - Customize 打开设置界面。选择 General。Editors 选择查看源代码的程序。HTML Browser 设置查看HTML测试结果的浏览器。第四章 RuleWizard定制规则一启动RuleWizard从C+Test主界面 菜单Tools - RuleWizard (License中必须包含有RuleWizard的功能选项)。出现下面的界面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度远程英语教育兼职外教合同3篇
- 二零二五年酒店员工福利待遇转让合同示例3篇
- 二零二五版寄卖合同范本:农产品寄售协议书3篇
- 二零二五版植物营养肥料试验与研究服务合同3篇
- 二零二五年度酒类批发市场租赁销售合同2篇
- 二零二五年度耕地承包与农村土地承包权登记发证合同2篇
- 二零二五年度红色文化遗址保护与修复合同3篇
- 二零二五版趸购电合同:电力批发市场交易合同2篇
- 二零二五版高端社区地下车库经营权转让合同3篇
- 二零二五年度智能化办公大楼安全防范系统合同2篇
- 【传媒大学】2024年新营销
- 乳腺癌的综合治疗及进展
- 【大学课件】基于BGP协议的IP黑名单分发系统
- 2025届广东省佛山市高三上学期普通高中教学质量检测(一模)英语试卷(无答案)
- 自身免疫性脑炎课件
- 人力资源管理各岗位工作职责
- 信阳农林学院《新媒体传播学》2023-2024学年第一学期期末试卷
- 2024建筑公司年终工作总结(32篇)
- 信息安全意识培训课件
- 2024年项目投资计划书(三篇)
- 配电安规课件
评论
0/150
提交评论