可信的国家软件资源共享与协同生产环境
课题编号:2007AA010301
服务运行总线 软件测试分析报告
TRUSTIE课题组 二〇一〇年十二月
文档修改记录
修订版本号 V1.0 V2.0 V3.0 修订人 黄炎久 黄炎久 黄炎久 修改内容 创建文档 更新测试内容 审阅并定稿 日期 2009-01-30 2009-02-07 2009-02-14 备注 2
目录
1 引言 ............................................................................................................................................ 6 1.1 1.2 1.3 1.4
编写目的 ............................................................................................................................. 6 背景 ..................................................................................................................................... 6 定义 ..................................................................................................................................... 7 参考资料 ............................................................................................................................. 7
2 测试概要 .................................................................................................................................... 8 3 测试结果及发现 ........................................................................................................................ 9 3.1 3.2 3.3 3.4
组合服务发布查询模块 ..................................................................................................... 9 服务调用代理模块 ........................................................................................................... 10 执行结果反馈模块 ........................................................................................................... 11 服务远程热部署工具 ....................................................................................................... 11
4 对软件功能的结论 .................................................................................................................. 12 4.1 4.2 4.3 4.4
组合服务发布查询模块 ................................................................................................... 12 服务调用代理模块 ........................................................................................................... 12 执行结果反馈模块 ........................................................................................................... 13 服务远程热部署模块 ....................................................................................................... 13
5 分析摘要 .................................................................................................................................. 13 5.1 5.2 5.3 5.4
能力 ................................................................................................................................... 13 缺陷和限制 ....................................................................................................................... 14 建议 ................................................................................................................................... 14 评价 ................................................................................................................................... 14
6 测试资源消耗 .......................................................................................................................... 14
3
图目
图 1 服务总线系统结构图 ..................................................................................................... 8
4
表目
表格 1 功能号 (1001) 功能名:组合服务发布 .................................................................... 10 表格 2功能号 (1002) 功能名:非BPMN文件发布 ........................................................... 10 表格 3功能号 (1003) 功能名:组合服务重复发布 ............................................................. 10 表格 4功能号 (1004) 功能名:组合服务查询获取 ............................................................. 10 表格 5功能号 (2001) 功能名:服务调用代理模块 ............................................................. 10 表格 6功能号 (2002) 功能名:服务调用代理模块 ............................................................. 11 表格 7功能号 (3001) 功能名:执行结果插入查询模块 ..................................................... 11 表格 8功能号 (3002) 功能名:错误信息插入查询模块 ..................................................... 11 表格 9功能号 (3003) 功能名:服务远程热部署工具 ......................................................... 12 表格 10功能号 (3004) 功能名:服务远程热部署工具 ....................................................... 12
5
1 引言
1.1 编写目的
本文档旨在说明服务运行总线实现代码的测试内容和对软件的评价准则,是测试人员进行功能测试、集成测试以及回归测试的依据。
本文档主要面向系统测试人员,要求测试人员熟悉Web Services技术相关概念、SOAP协议、WSDL协议、Axis2技术、JAVA编程语言,并具备一定的软件设计和开发经验。本文不包括相关技术和规范的介绍,具体内容请阅读参考文献。
1.2 背景 1.2.1 服务组合
Web服务技术解决了异构平台/系统之间应用的整合问题,为企业之间应用集成提供了技术基础。为了满足应用的需求,需要按照一定的粒度进行Web服务的组合。Web服务组合作为实现灵活的跨组织应用集成和资源共享的核心技术得到了许多研究机构的共同关注,成为新兴的研究热点。
目前并没有对于服务组合的权威定义,几个重要文献中对于“服务组合”解释如下:服务组合是指将若干个Web服务合并起来提供增值服务的过程[3];广泛可用的和标准化的Web服务使得根据特定的业务流程连接多个业务伙伴的Web服务来实现B2B互操作成为可能,这一实践称为服务组合[4];服务组合使得开发者在面向服务的计算与生俱来的描述、发现和通信能力之上创建应用,这些应用可被快速部署,为开发者提供重用能力以及为用户提供对于多种复杂服务的无缝访问。从这些定义中,我们可以看出:服务组合的关键在于组装和聚合Web服务,提供新的更为复杂的、满足用户业务需求的新服务。
1.2.2 服务总线
服务组合的应用面临许多实际的问题,主要表现在以下几个方面。首先,如何方便的获取满足功能的原子服务。要实现服务组合业务逻辑和技术的分离,就
6
必须能够在运行时而非开发阶段进行原子服务发现和调用。这就需要在服务提供者和请求者之间,存在一个专门的中介来负责维护所有服务容器和原子服务的信息,统一处理服务查询请求。 同时负责组合服务的运行时管理,处理组合服务的调用请求。
首先,服务总线通过服务的虚拟化,实现了组合服务业务逻辑和具体技术的分离。在组合服务的开发阶段不必绑定具体的服务,而在具体的服务发生改变时也无需更改业务逻辑。此外,服务总线可以为服务提供者绑定多个服务请求者,并根据所提供服务的质量优劣作相应的调整,保证组合服务的有效执行。
第二,服务总线负责组合服务的运行时管理功能。服务总线挂接了系统内所有的服务容器和执行引擎,在运行时根据用户的原子服务或组合服务调用请求,作合理调度,包括路由和绑定满足功能的原子服务,将任务分配给空闲的组合服务执行引擎来执行以从而保证整个系统的性能。
在其它方面,许多企业级总线还提供了协议转换,消息格式转换等功能,集成了使用不同消息协议的系统。还提供了遗留系统适配功能,方便集成现有系统,降低了开发成本。
1.3 定义
【SOAP】Simple Object Access Protocol简单对象访问控制协议是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。
【BPMN】Business Process Modeling Notation业务流程建模标注是一个全新的业务流程建模和web服务标准。
【组合服务】随着web服务技术的日益成熟,越来越多的稳定易用web服务共享在网络上。但单个的web服务能够提供的功能有限,为了更加充分地利用共享的web服务,有必要将共享的web服务组合起来,这种由原子服务组合而成的服务就称为组合服务。
1.4 参考资料
[1] 课题申请书:高可信软件生产工具及集成环境. 2007年07月
[2] 课题任务合同书:可信的国家软件资源共享与协同生产环境. 2007年12月 [3] 《面向服务的软件生产线服务运行总线需求规格说明》
7
[4] 《面向服务的软件生产线服务运行总线软件概要设计说明》 [5] 《面向服务的软件生产线服务运行总线软件详细设计说明》 [6] 《面向服务的软件生产线服务运行总线软件用户手册》
2 测试概要
服务总线是实现组合服务QoS动态选择及调整机制的核心组件,负责收集用户输入的组合服务流程名称、相应的执行参数和QoS约束,根据组合服务流程名称从组合服务库中获取相应的组合服务流程文件,生成该组合服务流程实例号,解析组合服务流程结构,根据解析的流程结构和用户输入的QoS约束值,从服务资源库中动态选择原子服务使得组合服务QoS满足用户QoS约束,将服务选择结果与该组合服务流程实例建立映射关系。动态选择原子服务完毕后将组合服务流程文件和流程实例号发送至组合服务执行引擎执行,组合服务执行引擎在调用组合服务流程中的原子服务时将流程实例号和服务调用消息发送至服务总线,服务总线根据实例号找到匹配的组合服务实例,将服务调用消息发送至选择匹配好的原子服务。同时服务总线实时监控所选择的服务QoS变化以及组合服务流程的执行变化,若发现服务QoS变化或组合服务流程的执行变化导致组合服务QoS不能满足用户QoS约束时,服务总线进行组合服务QoS动态调整使得组合服务QoS重新满足用户QoS约束。服务化软件的基于策略的协同运行环境的整体系统架构图如下所示:
图 1 服务总线系统结构图
服务总线实现方式为一个Web服务,部署在系统的服务容器中。SOARBus
8
在接收组合服务执行请求时,会根据组合服务流程中所描述的原子服务信息从服务资源库中查询获取原子服务相关信息,在组合服务QoS动态选择完毕后将组合服务流程文件发送至组合服务执行引擎,服务总线在执行过程中需要与服务资源库和组合服务执行引擎进行交互。
考虑到组合服务QoS属性中的响应时间为组合服务执行完毕后的响应时间,即为组合服务执行引擎执行完毕组合服务的时间。组合服务执行引擎的负载会影响组合服务执行时间,服务总线在将组合服务发送至组合服务执行引擎之前,需考虑组合服务执行引擎的负载状况,将组合服务发送至负载最小的组合服务执行引擎上执行。
由于每次组合服务执行引擎需要调用原子服务时是先将组合服务流程实例号与服务调用信息发送至服务总线,服务总线需查找之前进行服务QoS选择的服务匹配信息,将服务请求调用信息发送至匹配好的原子服务,在Web服务中,每接收一个服务请求消息服务容器就新生成一个线程处理该服务请求消息,但是服务匹配信息只能维护在一个映射表中。所以服务匹配信息在服务总线中采用设计模式中的单例模式存在,否则新生成的线程无法去查找服务匹配信息。
列出组装测试和确认测试中的每一项测试内容的名称标识符、这些测试的进度安排以及这些测试的内容和目的,例如模块功能测试、接口正确性测试、数据文卷存取的测试、运行时间的测试、设计约束和极限的测试等。 (1) 测试组合服务发布数查询模块 (2) 测试服务调用代理模块 (3) 测试执行结果反馈模块 (4) 测试服务远程热部署工具
3 测试结果及发现
3.1 组合服务发布查询模块
把本项测试中实际得到的动态输出(包括内部生成数据输出)结果同对于动态输出的要求进行比较,陈述其中的各项发现。
9
表格 1 功能号 (如1001) 功能名:组合服务发布
功能描述 操作流程 预期结果 测试结果 备注 将BPMN文件部署到组合服务库中 在BPIDE选中一个BPMN文件点击Deploy按钮 弹出消息窗口,显示部署成功 表格 2功能号 (如1002) 功能名:非BPMN文件发布
功能描述 操作流程 预期结果 测试结果 备注
将非BPMN文件发布到组合服务库中 在BPIDE选中一个非BPMN文件点击Deploy按钮 弹出消息窗口,显示文件非bpmn格式,部署失败 表格 3功能号 (如1003) 功能名:组合服务重复发布
功能描述 操作流程 预期结果 测试结果 备注
部署已经部署过的BPMN文件 在BPIDE选中一个已经部署过的BPMN文件点击Deploy按钮 弹出询问窗口,提示库中已有同名文件,是否覆盖已有文件。可选择是或否。 表格 4功能号 (如1004) 功能名:组合服务查询获取
功能描述 操作流程 预期结果 测试结果 备注 根据组合服务名称从组合服务库中查询获取BPMN文件 使用BPIDE中的流程查询插件,输入组合服务名,点击查询 返回BPMN文件路径
3.2 服务调用代理模块
用类似本报告3.1条的方式给出第 2项及其后各项测试内容的测试结果和发现。
表格 5功能号 (2001) 功能名:服务调用代理模块
功能描述 操作流程 预期结果
组合服务调用代理功能 使用服务调用代理执行BPMN文件:eStore.bpmn ,输入参数构造见2.2.3 返回jobId 10
测试结果 备注
表格 6功能号 (2002) 功能名:服务调用代理模块
功能描述 操作流程 预期结果 测试结果 备注
组合服务调用代理的错误信息处理功能 使用服务调用代理执行BPMN文件:eStore.bpmn,输入参数构造见2.2.3 返回错误信息 3.3 执行结果反馈模块
表格 7功能号 (3001) 功能名:执行结果插入查询模块
功能描述 操作流程 接收客户端输入,查看是否正确插入执行结果 使用服务调用代理执行BPMN文件:eStore.bpmn,输入参数构造见2.2.3, 但为了验证错误信息处理功能,去掉以下几行password.setParamName(\"password\"); password.setParamType(\"String\"); password.setParamValue(\"jiyipeng\") 预期结果 测试结果 备注
表格 8功能号 (3002) 功能名:错误信息插入查询模块
返回为2 功能描述 操作流程 接收客户端输入,查看是否正确执行 但为了验证错误信息处理功能,去掉以下几行password.setParamName(\"password\"); password.setParamType(\"String\"); password.setParamValue(\"jiyipeng\") 预期结果 测试结果 备注 能够在执行结果库中查询到相应的执行错误信息 3.4 服务远程热部署工具
11
表格 9功能号 (3003) 功能名:服务远程热部署工具
功能描述 操作流程 预期结果 测试结果 备注
部署较大的bpmn文件(>10M) 输入需要部署的服务名和服务文件路径以及远程服务容器地址,运行客户端程序 打印部署成功的信息 表格 10功能号 (3004) 功能名:服务远程热部署工具
功能描述 操作流程 预期结果 测试结果 备注 测试部署服务(1M左右)的时间(简单的性能测试) 在5台不同的机器上面测试客户端输入服务名和服务地址以及远程服务容器地址,重复执行20次记录执行时间 测试结果另外附表格给出 4 对软件功能的结论
4.1 组合服务发布查询模块 4.1.1 能力
基本满足了之前在系统需求分析中定义的操,并且在一些非功能性需求方面具有一定的保证。
4.1.2 限制
暂不支持响应速度快的查询
4.2 服务调用代理模块 4.2.1 能力
基本满足了之前在系统需求分析中定义的操,并且在一些非功能性需求方面具有一定的保证。
12
4.2.2 限制
暂不支持WSDL2.0协议的服务代理调用
4.3 执行结果反馈模块 4.3.1 能力
基本满足了之前在系统需求分析中定义的操,并且在一些非功能性需求方面具有一定的保证。
4.3.2 限制
无
4.4 服务远程热部署模块 4.4.1 能力
基本满足了之前在系统需求分析中定义的操,并且在一些非功能性需求方面具有一定的保证。
4.4.2 限制
暂不支持WSDL2.0协议的服务代理调用
5 分析摘要
5.1 能力
陈述经测试证实了的本软件的能力。如果所进行的测试是为了验证一项或几项特定性能要求的实现,应提供这方面的测试结果与要求之间的比较,并确定测试环境与实际运行环境之间可能存在的差异 对能力的测试所带来的影响。
经测试证实了的本软件的能力如下: 1. 能够满足组合服务发布查询
13
2. 能够满足服务代理调用 3. 能够满足执行结果反馈 4. 能够满足服务远程热部署工具
5.2 缺陷和限制
陈述经测试证实的软件缺陷和限制,说明每项缺陷和限制对软件性能的影响,并说明全部测得的性能缺陷的累积影响和总影响。
5.3 建议
无
5.4 评价
该项软件的开发已达到预定目标,能够交付使用。
6 测试资源消耗
总结测试工作的资源消耗数据,如工作人员的水平级别数量、机时消耗等。 测试人员:2名 机时消耗:7*10小时/人
14
因篇幅问题不能全部显示,请点此查看更多更全内容