3

Java EE 对我来说是一个新世界,我的经验是在嵌入式系统上,但我开始了一份新工作,我想知道是否有基于 Java EE 的 Web 应用程序可以遵循的测试过程。该领域通常采用哪种测试策略?

  • 基本单元测试
  • 功能测试
  • 集成测试
  • 系统测试、压力测试、负载测试……

.... Web 开发的每个测试阶段的范围是什么?由于涉及服务器代码和客户端代码,我不知道哪个是该领域的最佳方法。此外,还涉及几台机器:数据库、业务层、表示层、负载平衡器、CAS 身份验证、Active Directory...

每个阶段的最佳测试环境是哪个?使用生产CAS认证时,...

链接、书籍、简单的解释或其他类型的地址非常受欢迎。

4

2 回答 2

1

在我看来,最好的测试框架是用于单元测试的 Junit。 http://www.junit.org/ - 用于模拟对象,您将需要很多,例如在 j2ee 环境中模拟数据库、模拟服务和其他对象,以便能够单独测试。使用http://www .jmock.org/ , http://code.google.com/p/mockito/ , http://www.easymock.org/ - 用于验收和功能测试有 selenium http://seleniumhq.org/这个框架使您能够自动化您的测试。我建议您阅读有关一般测试和特别是 j2ee 环境测试的书籍。

http://www.manning.com/rainsberger/ 
http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530
http://manning.com/massol/ 
http://manning.com/koskela/
于 2012-06-04T12:43:06.297 回答
0

首先,无论你打算做什么测试,都要注意你的构建过程(一个好的起点是 maven 作为构建工具)

Junit(或 testng)几乎适用于所有事情(由于其简单性)

单元测试:对于模拟,我更喜欢 Mockito 而不是 jmock 或 easymock。

验收测试:关于 UI 测试,selenium 非常适合 Web 应用程序(如果您打算进行大量 UI 测试,请查看 PageObject 模式)。对于其他接口测试(如 webservice),soapui 是一个不错的起点。

集成测试:你会遇到中间件问题,主要是通过容器在java中解决。现在变得有趣了 :) 如果您在“真正的”JEE 中运行,那么这取决于它是否在 JEE6 之前或不是从 JEE6 开始,您有一个嵌入式容器(这确实简化了测试)。否则,请使用依赖注入框架(Spring,Guice,...)。

集成或验收测试的其他提示:

  • 您可能需要模拟一些接口(看看 MOCO 来模拟基于 HTTP 的外部服务)。
  • 还可以考虑一些嵌入式 servlet 容器(Jetty)来简化 web 测试。
  • 配置和配置也可能是一个问题。例如:对于数据库,您可以使用“flyway”或“liquibase”自动执行此操作
  • 数据库测试有两种方法:在每次测试后重置数据(参见 DBUnit)或在事务测试中(参见 Spring 测试示例)
于 2013-11-15T16:16:56.520 回答