Rational Test Suite-Purify
大家在测试过程中最头痛的是什么问题,我想大概是服务器运行时不知不觉的服务器就出现异常,通过SystemMonitor发现系统的内存随时间不断的减少,特别在C++的开发下由于没有像Java,C#有比较好的GC,所有的内存都是开发员进行控制,很容易出现内存泄漏的情况,那么如何高效的发现内存问题,成为高级测试人员与开发人员关注的问题。
工欲善其事,必先利其器,要快速的在大型的应用中人工的排查内存问题,就有如大海捞针。如何在几百万代码定位问题,人工!显然是不可能的,那必须要借助工具,现在有许多比较好的内存检查工具,比如下面给大家介绍的Purify,Purify由IBM公司出的面象C++,VB,Java的内存检查工具。
Purify可检查的常见错误类型如下:
1. 堆阵相关错误。
2. 堆栈相关错误。
3. 垃圾内存收集-Java 代码中相关的内存管理问题。
4. COM 相关错误。
5. 指针错误。
6. 内存使用错误。
7. Windows API 相关错误。
8. 句柄错误。
当然可检查的错误类型还有很多,大家可以参考联机帮助,但我认为常见的错误大多数都发生上面提到的一些错误。
下面主要给大家以一个例子来说明Purify的使用:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 351pt; HEIGHT: 199.8pt" type="#_x0000_t75"><img o:title="新建 位图图像" src="/Develop/ArticleImages/26/26647/CSDN_Dev_Image_2004-4-10119310.jpg"><font size="3"></font></shape>
图1
Purify的使用还是比较简单的,一般只要把程序写成.EXE,然后直接运行就行了,当然如果程序比较大时,则需要重新组织一下,分几个段进行测试,最好的办法就是用CPPUnit来写测试框架,直接调用单个的函数进行测试是最好的,我的例子就是用CPPunit来写的,单独调用相关的测试函数进行测试,由于这里不是介绍CppUint,所以只是给大家提一下,单元测试可以这样写。Purify的启动还是比较简单的,就是运行一个.EXE。
运行完后结果如下图:
<shape id="_x0000_i1026" style="WIDTH: 385.8pt; HEIGHT: 213pt" type="#_x0000_t75"><img o:title="Purify2" src="/Develop/ArticleImages/26/26647/CSDN_Dev_Image_2004-4-10119312.jpg"><font size="3"></font></shape>
图2
大家可以看到报以下几个出错,有位未初始化内存,数组越界读写,内存泄露等几个大家比较头痛的问题,以前代码比较多时是无法查到的,现在有了这个工具,就可以很快的查到问题。
同时Purify不光可以显示出错还可以定位是那段代码出错,当然你要有代码,不过它是把相关的模块全部显示出来,你要从里面找出是由你的代码引起的问题才行,这是一个比较晕的事情,不过多做几次就行,当然如果程序是你写的就更好了,就更容易找到问题,对上面的出现问题的点进行展开,跟据一些使用的经验我一般不会找系统相关的函数,而是先找与自己工程相关的函数,比如下图中的内存演示 int CMabString::LeakMemory():
<shape id="_x0000_i1027" style="WIDTH: 367.2pt; HEIGHT: 239.4pt" type="#_x0000_t75"><img o:title="Purify3" src="/Develop/ArticleImages/26/26647/CSDN_Dev_Image_2004-4-10119314.jpg"><font size="3"></font></shape>
图3
就是工程中的代码,一般问题都是由自己的代码引起的,但Purify把所有与此相关的模块都引入,所以你要过滤出什么是真正问题的所在,同时你们还可以看到如果程序有代码的话,Purify可以把代码中的错误都标出,从而减小你再去查找代码的难度,从而快速的定位问题。
当然,Purify还有许多比较好的特性,比如过滤,错误显示设定等等,通过它你可以更快更好的发现问题。
Purify是一款非常不错的内存检查工作,结合PureCoverage,Quantify的Rose Test Suite下的工具,就可以对代码级进行很好的测试,当然如果再结合测试框架,形成自动化测试则能大幅度的节约测试成本,提高工作效率,当然实施单元测试还是要看整个测试团队的能力,不能强推J。如果你要了解其它两个工具,可以看我专栏的其它介绍,谢谢大家。
分享到:
相关推荐
UML.with.Rational.Rose---电子文档
如何使用测试工具Rational Purecoverage、Rational Purify、Rational Quantify、Rational Robot
Rational 测试工具-性能测试 课程大纲
Rational 测试工具-功能测试 课程大纲
rational-rose-2003安装过程的详细截图
Rational 测试工具-测试管理 课程大纲
PACKAGE LoadTest_Base rational 7.5 652CC8FB1271 \ COMPONENTS="LoadTestSuite:7.5:1 LTmaster:7.1:10000 \ LTgui:7.1:10000 LTvu:7.1:5550 LThttp:7.1:10000" PACKAGE TMvtpool rational 8.0 3881689030FD \ ...
Rational测试工具-性能测试考试模拟题 关于软件测试中的性能测试
08 Rational测试工具 - 性能测试
Rational Functional Tester - Tips and Tricks
Rational Unified Process-Best Practices for Software.pdf
IBM官方教程文档 工具特性: 自动生成测试脚本模版和测试数据 黑盒测试和白盒测试相集成 多层次测试:从函数到分布式系统 静态分析功能: 明确测试优先级 代码复杂度计算 全面的回归测试
Rational Unified Process 进行配置使针对每一用户对 Rational Unified Process 视图进行个性化成为可能除上述解决方案之外,IBM Rational 还推出了最新版的 IBM Rational Suite,其中包括其市场领先的 IBM Rational...
资源分类:Python库 所属语言:Python 资源全名:py_lets_be_quickly_rational-1.0.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:py_lets_be_quickly_rational-1.0.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
详细介绍了Rational Purify的知识和使用方法
Rational Suite Enterprise.upd
IBM Purify/PureCoverage Test Factory是保证软件的可靠性和可测试性的一种实时自动化测试工具。其隶属于IBM公司的自动化测试工具包Rational Software,是一种嵌入式的测试软件,可以嵌入多种开发环境中,如Visual ...
超级强大的IBM Rational Test RealTime,详细的解说让你瞬间明白