论文部分内容阅读
自动化测试技术的目的是为了提高软件测试的效率和质量,多年以来一直是软件工程研究的热点,而测试用例的自动生成则是自动化测试技术致力于解决的关键问题之一。类和对象是面向对象软件的基本单元,复杂类的测试是面向对象测试的重点和基础。本文针对现有复杂类测试用例自动生成技术存在的主要问题,研究相应的解决方法和技术,以提高测试用例的生成质量、确保测试的逻辑覆盖率。 本文采用统一建模语言、扩展有限自动机和遗传算法等技术,以面向对象复杂类测试为研究对象,研究从UML状态图自动生成复杂类测试序列和测试数据的技术并设计自动化测试工具。具体研究内容和成果如下: (1)针对目前生成的测试序列存在的不可达测试序列生成、预测消息序列生成算法不合理等问题,在对测试序列生成方法及常见状态机模型分析基础上,选取将UML状态图平展为扩展有限状态机模型的方法生成测试消息序列,并通过改进的UIOS算法生成状态预测序列,给出了一种将消息序列和预测序列相结合生成测试序列的方法。通过理论分析和实例验证,该方法能够生成满足状态——转移覆盖标准的较优测试序列。 (2)针对目前生成类测试数据存在的早熟收敛、编码方式不适合及适应度函数设计不合理等问题,以遗传算法和自适应遗传算法的原理为基础,提出改进的自适应遗传算法FIAGA,该算法通过设计自适应互补的交叉概率和变异概率控制种群进化,改进类测试数据对应的染色体编码方式及适应度函数,实现类测试序列对应测试数据的自动生成。经实验验证,FIAGA算法能加快种群收敛速度,有效避免“早熟”现象。 (3)针对目前测试工具尚未实现与建模工具的充分结合、缺少高效自动生成测试用例工具等问题,依据上述测试用例生成方法,以UML状态图作为输入,设计并实现了自动化测试用例生成原型系统,以自动生成类测试序列及测试对象数据,并以咖啡自动贩售机模型验证了工具的主要功能。 本文的主要研究成果对于面向对象复杂类测试用例的自动生成具有一定的理论价值和实践指导意义。