论文部分内容阅读
随着软件技术的发展,软件测试受到越来越多的重视。在软件测试中,测试数据的选择是进行结构测试的一个难题,测试数据直接关系到错误能否被预期测出。对于测试数据自动化生成方法,目前虽然有一些方法被提出并使用,但由于其局限性,在实际中还没有完善的解决方法,有时只能凭借经验判断。 本文提出使用免疫遗传算法进行了对测试数据自动生成方法的研究。该算法是在传统的遗传算法中引入免疫算子,免疫算子包括获取疫苗、注射疫苗和免疫选择。其中,疫苗不是一个成熟或完整的个体,它仅具备最佳个体局部基因位上的可能特征。通过对个体注射疫苗使得新个体以较大概率适应最优解的取值范围。在免疫选择操作中,通过计算抗体之间的亲和度来促进和抑制抗体,从而既保留较优抗体又保证抗体的多样性,避免过早收敛。 本文首先介绍了软件测试技术和遗传算法。对于软件测试技术,介绍了软件测试的概念、分类、阶段划分及测试用例的选择方法。对于遗传算法,介绍了它的产生发展、基本概念、特点和基本术语,阐述了遗传算法的一般过程,分析了影响遗传算法的因素。 本文提出了免疫遗传算法,并将该算法应用到测试数据生成领域。首先在遗传算法的基础上,提出免疫遗传算法,并介绍该算法的基本概念、一般过程,阐述算法中的算子操作。其次阐述遗传算法应用于测试数据生成的理论依据。最后提出基于免疫遗传算法的测试数据生成的模型,介绍了程序插桩方式和分支函数,及其路径覆盖中的路径选择问题。 本文研究了在面向对象程序中免疫遗传算法生成测试数据的一个难点:类对象测试数据的生成。首先介绍一种类对象编码方法,该编码能够适合于免疫遗传操作。其次在海明距离法的基础上提出一种改进的适应度函数,并用一个简单的实例说明该适应度函数的计算过程。 最后,本文最后通过对比实验,给出实验结果和结果分析与比较。实验表明,使用免疫遗传算法进行测试数据生成方法,是灵活、有效、具有一定实用价值的。