论文部分内容阅读
随着计算机技术的发展,自动化测试已经是软件测试行业重要的一部分。在软件规模和复杂程度的日益增加的同时,手工测试面临着巨大的瓶颈,结合软件行业对于自动化测试的需求,在基于模型的软件测试方法研究基础上,对基于统一建模语言(Unified Modeling Language,UML)的时序图模型研究,针对UML时序图的半形式化特性,结合形式化描述语法和语义,借助谓词集和集合论生成测试用例。测试用例生成系统主要包括测试路径生成和测试数据生成子系统。本文的主要工作与创新点如下:(1)借助Papyrus插件,画出被测软件的UML时序图,从而得到特定谓词逻辑的UML文档。通过谓词逻辑和集合论的形式化定义解析规约文档,实现从UML文档到可扩展标记文件(XML—based Metadata Interchang,XMI)的解析。通过设计XMI文档的解析工具,得到包含UML时序图中的对象、事件、消息以及约束的XML文件,再依照变异的深度优先遍历算法,自动生成测试路径。(2)扫描被测软件对外接口,存储消息参数类型,通过剖析源码,将软件数据流图抽象为结点路径,再对结点路径中消息参数随机生成,通过遗传算法对初始化的数据进行适应性准则匹配,对不符合条件的数据集进行交叉和变异优化后,得到路径覆盖率为100%的测试数据集合,最终生成测试用例。(3)依据表述性状态传递(Representational State Transfer,REST)风格架构的SSH(Spring Struts Hibernate)框架,设计并实现测试用例自动生成系统各功能模块,实现对生成的消息集合、事件集合、数据集合、测试路径、测试数据和测试用例的维护和管理,为企业提供灵活的测试用例生成和管理工具。论文的主要成果在于:提出并实现了基于UML时序图的测试路径生成方法和基于遗传的测试数据自动生成方法。它的理论意义在于:实现了对半形式化语言UML时序图的模型构建,自动生成测试路径。另外得到了基于遗传的路径覆盖率为100%的测试数据,有效地提高测试用例的覆盖率和准确性。其实际意义在于:当目标系统发生变化时,测试用例和计划都要发生改变,在实际项目中,受系统上线时间和预算的约束,测试人员往往凭经验和习惯等主观因素进行测试,导致测试的覆盖率和准确性都得不到保障。另外,目前的自动化测试工具只提供了测试用例管理的手段,追求软件市场强通用性,自动化测试无法实现其真正价值。论文提出的方案,实现了测试用例自动生成在项目中高效灵活的实施。