带有EclEmma的Eclipse:可视化代码覆盖率

上次,我们看到了行为驱动开发 (BDD)如何使我们以非常专注的方式朝着具体目标努力。

在本文中,我们将研究较大的BDD和较小的TDD反馈循环如何消除浪费,以及如何使用EclEmma等代码覆盖工具来可视化该浪费,以查看您是否很好地执行了流程。

BDD和TDD之间的关系

根据您的情况,运行BDD方案可能需要很多时间。 例如,您可能需要首先创建一个Web应用程序存档(WAR),然后启动一个Web服务器,部署WAR,最后使用Selenium运行自动化验收测试。

对于您编写的每一行代码,这都不是一个方便的反馈周​​期。

因此,您可能会编写更大的代码块。 但是,这增加了引入错误的风险。 婴儿的脚步可以减轻这种风险。 在这种情况下,这意味着转向测试优先编程,最好是测试驱动开发 (TDD)。

BDD场景和大量单元测试之间的联系是自上而下的测试 。 自顶向下的测试是将BDD方案转换为测试代码的过程。 从那里开始,您可以使用常规TDD进一步进行单元测试。

将BDD方案转换为自上而下的测试似乎很浪费,但事实并非如此。

自上而下的测试只会使开发人员的反馈周期更短。 您永远不必离开IDE来确定您是否已完成。 不必不断切换到更大的BDD反馈周期所带来的好处,可以弥补翻译的浪费。 通过多做一些工作,您最终会更快!

如果您担心由于这些自上而下的测试而增加了构建时间 ,那么您甚至可以考虑在通过这些测试后将其删除,因为这样便可以降低风险。

BDD和TDD都使用JIT编程消除浪费

BDD和TDD都采用即时 (JIT)编码的思想。 JIT是消除浪费的精益原则。 在这种情况下,编写不必要的代码。

您想消除不必要的代码的原因有很多:

  • 由于编写代码需要时间,因此编写更少的代码意味着您将提高工作效率(每次迭代完成更多故事
  • 更多代码意味着更多错误
  • 尤其是,更多的代码意味着更多的安全漏洞机会
  • 更多的代码意味着将来的维护者必须了解更多的事情,因此,由于误解,在维护期间引入错误的风险更高。

代码覆盖范围可以可视化浪费

在软件开发过程中使用BDD和TDD,可以减少浪费。 至少这是理论。 我们如何在实践中证明这一点?

好吧,让我们看一下过程:

  1. BDD方案定义了用户故事的接受标准
  2. 这些BDD场景被转换为自顶向下的测试
  3. 这些自上而下的测试导致了单元测试
  4. 最后,这些单元测试导致生产代码

最后一步是最容易验证的:不应编写不需要进行某些单元测试通过的代码。 我们可以通过在执行单元测试时测量代码覆盖率来证明这一点。 根据定义,任何未涵盖的代码都是浪费。

EclEmma在Eclipse中显示代码覆盖率

我们在持续集成构建中使用Cobertura来测量代码覆盖率。 但这又是一个漫长的反馈周期。

因此,我喜欢用EclEmma测量代码覆盖率,而我在区在Eclipse中。

EclEmma将覆盖线变为绿色 ,未覆盖线变为红色 ,而部分覆盖线变为黄色

您可以使用Window|Preferences|Java|Code coverage更改这些颜色。 例如,您可以将“ Full Coverage更改为白色,以使正常情况下不会出现视觉混乱,只有异常突出。

EclEmma的伟大之处在于,它使您可以在不改变工作方式的情况下测量代码覆盖率。

唯一的区别是,您现在选择Coverage As|JUnit test (或Alt+Shift+E, T ),而不是选择Run As|JUnit Test (或Alt+Shift+X, T Alt+Shift+E, T )。 要重新运行上一个覆盖,请使用Ctrl+Shift+F11 (而不是Ctrl+F11来重新运行上一个启动)。

如果您的手指习惯使用Alt+Shift+X, T和/或Ctrl+F11 ,则始终可以使用Window|Preferences|General|Keys更改键绑定。

以我的经验,EclEmma的性能开销很低,您可以一直使用它。

EclEmma帮助您监视敏捷过程

EclEmma的反馈使您可以立即以不必要的代码形式查看任何浪费。 如果您将BDD和TDD做得好,那么就不会有任何浪费,因此EclEmma的反馈实际上就是您对BDD / TDD流程执行情况的反馈。 您可以使用此反馈来磨练自己的技能,并成为最佳的开发人员。

参考: 安全软件开发博客上的JCG合作伙伴 Remon Sinnema的EclEmma可视化了Eclipse中的代码覆盖率


翻译自: https://www.javacodegeeks.com/2012/09/eclipse-with-eclemma-visualizing-code.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值