Parasoft-C Test操作手册资料_第1页
Parasoft-C Test操作手册资料_第2页
Parasoft-C Test操作手册资料_第3页
Parasoft-C Test操作手册资料_第4页
Parasoft-C Test操作手册资料_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++Test介名

修订历史记录

日期版本说明作者

C++Test6.0C++Test原理,运用介绍,

RuleWizard定制规则

书目

第一章c++Test特性..............................................................2

其次章c++Test运用..............................................................4

一.安装说明..................................................................4

1.Windows下安装......................................................4

2.申请License.......................................................................................................4

—>•启动C++T9st...............................................................................................................6

1.从VC++里启动C++Test....................................................................................6

2.传统启动C++Test...............................................................................................7

三.Linux下安装及启动......................................................8

四.C++Tcst快速测试........................................................9

1.打开被测文件........................................................9

2.静态测试............................................................II

3.动态测试...........................................................13

4.生成报表............................................................15

第三章C++Test高级功能.........................................................18

—.导入VC++工程(ImportVC++project)......................................................................18

二.选择编译器(projectconfiguration).........................................................................19

三.设置测试配置(testconfiguration)...........................................................................20

四.编码规则测试结果分析..................................................25

五.测试用例分析...........................................................27

六.DataSource...........................................................................................................32

七.桩函数设置.............................................................39

八.导入导出测试用例......................................................42

九.TestObjects............................................................................................................44

十.覆盖率分析..............................................................47

十一.回来测试.............................................................51

I-.其他设置..............................................................54

1.设置TCM...........................................................................................................54

2.设置GRS..........................................................................................................55

3.设置源代码编辑器和HTML阅读器....................................56

第四章RuleWizard定制规则......................................................58

一.启动RuleWizard.....................................................................................................58

二.打开一个现有的规则....................................................59

三.设计一个新规则........................................................61

四.C++Test中导入自定义规则..............................................70

第一章C++Test特性

C++Test是一个C/C++单元测试工具,自动测试任何C/C++类、函数或部件,而不须

要您编写一个测试用例、测试驱动程序或桩调用。C++Test能够自动测试代码构造(白盒测

试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回来测试)。C++Test是•个易

了运用的产品,能够适应任何开发牛.命周期。通过将C++Tcsl集成到开发过程中,您能够有

效地防止软件错误,提高代码的稳定性,并自动化单元测试技术〔这是极端编程过程的基础)。

特性

•即时测试类/困数

•支持极端编程模式下的代码测试

•自动建立类/函数的测式驱动程序和桩调用

•自动建立和执行类/函数的测试用例

•供应快速加入和执行说明和功能性测试的框架

•执行自动回来测试

•执行部件测试(COM)

优点

•帮助您马上验证类功能性和构造

•将您从编写测试驱前程序、桩和测试用例的繁重工作中解放出来

•自动化极端编程和其它编程模式的单元测试过程

•使得您能够实现和执行100%的代码覆盖性

・支持紧急和短线开发项目

•降低调试和维护时间

•改善应用的牢靠性

•防止简洁错误的扩大

系统要求

最小系统婴求:

•Pentiumclassprocessor800MHz

•512MBRAM(1024MBisrecommended)

•150MBfreediskspaceforC++Testinstallation

其他要求:

保留足够的磁盘空间供测试运用。

支持平台

Windows

,SupportedPlatforms:

WindowsNT,2(NX),XP

,SupportedCompilers:

Microsoft@VisualC++®6.0,.NET®,or.NET2023®,GNUGCC2.95xor3.x.

Cygwin

UNIX

,SupportedPlatforms:

Linuxkernel2.4(wilhSystemVIPC),glibc2.2,Pentiumprocessor

Solaris7,8,9,UltraSPARCprocessor

,SupportedCompilers:

Sun@C++5.3®(SunForteC++6Update2forSPARCSolaris),Sun©C++5.5®(Sun

ONEStudio8)

其次章C++Test运用

安装说明

1.Windows下安装

打开安装源程序,同一般的windows应用程序一样,选择安装路径,完成安

装。

2.申请License

1.申请License

从桌面或者菜单打开C++Test,将弹出类似于下面的一个要求输入密码的窗

口:

按“是(Y)”进入。这里的machineID就是C++Test和主机绑定的信息。

或在进入C++Test主界面后,在菜单Help->License…可以同样打开下面的

界面。

C++Test6.0Licenseconfiguration凶

MachineId:WIN32-2bbbib98

6Locallicense

Expirationdate:6881370

A79E3C021E92254F808514C480FFAE124D6D3C^J

Password:

CNetworklicense

Hostname:

Portnumber:2002|7default

Edition:SeverEdition三」

OKCheckCancelMore

这个machineID需交给Parasoft代理商,来申请license<,而由于license的种

类不同,可以分为locallicense(单机版)和netlicense(网络版)。

2.输入License

将相应的license和expiredale粘贴到相应的位置,假如信息正确,系统将提

示licenseok。假如信息不正确,系统将提示wronglicense。输入正确的license,

打开C++Tcst,就可以进入C++Tcst的用户界面了。

—・启动C++T©st

1.从VC++里启动C++Test

安装VC"后,再安装C"Test,VC"工具条里会自动地增加运用C3Test的按扭.可

以启动C++Test界面,或进行C++Test静态和动态测试。

2.传统启动C++Test

起先->程序->C++Test,可以启动C++Test。

三.Linux下安装及启动

1.建议安装linuxredhal9.0及以上版本,建议安装开发工作站,同时须要图形界面支持

2.在图形界面下建立组giesi(或其他)

3.在图形界面下建立用户uiesi(或其他),并且属于组gtestoutest主书目是/home/ulesi。用

bash0

4.在/honie/uiest/下建立书目cpptest,并且拷贝到cpptest书目下

5.在图形界面下用utesi用户登录

6.在Terminaltool中进入/home/utest/cpptest书目

7.执行安装(或安装程序是脚本安装程序,没有图形安装界面。C++Tesl将安装在

/home/utest/cpptest书目下

8.进入/home/utest书目下。在.bash_profile文件中给环境变量PATH行后面增

AlJ:/home/utest/cpptest/bin。然后保存

9.用户uiesi重新在图形界直下登录

10.在Terminaltool中输入c++test(或在图形界面卜,执行,home/utest/cpptest/bin/c++test

程序)。可以启动c++test

四.C++Test快速测试

1.打开被测文件

(1)打开C++Test,选择file/openfile,选择C++Test安装书目下

cxamplcs/cpptcst_dcmo.cpp,这个cpp文件将出现在当前的project下。

(2)在当前project下,右击cpptesjdcnio.cpp,选择readsymbols(读入符号

表),此时C++Test将parse(剖析)这个源程序,分析出此文件的文件结构。

Lriesc

Outpu|Met$aoes|

IB开闺句心GQRH“上方…|Ge"呼♦……司来…|⑶索..

Outp^|Met$aoes|

Voxkin9dUtccdcy:C:\Ftogi«iFiUs\Pax<softsC4*T«st\«x««ple>

3y»atcber.exe-cc«5>ilet-acronT>«R3VC**-7.1read-sy>boX5«Cs\\Docuient5gd

3・tx£n^f\\4in”U・SX\\CjT”tF,l”\\TeMp\\pg”ct5727aT^pO“\\PKoaue\\cppc・,jd・fcO.C8_0\\iy*bo],,X8_gjlH«・CU”

5toxe-co<ifig*Cs\\Docuient5皿d

SetUn^>\\Adbiniiuewx\\C>*TtitFlU>\\T»»p\\pid)tct5727an^>OiKX\PKO4uct\Scpptt«t_dtBO.cpf»_0\\Hb_d4nntd_iyiboU.ccj,r

read-in«Be8«C:\\C*ocu»ent3and5ettina5\\AdMini9txotox\\C**Te5tFile5\\TeMp\\pxoject57270T*pDir\SPioduct\\CF<>te3t_deBo.cw>_0\\iMae8.cw,

Processexitedwithcode0

UtchiogsymboldefinitionainXonitttiondone.

ApplyingstubsconfiguxationCotC:\PE09taMriJe5\Parasofc\C**Te5t\exaiple8\cpptest_deM0.cpp

Applyingstubsconfiguxedondone.

魏开弟讨电G符金今“山方…|。,。,..|呼3.|匕仇“|8所...|56心“|电东一I尔…II^C♦…54#XWg.di<59

在源代码窗口可以看到我们所测试的代码,界面特别友好,当选择代码时,

被选择的代码也会以蓝色块的形式出现。并且,当我们进行了静态分析和动态分

析时,这里我们也可以特别直观的观测到静态分析和动态分析的结果。代码左侧

的红色精灵帽表示静态分析时出现问题的所在,黄色小齿轮则表示动态分析时出

现问题的所在。点击相应的地方,会出现对问题的一个简洁描述。

OutputMessages

2.静态测试

在向右三角型旁边的下拉箭头,选择内置的编码规则项目。

Outpu|Met$aoes|

ioiklimdlxtctdcy:C:\FKogxeaFllts\Pax<soft\C4*Te>t\tx«ftple>J

5ywaatcber.exe-co«5>ilet-actonT>«R3VC>»-7.1read-sy>bol5*C:\\Docuient5gd

3・tx£n^f\\4tm,U・3X\\CjT”tF,l”\\TeMp\Wg”ct5727aT^>02\\PKo4ue\\CMJ,jd・g.C8_0\\i2oJ,,X8_”jhb,・CU-

stoxe-cocifig*Cs\\Docu>ent5皿d

S«tUn4p\\Adbiniicxewx\SC>*Tt«tFlU>\\T»»p\\pid)tct5727an^>OXKX\PKoauct\Scppttit_dtBO.cpf»_0\\Hb_d4nntd_>yiboU.ccj,r

read-in«Be8«C:W^ocuaenvsandSetting5\\ldMini9txtttox\\C**Te5tFile5\\TeMp\\pxoject5727CrripDir\SPxoduct\\CF<>te3t_deBo.cw>_0\\inflaes.cw,*

Processexitedwithcode0

NatchiryjsRoldefinitionsinfotMationdone.

ApplyingstubscontiguxationtozC:\PrograBFiJesVFAEQSOtcXC-t4TeseXexaiplesXcpptestadeao.cpp

Applyingstubsconfiguxedondone.

■开胤包0Gl”"力…|6,8..|呼+..|4此“|800..」出74..|4^东..|亦.||叁港...54#帐gWOGisxe

C++Tesl将自动完成对源代码的静态测试,也就是我们所说的代码走查,走

查所用到的规范可以在静态测试标签的rulemanage下看到。

在静态分析栏中的Results标签是对静态分析结果的一个排列。每个红色精

灵帽都代表一种违规行为,而它旁边的数字则代表测试代码中出现这种违规的次

数。紧接着的字母表明违规行为的严峻级别。再后面就是对这条规范的大致描述

以及规则编号。

而标签RulesManager则是对这些规则的管理,当用户须要运用某条规则的

时候,只须要在相应规则左侧的方框内打上勾就表明选择了该条规则。而当用户

不须要某条规则检查的时候,只须要去掉相应规则的勾就可以了。

下图,右侧就是静态测试(代码走杳)的结果。每条违规信息包括对违规的

描述,该错误共发生的次数以及相对应的具体位置。而下面的ruledesription则

是对这条规则的一个比较具体的描述。顶层的文件夹后面的“1=4PV=1

V=33…二”描述的是完全的对违规信息的统计。

I表示infonnation,通知行为

PV表示possibleviolation,可能的违规行为

V表示violation,违规行为

PSV表示possibleservereviolation,可能的严峻违规行为

SV表示servereviolaliun,严峻违规行为。

Ojtout*?s5*jes'|

Violation:format-02cppt«at_demo.cpplint:18

Curtr"<rshouldappearonaUnemmsGez

Aicur^rtxaces1F例allappearonaline助themseMs

C:Aonramfmd8(WVC..Te8texdmDtemcptfe$t*mox:oo:18

CodnoSldndaftK♦*fo<thismenage:

FunclionCgltfQfdceiuult?

Sourcecodefragment:

public:

//coGStxuctot8ho>uldbe^e;lated'explicit'

gpchaxtill•,\0*>{

16;ccn8tunsigned52•9et5iM(|;

17:das-rvevcbar[SZi:zJ

余开间旬⑥6Q23“*方…|6,。*|呼+“」已十“|81»)..」出63..13未...|上一||尊c♦…

3.动态测试

在向右三角型旁边的下拉箭头,选择内置的白盒测试。

OutputMess邓s

Violation:format-02cppt«at_demo.cpplint:18

Curtr"<rshouldappearonaUnemmsGez

Aicur^rtxaces1F例allappearonaline助themseMs

C:Aonramfmd8(WVC..Te8texdmDtemcptfe$t*mox:oo:18

CodnaS»dnctef<K♦*fo<thismenage:

FunclionCgltfQfdceiuult?

Sourcecodefragment:

13:public:

//co©8”uc8rshouldbedebated'explicit)

g“(chaxtill•'\04(

16:ccngtunsignedSZ•9>et$ize(|;

17:das-n>evcb=(SZi;二J

•齐间句WG眉R?“上方…I,Io",ISM,"51b.i倒欢..I司亲…|[SZ77754/小宅力。0is;n

C++Tesl将自动完成代码的动态测试。可以从各个层面上(单个测试用例,

整个函数的测试用例,整个代码的测试用例)去看相对应代码的覆盖率。操作的

时候,只须要右击相应的层次(例如一个测试用例),选择showcoverage,就可

以看到对应的覆盖率了。

在动态测试中的TestCase/Results栏中,主要是对测试用例的一个总体管理。

在这里,全部的测试用例的状态都一目了然,绿色表示胜利,红色表示失败。用

户可以自己添加或修改测试用例。

而StubTables栏则是对桩函数的管理,Suppressions则是对测试对象的一个

管理。例如,上面的Data类有许多个成员函数,当用户并不想全部都测,而只

是测其中的几个。这个时候就可以通过Suppressions进行选择。

除此之外,上面的Treefilter还供应强大的滤波器功能,可以让用户更好的

关注他们的焦点,例如只看最近一次测试的失败用例。

下图,右侧就是对动态测试的一个整体描绘。列举了全部的测试用例,并且

用颜色来区分胜利和失败的测试用例,绿色代表胜利通过了的测试用例,而红色

代表没有通过也就是失败了的测试用例,对于每个错误的测试用例都有一个大致

的描述。

每个测试用例或者各个节点卜都做到了相应的覆盖率信息.包括了LC(语

句覆盖),BBC(块覆盖),PC(路径覆盖),DC(决策覆盖),MCDC(多条件决策

覆盖)以及CC(条件覆盖)。

此外,上面的treefilter过漉器功能可以帮助用户快速察看到自己关切的焦点

或错误。

Lfiesc-用

FileEditProjectTestsCoverageS€49ngsToolsHelp

与&GSQ▻>•国小33HrQ)

•开创封⑥G届a,g“*方“.|到0.」2)%“[8»>..ittpa.」国来…东…|[00.一54岁帐6为。。15:13

4.生成报表

选择file/gcneratereport,依据对报表的需求,选择适当的报表内容种类(例

如dynamicanalysis1,coveragestatistic!)。

Lriesc-

,HieEOitP(o)ectTestsToolsHelp

FWProiwtCM*NW*心书怜明

OpenProject

SourceCode|CoongStandardsUnitTesting|TestProoreds|

ClowProtect

⑷.P0140/44/44of44||100100335010010O(%)|vx)l(JCOWTc.Butta<ch^•)

SavaProtectC1r1*8m

e|10010033501001U(X%>IAUIO1/JU(ARGSfrom=rOe)PREDala(3(ttUU3())|

8mProtectAse|10010033501001(MX%>1AUTO_1_7JJ(ARGS:fron^mPREDat«(127fUOTD))

W0|576605000(%)lAUTO_1_7J_2|ARCS:fTWULLPFE::Dato(30x003》]

OpenFiie($)

0110010033601001U0(%>|AUIO1/J3|ARGSfrom-r/^PRF[:ats(10x001*))|

CigeFg9(576605000(«)lAUTO_1_7J_4|ARGS.franw=WULLPf;ECala(1280x080)))

CMAiiF田011001003350100100(%)]AUTO_1_7J_5(ARGS:fror^mPRE:Datd(58C*»]

0|1001003350100100(%)]AUTOJ_7J.6(ARG8from-:r)PRE:PXa(-1OrtfD)1

import0IIf.uU(X%>1AUIO1rj/|ARGSfram=*4UIXPHEttis^...)|

911001003350100100(%)lAUTO_1_7J_8[ARGS:PRE:D8U£12。0x080,)))

Export

0|100100335010O10(X%>]AUTO_1_7J.9[ARGS:from-mPRE:ttifeH)1

PrintReooaClrt^P””(i(iU500AUIO1fJID|ARGSfron^NUlLPRE)J

e157660500WMAUTO_1_7J_11IARGSfrofn=NULLPRE.1

PrintPreMew

⑷0|57660500(X%)JAUTOJ_7J_12IAR0Sfro(n-NULLPRE::Data(10x0010)j

PrintToFiles6|57660500D(*>1AUTO_1_7JJ3|ARGSfrom-f)PRE”

OeneraoeHTWLReport6|10010033501001(MX%>|AUTOJ_JJJ4|ARGSfrom:CnPR£:Dat>(1(1x001())I

❷(innmanMI1na1ncxoi।ARGRfmntrr)PRFtM«=()|

Recerrt

Report

Rwerfl

Ctn«x1615断通吃1丽Conftgur3ton[SupprEions]

Output)MessagesCoveraoeSlaves

runctiofi:voidco(iyTo6ufTeftchw•)

lineCoer”。covered7or7totalk»e(s)

BlockCoveragecovered3of3totalblocks)

PgCove*aoecovered1of3totalpath<s>(1unexpectecpaSXs)occurred)

Decision(Branch)Cth*raxcovorQd1of2totaldecisions)

MoiledCondonDecmonCoveragecovered1of1totalcondit2n⑼

CondnonCov9fag«covered1ontotalcondition^)

衾开⑻旬电GO3M“金方…|到"・・|。的53b.i倒衣|司崇…51岁《g总。0i&M

HieEditPwctTestsCourageSeungsToolsHelp

JjPwcFuu

EG)cppteet_demo.cpp

m■aData日.R0140M4/44of44||1001003350100100(%)1vx)l(JCOWToButteKch^•)

.•Oata(chaf)e|1001003350100100(%>lAUIO1/JU(Ah)1^3(1x003-))|

intbuLenCvoid)e110010033501001WK%)]AUTO_1_7JJ(ARGS:frenumPREDaU(127(AxOTD))

•void<WToBuffer(char•)・C格7C5n(¥61AlITC17I7IARn<^NIPf;F-丁七350031)》]

•cMr'getD加(付6AddReport凶Catad0x001*))|

.unsignedmlgotSafvotd)tM0x080())]

Name|NewReport

Te<np<»$D8t«(580)1

3Data(-1Ctrt)rr»)

0CourageSuosocs30CodngSXandvds1

DaUS120CUO8O0)]

0CoverageStaasocs40Co4r>gSUndvds2m3.11

-JI

QUnitTesflng1

0UrwtTeMng1E001»]

SUnitTei«ng20Cowa^eSuosocs4Data(1(1x001*))I

:IZ8=<…”

&UnitTessng30CoverageSUOSOCB3

DescnpnorDescrtpOon

为Keyart.

砧ecbvtvith

Output)MetsaoesCow第eSUrt«W8

farnrr«ntcc«t«x<

runction:voidcopyTo6u(Te(<chaf•)

lineCoerag。

Cancel

BisicBlockCoverage

PanCove*ade33%cc^ered1of3totalpath<s>(1unetpedecp«9Xs)occurred)

Decision(Branch)C(htag50%covBfQd1of2totaldocision<s)

ModiledCondtonDectsionCoverage100%coverediof1totalcondit»on($)

CondnccCovoua100%covered1ontotalconditkon(s)

v|GcnefatingReport

立开演团电d届jg“&方”.强jsm.|5%b.」◎东…|@家,“|[^C>5:i6

生成一个HTML格式的报表。

f:Doctmirnt*H<M!'A<lfiwv%lri*tor\C*4-Tr%lfdr*\HTMlRrport%\htn»l,n<lex.htn»lfMpiorrr

文仲口MIDIKy)*BX9T*(D*①

■»3习G0**④领夯3艮体J令」亘・二!,❽a

地*aI©ardSettrQAAdnrwtr&alC.+T«tFfeAHTMLReport;gAnctexhM

Gogje-|3第夜*—内容,孕726个已担簸匕即I.

c:\Ft«^rw*r“”““",wnr«et«・3Ti,,<c9m,<一-e>s©

[4]V:Thereshallbenowhitespacebetweenanunaryoperatorarditsoperand(format-15/

SpacesAfterUnaryOperator.rule)

,»•«・,-w>«ey>・・•*•・s4・•,•>«t«r*4

(•\,・・$・9*r?ti

,/*«•・li•««•••»•4M«»4ay*fa**4»«•

3^x«a1••««•««»ms4l««”“M4

t>-v.waxyC>«CM*XM4iva”“5.

C:\*ZC-JXA»riX”\〃KA*,f«\C**T“Z«XA*<f4699c”

[1]V:Thereshallbenowhitespacepreceding•followingaprimaryoperator,(format-12/8p《

9p*C4*P“c«4i"*1,ol1s>51api3Axy印X6OK

C:\Vs«-nav*rUQ,\Ry・f\C♦r«,B«・《»<4・,、cdK_d«m.e”IT

CodingStandardsMessages

~

?2»6A7

82:9

206

A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论