使用 EclEmma 进行覆盖测试

来源:互联网 发布:ntfs for mac 10.13 编辑:程序博客网 时间:2024/05/24 01:49

 覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接受测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。本文将介绍一个优秀的开源软件测试工具 EclEmma,它能够对由 Java 语言编写的程序进行覆盖测试,从而对程序运行的结果生成详尽的覆盖测试报告。
介绍

现在 IT 开发人员比以往任何时候都更加关注测试的重要性,没有经过良好测试的代码更容易出问题。在极限编程中,测试驱动开发已经被证明是一种有效提高软件质量的方法。在测试驱动的开发方式中,软件工程师在编写功能代码之前首先编写测试代码,这样能从最开始保证程序代码的正确性,并且能够在程序的每次演进时进行自动的回归测试。测试对于软件产品的成败起着至关重要的作用,在极限编程领域,甚至有人提议任何未经测试的代码都应该自动从发布的产品中删除。作者并不确信这个观点是正确的,但是测试本身的质量确实是一个需要高度关注的问题。测试的覆盖率是测试质量的一个重要指标,我们需要工具来帮助我们进行对软件测试覆盖的考察。

EclEmma 就是这样一个能帮助开发人员考察测试覆盖率的优秀的 Eclipse 开源插件。EclEmma 在覆盖测试领域是如此的优秀,以致于它在过去不久的 2006 年成为了 Eclipse Community Awards Winners 决赛选手。虽然最后 Eclipse Checkstyle Plugin 取得了 Best Open Source Eclipse-based Developer tool 的称号,但我们也可以由此看到 EclEmma 对开发人员的帮助是巨大的(Eclipse Community Award 的具体信息可以参阅 参考资源)。

提到 EclEmma 首先就要说到著名的 Java 覆盖测试工具 Emma。Emma 是一个在 SourceForge 上进行的开源项目(参阅 参考资源)。从某种程度上说,EclEmma 可以看作是 Emma 的一个图形界面。在本文的参考文献中,可以看到专门讲述使用 Emma 的技术文章。

Emma 的作者开发 Emma 之初,程序员已经有了各种各样优秀的开源 Java 开发工具。举例来说,我们有优秀的集成开发环境 Eclipse,有开源的 JDK,有单元测试工具 JUnit,有 Ant 这样的项目管理工具,我们还可以用 CVS 或 SubVersion 来进行源代码版本的维护。当时看来,也许唯一缺少的就是一个开源的覆盖测试工具了。Emma 就是为了填补这项空白而生的。现在的情况已经和 Emma 诞生的时候不一样的。时至今日,我们已经有了不少的覆盖测试工具。例如 Coverlipse 是一个基于 Eclipse 的覆盖测试插件。其他还有 Cobertura,Quilt 和 JCoverage 等。但是 Emma 具有一些非常优秀的特性使得它更适合被广泛的使用。和 Coverlipse 等工具比起来,Emma 是开源的,同时它对应用程序执行速度的影响非常小。

EclEmma 的出现弥补了 Emma 用户一个大的遗憾 ---- 缺乏图形界面以及对集成开发环境的支持。将 Eclipse 和 Emma 这两个在各自领域最为优秀的工具结合起来,这就是 EclEmma 为我们提供的。接下来,我们就要在后续章节中和读者朋友一起看看 EclEmma 为开发人员提供了什么。

。。。。。。

                        点击此处查看全文

原创粉丝点击