减少痛苦写入集成和系统测试

mdm*_*dma 4 java integration-testing system-testing

我想为我的应用程序进行集成测试和系统测试,但是产生良好的集成和系统测试通常需要我付出很多努力,而我并没有费心.我尝试了几次,我编写了定制的,特定于应用的测试线束,这种感觉就像每次重新发明轮子一样.我想知道这是不是错误的做法.是否存在集成和完整系统测试的"标准"方法?

编辑:澄清,它是桌面和Web应用程序的自动化测试.理想情况下,它是一个完整的测试套件,可以运行应用程序的全部功

Chr*_*ght 5

如果通过"进行集成测试和系统测试"来表示自动化测试,那么答案就是否定,没有标准方法.选择何种方法取决于:

  • 应用程序的特性(例如它是否有GUI?,它是只读的吗?它有多少外部依赖项等)
  • 你要测试的是什么(也许你只需要GUI测试,或者反之亦然,你真的不关心GUI,但内部逻辑很关键)
  • 您希望多快查看结果(例如,您的测试越快,测试变得越快)
  • 你团队的技能组合

就个人而言,我喜欢任何与JUnit集成的方法.JUnit是一个非常棒的框架,它得到了很好的支持,并且可以轻松地连接到一个连续的集成服务器.以下是一些可能的方法:

  • Selenium with JUnit - 用于驱动Web应用程序的绝佳工具
  • Concordion - 适用于所有应用程序类型.与JUnit集成并允许简单的英语测试规范.您的"夹具"/测试代码将挂钩到规范中的关键字,并对它们进行断言或执行操作.
  • FEST - 对于swing应用程序,它再次与JUnit集成(参见主题吗?;)(这里有更多选择)

以上示例提供了大量开箱即用的测试帮助.当然,它们仍然需要努力连接到您的应用程序并进行维护,但其优点非常值得.除了上述内容之外,您可能还需要考虑如何存根或模拟应用程序的区域.也许您希望"在GUI下"或"在数据库之上"进行所有测试.在第一个场景中,您需要测试从代码中GUI与其交互的位置开始,在后者中,您需要存根与数据库交互的服务.

重点是,有很多方法可以做到这一点.最好的开始是非常清楚地了解您想要从测试中获得什么.然后根据你想要测试的内容,了解现有的框架是什么来帮助你,最后,不要试图在一个晚上征服世界.从小开始运行一些测试.获得绿色酒吧(总是很高兴看到!)获得一个稳定可靠的测试平台,并确保您对此感到满意.然后添加更多内容.