论文部分内容阅读
Web Service由于其松耦合性、独立性和易调用性等特点,近年来在各个领域得到了广泛的应用。人们对Web Service的质量要求也越来越高。测试是保证WebService质量的有效手段。现有的测试方法不能有效地解决Web Service异构性和分布式等难题。Agent具有自治性、主动性和反应性等特点,能适应分布式环境。本文将Agent技术应用到Web Service的测试中,提出了基于Agent的Web Service测试模型。该模型依据测试任务的不同,将Agent划分为不同的角色,通过Agent之间相互协作来完成测试,并对测试任务进行划分与分配来提高测试效率。本文还讨论了在不同的测试要求下,模型的具体测试流程。对该模型的分析表明,该模型能有效地解决Web Service的动态性和分布式结构的测试问题,测试效率较高。为了提高模型的测试效率,本文提出了一种测试用例自动生成方法。该测试用例自动生成方法包括测试序列自动生成和测试数据自动生成两部分。当Web Service有多个操作时,现有测试用例生成方法需要人工参与,自动化程度不高,并且没有提出一个规范化的方法。为了解决这些问题,本文分析了WSDL文档中的操作之间的联系,研究了查找操作之间联系的方法,构建了一个测试序列模型用于描述Web Service中操作之间的关系,在该测试模型序列的基础上,使用操作序列自动生成算法来生成测试序列。实例研究表明该方法是可行的。在测试数据自动生成方面,本文对变异测试数据生成方法进行改进,提出了基于决策表的变异测试数据自动生成方法。该方法先构造Web Service的合约,在合约的基础上使用决策表按照策略生成初始测试数据集,然后使用四种合约变异算子对合约进行变异,在合约和它的变异体上运行测试数据,记录每个测试数据的杀死合约数,然后使用贪心算法进行选择,得到最终的测试数据集。实验结果表明,该方法和合约变异测试数据自动生成方法相比,缩小了初始测试集的规模,减少了合约变异选择的时间,提高了测试效率。