杨永国
摘要:Web服务采用SOA架构,衍生出了多种软件测试技术,其测试问题也引起了越来越多的关注。在了解Web服务及其测试发展情况的基础上,该文对常用Web服务软件测试技术展开了分析,并结合技术应用问题提出了分布式检测软件开发技术,完成了技术实现过程的介绍,为关注这一话题的人们提供参考。
关键词:Web服务;软件测试技术;分布式检测
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)02-0083-02
Web服务技术实际为新型软件开发技术,拥有开放标准,能够实现跨平台操作,所以在电子通讯、信息技术处理等多个领域得到了应用,将成为未来软件开发重要系统架构模式。但随着网络的快速发展,软件开发日渐复杂,采用传统软件测试技术已经无法满足开发需求。因此针对Web服务,还应加强软件测试技术研究,以推动软件开发进程。
1 Web服务及其测试发展
作为能够借助网络支持机器与机器间互操作的交互软件系统,Web服务可以采用预定义的Web标准为各种应用程序提供交互功能,采用松耦合的集成模型,保证集成得到的模型能够满足异构系统的灵活性要求。现阶段Web服务都基于SOA,可以划分为SOAP和REST,前者能够使用SOAP接口进行消息传递,并利用WSDL实现Web服务描述,后者利用REST接口实现信息传递,利用通用HTTP方法进行资源描述、发布。为保证服务正确,需要进行Web服务测试。从Web服务测试发展情况来看,经历了基本功能测试、服务交互测试和服务质量测试三个发展阶段。在最初阶段,仅将Web服务当成是单元组成开展单元测试。进入到服务交互测试阶段,开始进行SOA测试,结合SOA特性对服务绑定功能、异步服务消消息传递功能、SOAP中介能力功能等进行测试[1]。发展至今,Web测试开始进行服务动态运行能力测试,具体进行服务组合测试和版本测试。从总体来看,Web服务测试从单个服务静态测试向组合服务动态运行测试的方向转变,使网络连接中断、服务失效、调用序列错误等Web服务的特定问题得到了解决。
2 Web服务软件测试技术分析及实现
2.1 常用软件测试技术
不同于传统软件模块,Web服务需要在Web上进行部署,封装性较好,用户仅能看到对象提供的功率列表。Web服务需要采用标准协议规范,可集成性较好,能够实现自描述,对服务测试需要满足标准规范要求。而Web服务需要在难以预知环境中运行,不确定并发用户数量、服务调用模式、访问方式等,将给服务测试带来一定困难。在动态环境中进行服务发布、调用等操作,也造成服务测试具有不可预见性。在分布式环境中完成消息传送,则对信息响应提出了较高要求。现阶段,Web服务测试可以采用多种测试工具。Web注入为常见测试软件,测试时需要对XLM文件进行读取,其中包含基本操作、需要测试的数据信息和测试服务URL。通过文件系列分析和计算,能够得到测试结果和报告。采用WStese工具,能够对用户制定Web服务进行激活和验证,并对测试结果进行返回。将测试结果与预期结果进行比较,可以确定服务操作运行效果。测试中,需要将待测Web服务操作名称、地址、对应激活操作输入系统,完成各种数据自动识别和分析。采用SoapUI工具,实际就是将多个测试套件组合起来,得到相应测试项目。在套件中,包含多个测试用例,每个用例由发送请求、接收响应、改进测试程序、分析验证等步骤构成。应用Testmaker工具,能够利用测试代理进行脚本提供。测试期间,能够利用“代理导向”对WSDL文件进行读取,完成用于测试代理的基本结构创建,辅助人员对源代码进行检查,确定其中缺陷,并通过人工填写进行补充[2]。此外,也可以采用WebServiceTester等工具,能够实现自动化测试用例的生成,完成Web服务的负载测试、回归测试、功能测试等操作,并对Web服务进行安全测试和BPEL测试。
2.2 软件测试技术问题
受SOA架构特性影响,Web服务测试具有一定难度。SOA是面向服务软件的策略,包含服务提供者、消费者和代理商三个参与者,承担服务发布、发现和绑定活动。除了服务的提供者,其他参与者想要获取服务只能对服务接口进行访问,所以包含服务测试人员在内的其他人员无法获得服务代码,仅能根据提供者发布的服务描述文档和规约开展测试作业。在服务发布阶段,只获得服务描述信息,而缺少源代码,消费者和代理商仅能开展黑盒测试,利用接口文档完成待测系统验证。在发布的文档中,也仅对接口语法进行了说明,缺少服务行为信息,还应采用语义Web服务技术提供丰富语义规约,才能对服务间的互操作性进行规定和实现。与此同时,形成的服务运行架构具有一定独立性,测试人员难以实现服务运行时的控制。在组合服务执行过程中,Web服务具有自适应性,导致服务测试在离线时难以对被激活的服务进行确认。而Web具有动态特性,需要完成在线测试。针对服务进行大规模使用,开展在线测试可能导致服务崩溃,造成额外测试开销产生。在软件Web服务无法改变时,更新后还要完成服务重新测试。现有Web服务软件测试技术主要用于执行测试用例和辅助分析評价结果,测试用例的生成和数据模型的构建需要依靠手工完成,导致测试开销较大。因此从总体来看,采用常规测试方法无法满足Web服务高效测试需求,还要寻求有效测试方法。
2.3 测试问题解决思路
在Web服务测试方面,可以采用形式化规约方式,完成面向Web服务软件系统的自动化测试。针对软件系统及其特征,需要采用数学定义语言进行描述,在系统开发早期引入系统模型,完成软件形式化验证,以便从中得到功能性测试用例,对检测结果正确性进行检验。而系统服务器间通讯需要按照Soap进行,限制测试程序能够使服务器通信得到规范,保证信息得到快速、安全传递。而服务器使用为系统化过程,应保证其与软件交互正常。采用分布式检测模型对Web服务进行软件测试,能够对逻辑层的分布程序进行应用的同时,提出网络中心外部协同程序,保证各服务在合理平台上运用不同编程语言进行处理,使各处理优点能够得到迅速查找。针对整个测试程序,应用各种程序都需要进行服务请求,不仅需要依靠Web服务正确性验证软件正确性,需要在服务器交互上实现处理。而Web服务程序错误的产生,与分布式结构尚未发展成熟有关,使得测试期间容易出现小偏差,导致通讯信息交互错误,造成软件使用期间出现负载超量和漏洞。针对问题进行处理,需要保证信息按照正确顺序传递。实际消息传递期间需要经过多个系统,然后达到使用者手中。一旦中间发生错误,将引起系统或软件崩盘,造成服务信息错误。如系统相关参数或分布式结构存在冲突,将导致信息出现各种可能,造成系统运算量增加,引起系统测试卡顿或崩溃问题。采用接口技术,在信息到达接口时需要完成信息辨别,然后对相关操作进行响应。在程序结构中,则包含大量子程序调用内容。
2.4 测试技术改进方法
对Web服务测试软件行为进行建模,需要对软件与运行环境间的交互进行模拟,对软件系统接口进行识别,完成所有可能输入序列的构建。构建的行为模型被称之为测试模型,需要结合模型开发难易程度、测试用例信息包含程度等进行选择。实际在Web服务分布式软件测试系统建立时,需要将软件测试重点放在服务器间通信上,以便实现服务总体的抽象化和图形化处理,帮助用户直观发现通讯期间信息表达错误。系统包含管理层、数据层,数据层能够对需要调用的程序进行获取,管理层可以完成与通讯相关的信息进化与抽离,使数据模型得到充填,以便实现系统通讯关键词的精确控制。在合理条件下对整个服务进行重演,用户可以充分利用控制程序完成相关内容修改,实现通讯过程精确控制和处理。通过虚拟化测试操作,能够使负载测试等服务测试在合理范围内进行[3]。在测试程序中,多采用Master模式,能够实现自身源代码被控对象的实时监测,为外界提供接口的同时,有效进行程序检测。在测试模型中,采用分布式程序能够实现双向测试,从不同角度满足服务检测需求。针对不可控的Web服务,采用该方法能够实现综合分析,在软件运行中取得良好在线测试结果。
2.5 测试技术改进实现
结合上述思路,需要采用差异性分布式检测方法进行Web服务测试问题处理,通过逐一排查确保系统整體性,使软件检测过程中的信息能够得到有效控制。在实际分析过程中,需要加强程序特征把握,做出合理诊断。对测试过程进行控制,需要对服务器间通讯记录进行捕捉,完成信息格式分析,确保通讯消息传播拥有更多控制权,能够实现负载压力和信息转发等测试,及时发现分布式结构错误。在Web服务计算模型中,由于Soap协议具有便捷性,能够满足分布式结构对信息传输速度的要求,实现测试步骤简化,因此能够使服务能力和运行状态得到保障。在各异构平台之间,可以发挥消息传递协同作用。在实际通讯中,能够使平台间限制得到突破,保证通讯效果。利用网络传输协议进行消息传送,需要对常见网络协议进行处理。面对可能出现的形式变化,考虑到网络协议在企业间通讯存在局限,需要完成Soap协议改进,采用适合企业的通讯机制。具体来讲,就是对分布式系统结构进行精简,保留基本功能,直接采用pc调用方式进行Web服务获取,以便获得简短通讯过程,能够实现结构快速回调[4]。采用消息机制进行进程间联系的传递和接收,能够在通讯中实现交互异步,保证通讯的安全性和便捷性。
3 结论
综上所述,在Web服务软件测试中,采用常规测试工具难以满足软件运行过程中在线测试需求,容易导致软件因开销过大出现崩溃问题。想要保证测试结果准确性,需要加强分布式检测方法的运用,对Web服务系统服务器间的通讯进行高效检测,技术发现信息传递错误,继而得到科学的测试结果。
参考文献:
[1] 侯俊,周红,马春燕,等.面向WEB服务的测试用例自动化生成方法[J].西北工业大学学报,2018,36(1):149-155.
[2] 陈龙生.Web服务软件测试技术的实现探讨[J].科技与创新,2017(18):102,107.
[3] 孙志斌,蒲春俊.Web服务自动化测试技术初探[J].化工管理,2017(14):173-174.
[4] 史秋艳.Web服务自动化测试技术[J].信息与电脑:理论版,2017(3):135-136.
【通联编辑:光文玲】