摘要:随着soa技术的不断发展,对基于soa的软件测试方法的研究变得越来越重要。本文在soa架构的基础上,讨论了基于soa的软件测试的难点和基本方法,设计了基于soa架构的软件测试方法。
关键词:soa;web service;软件测试
一、引言
软件测试是基于soa架构的信息系统的一个重要组成部分,web service作为实现soa的一种形式,已得到广泛的关注与应用。对web service进行充分测试可保证web service的质量,然而由于web service所具有的特点,传统的软件测试技术方法不再适用于基于soa架构的应用系统的测试,所以对基于soa架构的应用系统的测试方法和技术的研究成为当务之急。
二、基于soa的软件测试的难点
基于soa架构开发的应用系统采取的测试方法普遍还是传统的面向对象的测试方法,由于系统架构的改变,测试方法也需要变化。在对基于soa的应用系统进行测试时需要考虑两个问题:一是程序自身的问题。对于多个相互独立的web service分布单元,需要处理其间的通信、同步以及并发操作。二是分布运行环境的问题。包括程序与运行环境的合作、网络通信的完整性、平台无关性以及异构系统间的互操作性。基于soa的软件测试的难点主要包括:服务级测试、进程级测试和系统性能测试三方面。
1、服务级测试
服务级测试在基于soa架构的软件测试中处于重要地位。各种服务在编程、开发、服务粒度等方面都有很大的差别,对他们的更新和维护更加复杂,因此更需要进行质量保证测试。
2、进程级测试
进程级测试是指测试服务被提取到进程中和混合应用中的一种测试方式,进程测试通常是以服务本身的方式显示出来的,因此是对核心服务以及服务调节单位和系统关系的整个进行的另外一个级别的测试。
3、系统性能测试
系统性能测试是值对基于soa架构的信息系统的服务、构成、进行和系统等各个级别的测试,用来验证整个系统的性能。在配置基于soa的信息系统时遇到的大部分质量问题都和系统性能有关,在进行性能测试时必须要考虑系统的体系结构。
三、基于soa的软件测试方法设计
1、功能测试
功能测试是对基于soa的应用系统的功能进行测试,主要是检验web service交互时可能引发的消息错误,即看调用过程中是否有无效的操作,以及web service是否可重复调用的问题。基于soa的功能测试的设计方案如表1所示。
2、性能测试
基于soa的性能测试包括基准测试、容量测试和soak测试三个主要阶段。
(1)基准测试
基准测试是用来确定被测应用程序是否存在性能衰退,并且收集可重复性能测试结果以作为性能基准。基准测试的最好方法是每次测试只改变一个参数,包括响应时间驱动的测试和吞吐量驱动的测试。
表1.功能测试设计方案
方案名称 | 目标 | 用户输入 | 期望输出 |
测试1 | 服务调用成功 | 正确的输入参数 | 正确的服务计算结果 |
测试2 | 服务调用抛出 | 错误的输入参数 | 捕获用户自定义异常 |
测试3 | 服务调用异常 | 正确的输入参数 | 捕获系统异常 |
(2)容量测试
容量测试是看被测应用程序在一定测试环境下能够达到的最大处理能力。容量测试尝试模拟更加接近真实用户使用的环境,并且用更为真实的用户负载来测试soa平台的容量规模。
(3)soak测试
soak测试是在用来测试基于soa平台程序的健壮性,是在一个稳定的并发用户上进行的long-run测试,通过soak测试能够发现内存泄露等严重的问题。
四、结论
随着soa架构的日益发展和成熟,基于soa架构的应用也越来越广泛,因此对基于soa架构的应用系统进行软件测试是非常必要的。本文介绍了基于soa架构的软件测试的难点和基本方法,重点设计了基于soa架构的应用系统进行功能测试和性能测试,但这些方法还不够成熟,在今后的工作中还应当不断的进行丰富和完善。