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

时间:2010-04-28 18:17:48

标签: java integration-testing system-testing

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

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

1 个答案:

答案 0 :(得分:5)

如果“进行集成测试和系统测试”是指自动化测试,那么答案是否定的,没有标准方法。选择何种方法取决于:

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

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

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

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

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