【IT168 技术文章】
IBM Rational PurifyPlus 是服务于测试人员和开发人员的工具吗?答案是:是。它可以通过消除缺陷以及优化可靠性和性能来支持 这两个角色对于最大化产品质量的共同追求。这篇文章阐述了 PurifyPlus 的工作方式以及开发人员和测试人员是怎样有效利用它的。
开发人员和测试人员能够在组织中扮演不同的角色,但都是为了最大化整个项目质量的共同目标。不管它意味着要增加客户想要的特征和性能,还是要确保这些特性能够很好的运转,您的项目小组都要维持一个高水平的质量来取得成功的机会。
IBM® Rational® PurifyPlus™ 能够帮助开发人员和测试人员达到他们项目质量的共同目标。有些人把 PurifyPlus 看作一个测试工具,有些人则将它看作是一个开发工具。开发人员和测试人员都可以从 PurifyPlus 获得利益,因为他们都是在软件项目中为高水平的质量而奋斗。
在这篇文章中,我展现了一个 PurifyPlus 的概述、它如何操作,以及为什么它对开发人员和测试人员有如此大的价值,通过许多重要的产品活动不仅仅提高了产品质量,还增加了个人和小组的效率和有效性。
低质量的成本
为了您项目的成功,尽早找到并修复故障是非常必要的。如果能够尽早找到并修复缺陷,这些缺陷的成本将少得多,要么通过开发人员要么通过早期得测试得方法来操作。故障如果通过了测试并到达了客户,成本将比找到并修复要高得多,而且对您得声誉和最终的业务也有相当大的影响。
在开发和测试阶段使用 PurifyPlus,您可以尽早将质量引入项目,并且可以避免不完全测试的高成本,处理性能问题,以及/或者稍后找到并修复内存使用错误。
PurifyPlus 组件
Rational PurifyPlus 产品有三个组件:内存错误验证的 Purify,性能数据采集的 Quantify,以及代码覆盖分析的 PureCoverage。我将依次讨论每个成分的工作方式。
Purify 组件
在 C/C++ 程序中去除分解内存使用。当它发现事件比被分配时使用更多的内存,或者在它初始化之前或者释放之后使用内存,就会发布一个错误报告。Purify 还可以报告内存泄漏――比如,当一个程序在丢失内存跟踪之前不能释放一个或者更多的内存板块时。尤其是在 Java™ 和 Microsoft .NET 程序中,Purify 能够帮助您识别使用内存并且没有将它释放的程序区域,这是另一种类型的内存泄漏。
对于 C 和 C++ 程序 (而不是 Java 或者 .NET), Purify 通过在这个程序执行中的每一个内存访问周围插入额外的指令来工作。这叫做仪表化。当您运行这个仪表化程序时,它将正常运作,进行与平时一样的操作。但是,Purify 在里面,可以检查问题。如果这个程序从还没有被初始化的内存中读取,或者读取或者改写已经被释放或者仍然存在于分配区域之外的内存,您将看到一个 Purify 错误报告。
有些类型的内存访问错误 (比如使用一个 NULL 指示器) 将会导致一个程序完全崩溃。这是一个很容易就可以辨认出的一个错误――您可以用一个正规调试器来找到它。Purify 可以让您看到更多潜伏的内存错误类型,它们可能出现在程序开起来似乎运转正常的情况下。这个特殊的功能在程序中可以产生正确的答案,您的测试可以通过,但是仍然可能存在内存错误。
例如,一个逻辑性的瑕疵可能在只有99条被分配时已经产生100条的错误。这种错误可能不会导致您的程序崩溃或者您的测试失败,但是仍然存在内存崩溃的危险。某天当潜在的内存错误由于一个不正确的操作超出了内存的范围,那么将导致系统崩溃,这将导致客户的不满意。在项目的早期,Purify 就能够很容易的发现这种类型的错误。
对于 Java 和 .NET 程序,当您的项目仍然在使用本应该已经释放的内存时, Purify 能够帮助您识别出来。这种类型的内存泄漏将会导致您的程序越来越大,运行越来越慢,最终耗尽内存。
Quantify 组件
Quantify 是 PurifyPlus 中进行分析的组件。它适用于 C/C++, Java,以及 .NET 程序。Quantify 度量并分析在程序中所花费的时间,从而识别“热点”和无效的代码。独特的 "River of Time" 显示可以直接让您找到您的程序中最浪费时间的区域。
| 第1页: 低质量的成本 | 第2页: PureCoverage 组件 |
| 第3页: 测试人员使用 PureCoverage |