● 摘要
随着互联网技术的发展和网络化应用的延伸,以自治、分布、动态的服务化软件为中心的组合型软件生产方式迅速发展。特别是近年来迅速发展的组合服务技术,通过将独立的Web服务进行组合满足复杂业务需求也为异构信息、异构平台的共享与集成提供了重要的基础,并实现了软件的重用。测试作为软件生产周期的重要阶段,是保证是软件功能正确性、性能和可靠性的必要手段。同样,针对组合服务软件的测试,对于检验组合服务设计的合理性,调整和改进组合服务系统的设计都具有重要的意义。相对于形式化的验证,由于组合服务运行的特点,在真实环境上部署并执行组合服务成为对其测试的一个较合理方案。但是,针对组合服务的测试在多个方面存在挑战:首先是分布式测试环境的远程构建问题,由于组合服务通常在分布式环境下执行,传统的人工本地部署和配置方法无法适应;其次,由于组合服务业务流程具有多参数多取值的特征,导致相应参数的取值组合数量巨大,沿用传统的测试用例设计方法可能导致组合空间爆炸的问题;此外,对组合服务测试描述、对分布执行过程的监控,以及对测试结果的反馈处理等环境都产生了新的问题。面对上述问题,本文分析了组合服务测试方法及相关理论和系统工作,根据组合服务测试系统需要解决的普遍问题和具体需求,设计并实现了基于BPMN规范的组合服务自动化测试系统SOArTester,实验表明SOArTester系统提高了组合服务测试的自动化程度,提高了测试的效率,因而降低了组合服务软件生产的整体成本。本文主要工作如下:1. 针对测试隔离性的需求,对测试环境的远程自动构建方法和技术进行分析和研究,设计了组合服务分布式测试环境自动构建和卸载的解决方案;2. 针对组合服务业务流程多参数多取值的特征导致测试参数取值组合数量巨大的问题,对组合误差测试用例的生成和精简技术进行了研究,提出基于执行流分析,等价区间划分和组合精简模型的测试用例生成算法;3. 针对组合服务测试执行过程的监控需求,设计并实现了对测试用例从提交到返回结果的执行全过程的动态监控机制和系统;4. 通过对测试结果的处理,进行错误的定位及反馈;通过对批量历史测试数据的分析和挖掘,为系统建模和开发提供多种统计分析报告。