用Java实现极限编程测试

时间:2011-10-18 15:40:22

标签: java unit-testing testing integration-testing extreme-programming

我正在尝试为我的团队代码实现极端编程环境。虽然极端编程有许多方面我觉得很棒(结对编程,集体代码所有权,持续集成是最受欢迎的),但我最感兴趣的是一个测试驱动的环境。

虽然我积极鼓励用单元/集成测试编写新的开发,但是有很多遗留代码没有为它编写测试。目前,如果您发现错误,为正确的行为编写测试用例并修复错误,我们的工作依赖于此。但是,我想对此更加系统化。

我有两种方法感兴趣:

  1. 一种以编程方式识别整个项目中所有未经测试(公共)方法的方法。我完全不确定这在实践中会是什么样子 - 也许是作为maven插件?
  2. 一种方法,要求所有接口的实现或抽象类的扩展都有测试类来测试特定的方法(来自接口或抽象类)。
  3. 此外,我有兴趣了解人们在迁移到测试驱动环境时发现的其他任何方法。

    (我很欣赏有些人可能会说这种迁移是浪费时间,而且应该随着时间的推移进行转换,我们会高度重视经过充分测试的代码所带来的信心。此外,如果我可以实现(1),添加测试可以是一些额外的工作,可以围绕其他事情。)

3 个答案:

答案 0 :(得分:2)

您需要一个代码覆盖工具;最后我记得Clover是一个很好的Java。 http://www.atlassian.com/software/clover/

您还应该阅读:http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

答案 1 :(得分:1)

结帐Sonar。 Sonar将帮助您使用各种插件管理代码的质量。此外,它内置了代码覆盖率插件。除了代码覆盖,它还将为您提供许多其他指标,这将有助于您清理代码或重构代码。它有findbugs,pmd和其他内置的插件。

答案 2 :(得分:0)

另一个(免费的,开源的)代码覆盖工具是Emma