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

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

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

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

欢迎任何建议。 谢谢!

首先阅读有效使用旧版代码 ( 此处为简短版本)。 接下来,我将编写几个端到端的冒烟测试,以涵盖最常见的用例。 以下是如何处理它的一些想法: http : //simpleprogrammer.com/getting-up-to-bat-series/

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

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

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

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

祝你好运!

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

看起来你要编写单元和function测试,所以JUnit可能不适合这个。 你考虑过TestNG吗? 由于您现在只进行了很少的测试,因此您可以选择最适合该工作的测试。