在大型现有Java代码库中构建测试套件

时间:2011-07-15 22:01:52

标签: java testing servlets junit

我正在开发一个现有代码库的Web应用程序,可能已经存在了10年,有大约1000个类文件和大约100,000行代码。好消息是代码组织良好,业务逻辑与控制器域分离,并且具有高度的可重用性。坏消息是只有测试套件的开头(JUnit);最多可能有12打测试。

代码通常用于企业Java项目。有一个stuts-esque控制器包,该模型几乎完全由数据对象组成,有一个类似于数据库层的hibernate,主要封装在数据访问对象中,还有一些简单,自包含和逻辑的服务包。构建此测试套件的最终目标是实现持续集成开发过程。

  • 您将如何为这样的应用程序构建测试套件?
  • 您将使用哪些工具来简化流程?

欢迎任何建议。谢谢!

4 个答案:

答案 0 :(得分:7)

首先阅读Working Effectively with Legacy Code(简短版here)。接下来,我将编写几个端到端的冒烟测试,以涵盖最常见的用例。以下是有关如何处理它的一些想法:http://simpleprogrammer.com/getting-up-to-bat-series/

然后,当我需要更改系统的某些部分时,我将通过重点单元测试(参考上述书籍)进行覆盖,然后进行更改。系统 - 或者至少是最常更换的部分 - 将会被更好地覆盖,并且使用它会变得更容易。

答案 1 :(得分:3)

我会创建一些集成测试。因为它们需要很多代码,所以当你搞砸了大时间时,你可能会遇到错误。

我不会'建立一个测试套件',而是在更改某个部件之前为它定义一个测试集,然后再改变它。

我建议查看测试覆盖率工具(我不编码Java,所以不知道哪种工具最适合Java)。虽然它没有告诉你什么时候你进行了足够的测试,它确实会告诉你什么时候测试得太少了;)

祝你好运!

答案 2 :(得分:2)

如果该项目尚未进行专业化,我会这样做。另外一定要使用像mockito这样的模拟框架。 Hudson是一个很好的CI工具,可以很好地与maven集成。

答案 3 :(得分:1)