论文部分内容阅读
在软件测试中,测试数据(Test Data)的选择是进行结构测试的一个难题,它的合适与否直接关系到错误能否被预期测出。随着软件系统规模的日益扩大,传统测试方法的局限性也越来越明显。在此背景下,本文将数据流(Data-Flow)技术和遗传算法(Genetic Algorithm, GA)结合起来,进行对测试数据自动生成技术的研究。本文首先介绍了软件测试的基本概念,方法和数据流测试技术。然后阐述了遗传算法的基本原理、步骤、特点以及其在软件测试中的运用,从而进一步根据二者优势互补的特性,提出基于数据流的测试数据自动生成算法。该算法扩展了数据流技术,它根据遗传算法进行参数的编码设计并构建初始种群,采用测试需求路径中的节点信息构造新的适应度函数评价个体优劣,再通过遗传算子完成进化过程,为待测程序生成能够覆盖测试需求的最优测试数据。最后为了证明本文所提出算法的高效性,将其与基于随机算法的控制流测试技术(简称为随机法)分别对3个程序进行了研究对比。实验结果表明,本文算法在覆盖率、搜索时间、迭代次数以及生成的测试数据规模上均优于随机法,构造的适应度函数能够充分利用数据流图中的节点信息,合理反映了对应解的优劣程度,能够以较高的成功率生成高质量的测试数据。