详细介绍J2EE应用的测试过程

开发 后端
系统软件已深入到生活各方面,对软件质量的要求在不断提高,软件测试成为软件开发中一个重要部分。J2EE应用开发越来越流行,并应用到各种大型电子商务中,这些电子商务对软件质量要求非常高。

J2EE是一种利用java2平台来简化与企业解决方案的开发,部署和管理相关的复杂问题的体系结构。J2EE技术的基础是java2平台的标准版。J2EE不仅巩固了标准版中的许多优点,还提供了对EJB,Servlet,JSP,XML的全面支持。J2EE包括四个层次,分别是客户层,web层,业务层和企业信息系统层。一个多层的分布式应用模型意味着根据功能应用逻辑被划分成组件,并可以在同一服务器或不同的服务器上安装组成J2EE应用的这些不同的组件。J2EE结构复杂,层次多,需求会不断更新,如何保证最终开发的质量变得至关重要。

在极限编程思想中定义了两种测试的类型。1.单元测试,对系统内部模块的测试。为了适应J2EE平台,还发展出与J2EE容器紧密结合的整合测试。2.功能测试。在软件测试中还有一个经常听到的是性能测试。由于性能测试与客户的需求密不可分,将它归类于接受度测试的延伸应用。考虑到J2EE的结构和技术,不但要对其中用到的技术进行测试,还要测试各层之间的联系。

下面对J2EE应用的测试过程进行具体介绍,主要包括对测试各阶段用到的测试类型和测试工具。

单元是整个软件工程的基础,因此单元的质量是整个软件质量的基础。在J2EE开发中,最小可测试单位是封装的类或对象,JUnit是一个很好的单元测试工具。Junit的核心类别是Testcase,每一个testcase代表一个命令对象,Testcase包含数个测试方法。用来测试被测类别中成员方法的输出与预期的结果是否相同。Junit平台还有一个核心类别是testSuite,每个testSuite代表一个复合的对象,一个testSuite可以由多个Testcase或多个testSuite组成。

在单元测试的基础上,需要将所有的模块按照要求组装成系统。在开发过程中需要考虑的问题如下

1.一个模块的功能是否对另一个模块的功能产生不利的影响。

2.各个子功能组合起来,能否达到预期要求的父功能。

因此在单元测试的同时可进行整合测试,发现并排除在模块连接中可能出现的问题。整合测试提供了J2EE容器的环境,可以快速轻易的检验出域对象与与J2EE容器的互动行为是否合乎逻辑。因此整合测试的对象是以一个EJB,Servlet或JSP的程序代码为基本单元。Cactus就是为解决整合测试问题而诞生的工具。Cactus是Junit的一个扩展,但和Junit又有些不同,它分三种不同的测试类别:Jsp Testcase,Servlet testcase,filter testcase。Junit的测试代码仅在客户端,而cactus的测试代码有服务器和客户端两个部分,协同工作。

功能测试检查在公共API边界处的代码,其目标是检验在用例中描述的行为,测试系统是否满足所需要的功能。每当完成一个阶段性的功能测试,也代表着完成了部分的系统功能。

HttpUnit是为功能测试而发展起来的测试工具。HttpUnit是用java编写的虚拟浏览器,用来模拟浏览器的内部行为。HttpUnit平台模拟使用者浏览网站所发出的request对象,将其送到目的网站,等网站发出response对象传回给httpUnit。HttpUnit是一种黑箱作业形式的测试工具,因此只要专注如何编写模拟浏览器行为的测试代码即可。

功能能否正确执行很重要,但多用户同时执行的效果又如何?这需要性能测试。在J2EE应用测试中,主要做的是压力测试。大多数压力测试检验应用程序能够在短时间内响应大量的用户请求。JMeter测试工具能够自动发送设定好的请求及跟踪应用程序的响应时间。通过分析测试报告能够找到J2EE应用程序的瓶颈,并对应用程序进行优化。

责任编辑:book05 来源: 新浪博客
相关推荐

2009-06-23 08:06:46

J2EE体系架构J2EE模型J2EE设计模式

2009-06-22 17:34:40

J2EE架构

2009-06-23 08:12:48

J2EE调用存储过程

2009-06-22 17:05:41

Java EEJava企业应用

2009-06-22 11:04:00

Jdbc存储过程

2009-06-10 14:10:23

J2EE学习J2EE是什么

2011-07-21 16:09:36

J2EE

2009-06-10 13:37:06

J2EE可伸缩性J2EE灵活性J2EE维护

2009-06-10 16:25:43

J2EE架构架构

2011-07-21 14:23:03

J2EE

2009-06-23 16:48:26

J2EE常见问题J2EE平台

2009-06-11 17:06:11

J2EE历史Java EE概述

2009-06-16 11:14:00

Hibernate+SJ2EE应用开发

2011-06-30 09:49:40

JSPJ2EE

2009-06-10 13:30:32

J2EE四层模型客户层Web层

2009-06-18 16:13:14

J2EE开发

2009-06-22 16:21:02

J2EE线程

2009-06-11 17:11:07

J2EE设计模式工厂模式

2009-06-22 11:50:00

J2EE Web应用快速开发

2009-06-11 17:07:49

WebsphereJ2EE应用程序
点赞
收藏

51CTO技术栈公众号