收藏 分销(赏)

ParasoftCTest操作基础手册.doc

上传人:丰**** 文档编号:3027266 上传时间:2024-06-13 格式:DOC 页数:77 大小:6.83MB
下载 相关 举报
ParasoftCTest操作基础手册.doc_第1页
第1页 / 共77页
ParasoftCTest操作基础手册.doc_第2页
第2页 / 共77页
ParasoftCTest操作基础手册.doc_第3页
第3页 / 共77页
ParasoftCTest操作基础手册.doc_第4页
第4页 / 共77页
ParasoftCTest操作基础手册.doc_第5页
第5页 / 共77页
点击查看更多>>
资源描述

1、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三设置测试配置(tes

2、t 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+T

3、est能够自动测试代码结构(白盒测试)、测试代码功效性(黑盒测试)和维护代码完整性(回归测试)。C+Test是一个易于使用产品,能够适应任何开发生命周期。经过将C+Test集成到开发过程中,您能够有效地预防软件错误,提升代码稳定性,并自动化单元测试技术(这是极端编程过程基础)。 特征 即时测试类/函数 支持极端编程模式下代码测试 自动建立类/函数测试驱动程序和桩调用 自动建立和实施类/函数测试用例 提供快速加入和实施说明和功效性测试框架 实施自动回归测试 实施部件测试(COM)优点 帮助您立即验证类功效性和结构 将您从编写测试驱动程序、桩和测试用例繁重工作中解放出来 自动化极端编程和其它编程模

4、式单元测试过程 使得您能够实现和实施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, , XP Supported Compilers:Microsoft Visual C+

5、6.0, .NET, or .NET , 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+

6、 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需交给Pa

7、rasoft代理商,来申请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

8、传统开启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_6.0.1.4.sh到cpptest目录下5 在图形界面下用utest用户登录6 在Terminal tool中进入/home/utest/cpp

9、test目录7 实施安装cpptest_linux_6.0.1.4.sh(或./ cpptest_linux_6.0.1.4.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

10、四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(剖析)这个源程序,分析出此文件文件结构。在源代码窗口能够看到我们所测试代码,界面很友好,当选择代码时,被选择代码也会以蓝色块形式出现。而且,当我们进行了静态分析和动态分析时,这里我们也能够很直观观察到静态分析和动态分析结果。代码左侧红色精

11、灵帽表示静态分析时出现问题所在,黄色小齿轮则表示动态分析时出现问题所在。点击对应地方,会出现对问题一个简单描述。2静态测试在向右三角型旁边下拉箭头,选择内置编码规则项目。C+Test将自动完成对源代码静态测试,也就是我们所说代码走查,走查所用到规范能够在静态测试标签rule manage下看到。在静态分析栏中Results标签是对静态分析结果一个罗列。每个红色精灵帽全部代表一个违规行为,而它旁边数字则代表测试代码中出现这种违规次数。紧接着字母表明违规行为严重等级。再后面就是对这条规范大致描述和规则编号。而标签Rules Manager则是对这些规则管理,当用户需要使用某条规则时候,只需要在对应

12、规则左侧方框内打上勾就表明选择了该条规则。而当用户不需要某条规则检验时候,只需要去掉对应规则勾就能够了。下图,右侧就是静态测试(代码走查)结果。每条违规信息包含对违规描述,该错误共发生次数和相对应具体位置。而下面rule desription则是对这条规则一个比较具体描述。顶层文件夹后面“I=4 PV=1 V=33”描述是整个对违规信息统计。I表示information,通知行为PV表示possible violation,可能违规行为V表示violation,违规行为PSV表示possible servere violation,可能严重违规行为SV表示servere violation,严

13、重违规行为。 3动态测试在向右三角型旁边下拉箭头,选择内置白盒测试。C+Test将自动完成代码动态测试。能够从各个层面上(单个测试用例,整个函数测试用例,整个代码测试用例)去看相对应代码覆盖率。操作时候,只需要右击对应层次(比如一个测试用例),选择show coverage,就能够看到对应覆盖率了。在动态测试中Test Case/Results栏中,关键是对测试用例一个总体管理。在这里,全部测试用例状态全部一目了然,绿色表示成功,红色表示失败。用户能够自己添加或修改测试用例。而Stub Tables栏则是对桩函数管理,Suppressions则是对测试对象一个管理。比如,上面Data类有很多个

14、组员函数,当用户并不想全部全部测,而只是测其中多个。这个时候就能够经过Suppressions进行选择。除此之外,上面Tree filter还提供强大滤波器功效,能够让用户愈加好关注她们焦点,比如只看最近一次测试失败用例。下图,右侧就是对动态测试一个整体描绘。列举了全部测试用例,而且用颜色来区分成功和失败测试用例,绿色代表成功经过了测试用例,而红色代表没有经过也就是失败了测试用例,对于每个错误测试用例全部有一个大致描述。每个测试用例或各个节点上全部做到了对应覆盖率信息,包含了LC(语句覆盖),BBC(块覆盖),PC(路径覆盖),DC(决议覆盖),MCDC(多条件决议覆盖)和CC(条件覆盖)。另

15、外,上面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+ .Net project文件。菜单File - New Project 出现下面界面1 选择Import VC+ 6.0 pr

16、oject 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+.Net)三设置测试配置(test configuration )C+Test 6.0能够选择不一样测试配置选项对一个工程、文件

17、进行测试。测试配置:是一系列编码规则、单元测试用例生成规则组合,决定要测试什么编码规则,怎样生成测试用例。菜单 Tests - Test Configurations 打开测试配置界面。1 新建一个测试配置:选择project - 鼠标右键 New Configuration2 Analysis Flow 决定是否要做编码规则测试和单元测试3 Analysis Settings 包含Coding Standards和Unit Testing。其中Coding Standards 选择需要规则。打选择规则4 Unit Testing 中Types设置不一样数据类型在生成测试用例取值,能够增加某种

18、数据类型在生成测试用例时取值。比如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=

19、33”描述是整个对违规信息统计。2下面每个小红帽 表示一条违例规则。前面数字表示违反次数,紧接着是严重程度,然后是此规则简单描述。每条违规信息包含对违规描述,该错误共发生次数和相对应具体位置。而下面rule desription则是对这条规则一个比较具体描述。3Tree filter:能够按严重程度分类显示。4Coding StandardsSuppressions能够按严重程度,类,文件等条件决定是否要显示测试结果。下图中对Violation类型编码规则测试结果不显示5不显示Violation类型测试结果五测试用例分析用C+Test做单元测试,最关键步骤是分析测试用例。假如这步没有做好,你会

20、认为C+Test不适合你们;假如做好了,你单元测试就做好了。用C+Test做单元测试,关键在分析测试用例,而不是设计测试用例。C+Test自动生成测试用例是白盒测试用例。假如你要用C+Test做黑盒测试,你需要手工增加黑盒测试用例或修改白盒测试用例使之成为黑盒测试用例,要求:要正确地分析测试用例,必需对被测函数有清楚了解。1选择Examplescomplex.cpp文件2选择工具条中向右三角型进行进行单元测试3选择一个测试用例,然后按“Edit”按扭进入 测试用例编辑界面4分析测试用例Arguments:测试前函数参数值Arguments Post:测试后函数参数值Return:测试前设定函数

21、返回值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 operat

22、ors 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 C

23、omplex: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)我们测试

24、用例是针对 函数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组

25、员变量_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调试测试用例选择某个测试用例

26、 - 鼠标右键 - Debug Selected Test Case(s) - 打开VC+.Net (默认编译器)调试界面。注意:对VC+6.0好象无法进行调试。六Data Source假如一个函数有一系列相同输入,比如协议类函数。这个时候能够把这一系列相同输入保留成一个excel文件,CSV文件或数据库表。我们称之为Data Source。这么当C+Test进行单元测试时候,能够依据Data Source 内容生成一系列测试用例。1打开C+Test 安装目录ExamplesDataSourcedsexample.cpp2菜单 project - project configurations

27、- 打开工程配置界面。选择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 Co

28、lumns”显示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,就必

29、需对函数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)

30、返回true or false(下面返回值为true),保留修改后桩函数。5进行单元测试。打开C+Test测试用例编辑界面。不管输入mod2()函数输入参数是什么值,它返回值应该是1,这是因为桩函数odd()返回值为true。八导入导出测试用例当你测试某个单元,使用部分特殊或自己定义测试用例。而其它人也一样测试此单元,你能够经过测试用例Import和Export功效,导入或导出特定测试用例。生成一个XML文件。1 导出测试用例:选择某个测试用例或某个函数 - 鼠标右键 - 选择 Export (或从菜单File - Export)2导入测试用例:选择某个函数 - 鼠标右键 - 选择 Impor

31、t(或从菜单File - Import)九Test Objects当你测试某个类一个单元时,使用部分特殊或自己定义类结构对象。而测试一个类中其它函数或其它人也需要此结构对象时候,你能够经过Test Objects例Import和Export功效,导入或导出特定Test Objects。生成一个XML文件。一个Test Objects可能包含一个或多个组员变量,而且这些组员变量有特定值。1 Store Object:在图形化测试用例界面中 - 某个对象 - 鼠标右键 -选择 Store Object)2Use Object:在图形化测试用例界面中 - 某个对象 - 选择右边框中Data 对象一个

32、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 - Cove

33、rage 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条

34、件覆盖4覆盖率显示颜色:绿色:=80%黄色:=40% 同时 80%红色: Show Coverage打开源文件覆盖率下图中第一列数字: 行标第二列数字:代码被实施此数目:在目前行上有额外覆盖率信息代码蓝色表示实施过十一回归测试回归测试:先做单元测试 -保留单元测试用例 - 修改源代码 - 用原来测试用例测试修改后代码1打开Examplecpptest_demo.cpp。按进行单元测试。结果以下2修改源代码,并保留void Data:copyToBuffer(char * from) / argument should be validated - exception thrown if NUL

35、L 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 instea

36、d 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 - Grou

37、p Reporting System - Settings。在下面界面中输入GRS所在服务器,然后按“Check”按扭。检测GRS设置是否正确(前提是要正确安装和运行GRS)。3设置源代码编辑器和HTML浏览器菜单 Settings - Customize 打开设置界面。选择 General。Editors 选择查看源代码程序。HTML Browser 设置查看HTML测试结果浏览器。第四章 RuleWizard定制规则一开启RuleWizard从C+Test主界面 菜单Tools - RuleWizard (License中必需包含有RuleWizard功效选项)。出现下面界面RuleWiz

38、ardRuleWizard界面说明二打开一个现有规则选择RuleWizard 菜单 File - Open 打开(C+Testrulesnaming_conventionsNameInt.rule,此规则意思是:全部int 变量必需以i开头)在C+Test安装目录子目录rules 下有很多规则空白处鼠标右键 - properties能够查看此规则属性Rule ID:规则ID,任何一个规则必需有唯一IDHeader:此规则简单描述Author:作者Severity:规则等级Description:规则例子规则等级包含information通知(I)possible violation可能违规(P

39、V)violation违规(V)possible servere violation可能严重违规(PSV)servere violation严重违规(SV)三设计一个新规则1 菜单New打开新规则界面2 选择节点 C,C+ - Declarations - Functions。然后按“OK”3 设置规则内容:选中Functions节点 - 鼠标右键 - Names(s)在RegExp 中输入A-Z,而且选择Negate。表示:”函数名称必需大写字母开头,假如不是则报错”选择Functions节点 鼠标右键 - 选择IsOperator(F/T)。表示:“函数不是操作符号”双击IsOperato

40、rT开关,自动变成F用一样方法分别增加IsConstructor和IsDestructor。而且全部设置为F。表示:“函数不是结构函数,也不是析构函数”4 设置检验结果显示标题,选择节点Functions - 鼠标右键 - Create Output - Display在Message中输入“A function name should begin with a capital letter” 函数必需大写字母开头5 设置规则属性在空白处 - 鼠标右键 - 选择PropertiesProperties Tab 中Rule ID:规则ID号,每个规则全部有一个唯一ID号Header:规则显示标题Author:作者Severity:规则等级Description:规则例子6 保留规则到自己目录(比如C+Testrulesmyrule,其中myrule目录是自己规则目录),给规则取个好了解名字FunctionsNameCapital.rule四C+Test中导入自定义规则打开测试配置界面在一个Test Configuration(比如User - New Configuration),选择Analysis Settings Tab - Coding Standards Tab -选择根目录- 鼠标右键 - Add Rule Set.找到自定义规则目录选择自定义规则

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服