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应用程序的瓶颈,并对应用程序进行优化。
文章来源于领测软件测试网 https://www.ltesting.net/