ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:585.36KB ,
资源ID:4366945      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4366945.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Rational Purify 使用手册.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Rational Purify 使用手册.docx

1、Rational Purify 使用手册IBM Purify/PureCoverage Usage Report Siva Liu 前言 IBM Purify/PureCoverage Test Factory是保证软件的可靠性和可测试性的一种实时自动化测试工具。其隶属于IBM公司的自动化测试工具包Rational Software,是一种嵌入式的测试软件,可以嵌入多种开发环境中,如Visual C+、Visual J+、Java Development、.Net Management等等各种代码开发工具。Purify/PureCoverage,包括Quantify等一批实时测试工具可以方便的

2、在调试代码和执行代码之间使用。其测试结果也可以保存为Rational可识别文件为其它测试工具使用,也可以将此次的结果与另一次实例运行的结果作动态对比。从而得出修改代码前后的区别。 图1-1 嵌入VC+的Purify和PureCoverage 嵌入工具 在嵌入Visual C+后Purify/PureCoverage将其某些功能集成为工具条,从左到右依次为: 图1-2 嵌入式的工具条Engage Purify Integration:按下此按钮即可以在调试和运行时使用Purify。Collect Coverage Data:按下此按钮可以在调试和运行时收集实例运行覆盖率的数据,类似PureCov

3、erage的覆盖率报表。如果仅仅需要知道语句的覆盖率,可以 不使用PureCoverage而直接使用Purify的这个功能。Bring Purify To Top:将Purify的报告窗体移至整个窗体组的顶部。Purify Break On Error:按下此按钮,Purify会在每次检测到错误的时候停止运行该程序, 并给出错误信息,方便调试。Purify Executable Settings:Purify运行设置,对本次实例有效。Purify Default Settings:Purify缺省设置,对所有实例有效。Purify Preferences:Purify参数设置。Purify F

4、ilter Manager:Purify过滤器,可以选择需要过滤的模块或程序。Purify NewLeaks:按下此按钮Purify可以在程序运行到某一点时报告内存泄露,而不必在每次实例运行结束后报告内存泄露。 使用总结1Purify一、 功能通过使用Purify可以实时地检查代码运行产生的一些内存错误。如内存未初始化、数组越界、内存泄露、COM接口错误等等。二、 软件设置1 Default Settings1)Error and Leaks:错误和泄漏Show first message only:在相同的错误第一次出现时显示信息,此后的不显示。Show UMC message:显示UMC信

5、息。Memory leaks:报告内存泄漏。Memory in use:报告内存使用情况。Handles in use:报告句柄使用情况。Show maximum call stack detail:设置最大调用堆栈。Deferred free queue:延时的自由队列。Red zone length:亏损区长度。2)PowerCheck选项卡:Default error level:缺省的错误标准。The module doesnt contain debugging info:模块无法容纳调试信息。The module is largerKB:模块大于字节。Default coverag

6、e level:缺省的覆盖率标准(按行/函数算)。Exclude all modules in Windows directory:排除所有Windows 目录下的模块。3)Files选项卡:Cache directory:Cache文件夹路径设置。Source file search:源文件所在文件夹路径设置。Instrumented file name:实例文件路径设置。(Executable Settings有效)Additional options:其它附加参数。4)Advanced选项卡:Leak scan interval:泄漏扫描间隔。Enable late detact sca

7、ns:能够察觉新近的扫描。Late detact scan:新近扫描堆。Late detact scan interval:新近扫描间隔秒。2 Purify Preferences1)Runs选项卡:Show instrumention progess:当对VC+程序测试时,是否显示工具对话框。Show instrumention warnings:当对VC+程序测试时,侦探到警告对话框,是否显示工具警告对话框。Show LoadLibrary instrumention progress:对VC+、VB native-code 程序测试时,当工具文件需要调用工具列表时,是否显示工具对话框。C

8、onfirm run concellation:当每次选择fileConcel run 时,是否显示证实消息对话框。Create automatic merge:创建自动的合并。ActiveMerge:实时合并。Use defaule filter set:使用缺省的过滤器设置。Use case sensitive path name:区分大小写路径名。Break on warnings in addition to error:当错误增加时中断。Use the following debugger:使用下列调试器。2)Workspace选项卡Show Welcome Screen at st

9、artup:当每次打开该工具时,是否显示欢迎对话框。Show directories in file names:当文件名显示时。在可能的情况下是否显示文件路径。Use sounds:是否有声音。Warn on unsaved data:当关闭了一个为保存数据的运行时,或退出未保存数据的运行时,是否显示警告消息对话框。Expand call stacks:扩展调用堆栈的个数。Create data browsers hidden:创建隐含的数据浏览器。Show commas in numbers:在数字中显示逗号。Show Guide to Using Memory Profiling:显示引

10、导使用内存压型。Discard excess memory profiling:放弃剩余的内存压型。Sync Call Graph from Rrference:同步参考调用曲线图。Show Object List View:显示对象视图列表。Show in Navigator:选择在Navigator 窗口中是否显示日期、时间、命令行论述等信息。Sort Memory Items in Error View:选择在错误视图中是否显示的内存种类信息。3)JVM选项卡由于笔者没有接触过JVM这一方面,所以没有运用到测试中来,故这里先不作介绍。4)Source Code选项卡:Show C+ cl

11、ass names:显示C+的类名。Show C+ argument lists:显示C+参数列表。Confirm recently changed source:确定最近源代码的改变。Show instruction pointers:显示指令指针。Show instruction pointers offset:显示指令指针分支。Spaces per Lines of source :每间隔多少代码行显示。三、 报告信息我们先来看看Purify的测试报告窗体。 图2-1 Purify报告窗体的组成窗体由三部分组成:上方是菜单栏和工具栏;左方是实例树型列表(Navigator);右方是信息报

12、告与定位区。1 菜单栏和工具栏:包括一些Purify常用的工具和设置。尤其是工具栏,包含了一些比较实用的工具组。比如:(Merge Runs )对多次测试的路径的分析与统计,可以看到当前案例覆盖代码的情况,有那些代码没有覆盖到;有时候你对测试案例跑过多少代码并没有记录,这时需要对所有的跑过的测试进行统计,看看还有那一些代码没有覆盖到,这时这个功能就非常有用,可以对你所有的已经测试的案例进行代码覆盖统计,从而发现没有测试到的代码(Compare Runs)对两次实例的运行情况,进行路径比较,由于测试案例比较多,这时我无法判断,两个案例的代码覆盖路径上有什么差别,这时需要对两样者进行比较,从而发现

13、同一个程序每次运行的区别。2 Navigator:显示了载入的实例运行的情况。同一个程序(可以为exe程序)的不同次运行的实例将处于同一颗树中,以本程序为父结点。双击一个实例可以在右方显示此次实例运行的结果报告。3 信息报告区:包含了一次实例运行的情况。共有三类信息:1 蓝色::Information Message代表一些程序运行的情况,如Ignored Exception(EXI)、Memory In Use(MIU)等都属于信息消息;2 红色:Error Message代表发现的此次实例的错误,如Array Bounds Write(ABW);3 黄色:Waring Message代表一

14、些不会立即发生的错误,但可能潜在引起程序错误的地方,如Uninitialized Memory Read(UMR)或Bad Parameter(PAR)都属于警告消息。稍后将详细介绍这些错误信息的意义。将某条消息展开后,会显示出此条信息的详细信息,包括出现错误所在的内存地址、线程ID、错误产生在代码中的位置(会用红色箭头指示)等等。双击该行代码还可以使用默认开发工具将源代码文件打开并定位到错误处。 图2-2 Purify详细消息报告窗体四、 消息类型1 Information MessageBOX: MessageBox 当程序中调用了MessageBox()或MessageBoxEx()作为

15、输出时,提示所调用的位置。 EXC: Continued Exception 显示捕获到异常第一次出现并报告出现异常的位置。 EXH: Handled Exception 显示捕获到句柄异常。 EXI: Ignored Exception 显示捕获到异常,但异常过滤器(Exception Filter)忽略。 HIU: Handle In Use 句柄没有被释放。 MAF: Memory Allocation Failure 内存分配失败。 MIU: Memory In Use 内存没有被释放,往往是产生内存泄露的直接原因。 MPK: Potential Memory Leak 潜在可能造成内

16、存泄露的代码。比如指针偏移。ODS: OutputDebugString 当程序中调用了OutputDebugString()作为输出时,提示所调用的位置。2 Error MessageABR: Array Bounds Read 数组越界读取。ABW: Array Bounds Write 数组越界写入。ABWL: Late Detect Array Bounds Write 可能造成的数组越界写入。BSR: Beyond Stack Read 尝试读取非法堆指针的数据。比如在一个函数中读取另一个不可见的函数体指针。 BSW: Beyond Stack Write尝试写入非法堆指针的数据。

17、EXU: Unhandled Exception 显示无法捕捉到的异常句柄。 FFM: Freeing Freed Memory 尝试释放已被释放的内存。FIM: Freeing Invalid Memory 尝试释放非法内存。而该内存没有被分配空间。FMM: Freeing Mismatched Memory 尝试释放的内存不匹配。比如分配的堆为buffer1,但却尝试释放buffer2。FMR: Free Memory Read 读取空内存。FMW: Free Memory Write 写入空内存。FMWL: Late Detect Free Memory Write 可能造成的写入空内存

18、。IPR: Invalid Pointer Read 尝试读非法内存,如系统保留的内存区。IPW: Invalid Pointer Write 尝试写非法内存。NPR: Null Pointer Read 尝试读取空指针。NPW: Null Pointer Write 尝试写入空指针。3 Warning MessageCOM: COM API/Interface Failure 调用COM接口错误。HAN: Invalid Handle 非法句柄。如类型不匹配。ILK: COM Interface Leak 没有释放COM接口对象空间。MLK: Memory Leak 堆内存没有被释放。PAR

19、: Bad Parameter 尝试调用Win32API或C-runtime程序如write(),使用了错误的参数导致内存出错。UMC: Uninitialized Memory Copy 尝试拷贝一片未初始化的内存区(已分配空间)。UMR: Uninitialized Memory Read 尝试读取一片未初始化的内存区。如果出现了不懂的消息类型,也可以在一条消息上点鼠标右键,在探出菜单的第一项中选择:Describe *2PureCoverage一、 功能检查程序一次运行的实例在整个模块中的语句覆盖率,也包括每个函数、每行代码的调用次数,是检查测试完整性的优秀工具。通过它你可以快速的了解到

20、设计的白盒测试案例执行后代码的覆盖情况,为白盒测试案例的修正提供的有效的标准,从而快保证了代码路径的覆盖。二、 软件设置1 Default Settings1)PowerCov 选项卡: Default Coverage Level:Line默认行覆盖,Function默认函数覆盖。(Caution:如果在设置中选择Line和选择Function,在覆盖率的表示结果上是不一样的。前者表示出语句的覆盖率,而后者表示函数的覆盖率。)Modules to Instrument:选择要覆盖的模块,默认为所有模块,但排除了Windows系统模块。 Java/Managed:暂时不介绍。:-b 2)Fil

21、es选项卡 与Puriy的意义一样,可参考前面的介绍。 2 PureCoverage Preference1)Runs选项卡:Show instrumention progess:当对VC+程序测试时,是否显示工具对话框。Show instrumention warnings:当对VC+程序测试时,侦探到警告对话框,是否显示工具警告对话框。Show LoadLibrary instrumention progress:对VC+、VB native-code程序测试时,当工具文件需要调用工具列表时,是否显示工具对话框。 Confirm run concellation:当每次选择fileConc

22、el run时,是否显示证实消息对话框。 Show Coverage Browser:当对当前数据或汇总数据做快照时、打开一个.cfy 文件或Purify错误时、打开一个.pcy文件时、推出正在运行的程序时,是否在覆盖浏览器显示数据。Show Function List:在与上相同的情况下,是否在函数列表窗口中显示数据。Automatic Merge:当运行一个程序时,是否在Navigator 窗口创建一个自动汇总入口,或在接下来的运行时,是否自动更新汇总数据。Use default filter set:当下一次运行程序时,是否使用当前的过滤器设置。Use case sensitive pa

23、th names:当下一次运行程序时显示的数据,该工具是否区分大小写字母盘。 2)Workspace选项卡: Show Welcome Screen at startup:当每次打开该工具时,是否显示欢迎对话框。Show directories in file names:当文件名显示时。在可能的情况下是否显示文件路径。Use sounds:是否有声音。Warn on unsaved data:当关闭了一个为保存数据的运行时,或退出未保存数据的运行时,是否显示警告消息对话框。Show in Navigator:选择在Navigator 窗口中是否显示日期、时间、命令行论述等信息。 JVM和So

24、urce Code选项卡都不知道怎么用-_-!三、 报告消息先来看看PureCoverage的报告界面窗体: 图3-1 PureCoverage报告界面可以看出其与Purify的报告界面类似,不同的是某些工具和右方的报表界面。1 报表PureCoverage共有四种形式的报表可供使用,分别是总体覆盖率摘要、模块覆盖率列表、文件覆盖率列表、函数覆盖率列表。1 总体覆盖率摘要(Run Summary) 图3-2 PureCoverage Run SummaryRun Summary一个明显的特点就是它以一个容量槽的形式表现出实例语句覆盖率的情况。从下方的介绍可以看出。白色部分代表没有被调用过的部分

25、;绿色代表少于调用10次但至少调用过1次(hit)的部分;蓝色代表少于调用100次的部分;青色代表少于调用1000次的部分;粉色代表调用过1000次以上的部分。前面的数字表示具体的调用情况, 比如第一行表示模块fd_test.exe调用过12590次(算累积的,如果你设置中Coverage Level选择的是line,也就是同一行代码调用2次算+2。而选择Fuction的话算进入函数体的次数。其它报表也是如此计算的)其中41个函数没有被调用过,49个函数被调用过,总共89个函数,覆盖率53.93%。 2 模块覆盖率列表(Module View)可以看到实例中每个模块的语句(函数)的调用次数和覆

26、盖率。展开模块可以看到其子模块和函数的具体数据。其意义以第三行的模块fd_test.exe来举例,表示fd_test中被调用了12537次(代码行),其中没有被调用的函数为3个,调用过17个函数,函数覆盖率85.00%;31行代码没有被调用,161行代码被调用,代码覆盖率83.85%。在展开后还可看到其中具体的函数的覆盖数据。双击其中某个函数还可以进入到函数体中看到具体的代码的覆盖情况。具体将在稍后介绍,如果是动态测试这将变得非常方便。 图3-3 PureCoverage Module View3 文件覆盖率列表(File View) 图3-4 PureCoverage File View可以

27、看到其格式与Module View一样,不同的是Module View以模块为根节点。而File View以文件目录为根节点。4 函数覆盖率列表(Function List) 图3-5 PureCoverage Function List 此报表详细地列出了实例中包含的所有函数。在右边还显示了函数所处的模块和所处的文件。单击上方的表头还可以排序,方便地定位需要找的函数。当然,双击一条函数也可以进入到函数体中查看具体代码执行的情况。2 源代码显示 当使用PureCoverage查看代码覆盖率的时候,也能够打开源代码文件(如果有的话)查看具体代码的执行情况。可以通过双击列表中某个函数或者点击鼠标右

28、键,在弹出菜单中选择Annotated Source查看。如下图所示: 图3-6 PureCoverage Annotated Sourc Window源代码中使用了不同的颜色表示代码的5种测试状态:蓝色 Hit Lines:每次都执行到的代码行。红色 Missed Linces:没有执行到的代码行。粉色 Partially Hit Muti-block Lines:在实例中部分执行到的代码。多半是遇到条件语句 中有时满足条件而有些没有满足条件发生。绿色 Summary:测试的摘要,通常为函数摘要。默认不显示,可以在右键菜单中选择 Show Function Summary将其显示出来。黑色

29、Dead Lines:实例无法达到的代码行。通常是注释或函数声明等等。(小技巧:通过按F7可以不断地定位到下一条Missed Lines,方便调试和记录)3 工具条使用下面是一些PureCoverage特有的工具简介,它们在工具条的正中央摆放:Pause/Recording:当你发觉测试过程中必需跳过一些不需要的测试流程时,你可以使用此功能进行测试的控制,你可停止纪录让程序走到你要测试的function,再启动记录,对你需要的过程进行记录。Cleardata:当你发现前面的测试案例,已经走过或是属于重复案例时,是否需要重新重做,这完全是不必要的,你可以使用cleardata对之前的测试结果进行

30、清除,再继续进行你有效的测试案例,这样可以不用中断测试。Snaphot data::对测试进行中数据的快照,你可以对测试案例的执行的不同阶段点进行数据的快照,这样你就可以得到每一个案例执行后的情况而不需要多次重启测试,呵呵。 使用心得在对软件做了一个总体的介绍后,笔者谈谈自己使用的心得和小小的体会。算是给大家一个参考: 如果只是检查一次实例运行的情况来获得程序的内存错误,建议直接打开软件按F5运行exe程序,那样不必做一些代码的载入工作。但如果要实时监控和调试程序,建议使用嵌入式的测试工具,可以方便快速的跳到应该修改的程序部分。 如果要对比或合并一些执行结果的报告,可以先保存为Rational

31、可识别文件(cfy、pcy等),不建议选择AutoMerge,因为难以控制,还会拖慢执行速度。可以静态地用Rational打开这些文件然后选择Compare或者Merge。 在使用PureCoverage做白盒测试的覆盖率统计的时候,最好能动态使用。因为方便修改输入和调试程序。当然,如果要最后统计整个测试的覆盖率,最好保存为cfy文件。 在使用Purify做内存检查时也推荐使用动态使用,因为静态有时候想定位出错代码时会出现找不到源文件的情况。这时要手动定位源文件位置,甚为麻烦。有时候一些系统源文件连自己也找不到在哪儿。_ 使用Purify时如果按下Break On Error的按钮,那么它会在找到第一个错误时停止程序的运行。(注意:是停止,不是

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1