EclEmma与.Net的emma 测试覆盖率工具有什么区别?

EclEmma的问题
[问题点数:40分]
EclEmma的问题
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。EclEmma_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于||文档简介
&&E​c​l​E​m​m​a
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢《软件测试实验指导教程》第6讲:单元覆盖测试_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
《软件测试实验指导教程》第6讲:单元覆盖测试
上传于||文档简介
&&本​课​主​要​讲​单​元​覆​盖​测​试​。
大小:611.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢使用&EclEmma&进行覆盖测试
覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接受测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。本文将介绍一个优秀的开源软件测试工具
EclEmma,它能够对由 Java 语言编写的程序进行覆盖测试,从而对程序运行的结果生成详尽的覆盖测试报告。
开发人员比以往任何时候都更加关注测试的重要性,没有经过良好测试的代码更容易出问题。在极限编程中,测试驱动开发已经被证明是一种有效提高软件质量的方法。在测试驱动的开发方式中,软件工程师在编写功能代码之前首先编写测试代码,这样能从最开始保证程序代码的正确性,并且能够在程序的每次演进时进行自动的回归测试。测试对于软件产品的成败起着至关重要的作用,在极限编程领域,甚至有人提议任何未经测试的代码都应该自动从发布的产品中删除。作者并不确信这个观点是正确的,但是测试本身的质量确实是一个需要高度关注的问题。测试的覆盖率是测试质量的一个重要指标,我们需要工具来帮助我们进行对软件测试覆盖的考察。
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 为开发人员提供了什么。
二、安装 EclEmma 插件
eclipse在线安装地址:http://update.eclemma.org/
三、使用 EclEmma 测试 Java
为了实验 EclEmma 的特性,我们首先在 Eclipse 的 Workspace 中建立一个名称为 test.emma 的新
Java 项目。接下来,我们在其中建立一个 HelloWorld 类,其代码如下所示:
package test.
public class HelloWorld {
&&& public
static void main(String[] args) {
&&& int rand =
(int) (Math.random()*100);
if(rand%2==0){
System.out.println( "Hello, world! 0");
System.out.println("Hello, world! 1");
&&& int result =
rand%2==0? rand+rand:rand*
System.out.println(result);
接下来,我们通过 EclEmma 运行 HelloWorld.main() 函数。
执行完毕之后,我们正在编辑 HelloWorld.java 的窗口将会变成如下所示:
在 Java 编辑器中,EclEmma
用不同的色彩标示了源代码的测试情况。其中,绿色的行表示该行代码被完整的执行,红色部分表示该行代码根本没有被执行,而黄色的行表明该行代码部分被执行。黄色的行通常出现在单行代码包含分支的情况,例如
图 4 中的 16 行就显示为黄色。由于程序中有一个随机确定的分支,因此读者的窗口可能与这里稍有不同(11 行或者 14
行中有且只有一个红色的行)。
除了在源代码编辑窗口直接进行着色之外,EclEmma 还提供了一个单独的视图来统计程序的覆盖测试率。
EclEmma 提供的 Coverage 视图能够分层的显示代码的覆盖测试率,图 5 中的信息表明我们对 HelloWorld
的一次运行覆盖了大约 68.6% 的代码。
想在一次运行中覆盖所有的代码通常比较困难,如果能把多次测试的覆盖数据综合起来进行察看,那么我们就能更方便的掌握多次测试的测试效果。EclEmma
提供了这样的功能。现在,让我们重复数次对 HelloWorld 的覆盖测试。我们注意到 Coverage
视图总是显示最新完成的一次覆盖测试。事实上,EclEmma 为我们保存了所有的测试结果。接下来,我们将通过 Coverage
视图的工具按钮来结合多次覆盖测试的结果。
当我们多次运行 Coverage 之后,我们可以单击 图 6
所示工具栏按钮。之后,一个对话框将被弹出以供用户选择需要合并的覆盖测试。
在合并完成之后,我们可以观察到 Java 编辑器和 Coverage 视图中都显示了合并之后的结果:
图 8 中,我们可以看到,通过多次运行覆盖测试,最终我们的代码达到了 91.4%
的测试覆盖率。有趣的是,图中第三行代码被标记为红色,而此行代码实际上是不可执行的。奥妙在于,我们没有生成任何 HelloWorld
类的实例,因此缺省构造函数没有被调用,而 EclEmma 将这个特殊代码的覆盖状态标记在类声明的第一行。
原文地址:/developerworks/cn/java/j-lo-eclemma/index.html?S_TACT=105AGX52&S_CMP=techcto
集成ant参考:/aspxphpjsprb/archive//1588411.html
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 emma代码覆盖率 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信