基于遗传算法的测试数据生成应用研究
一、引言
在测试用例设计过程中,测试数据选取与生成是一项极具挑战性的工作,随着软件规模不断扩大、复杂程度不断提高,如何在测试中尽可能地覆盖所有业务流程,往往需要经验丰富的测试人员对测试数据进行人工定义。对于非线性问题传统的数据生成方法具有效率低、冗余大、测试覆盖不完全等缺点,为此学者们提出很多解决思路,其中基于遗传算法指导测试数据自动生成是一种较为有效的方法,对提高测试质量和效率具有十分重要的意义。
二、遗传算法1、遗传算法简介
遗传算法(Genetic Algorithm,GA)是由美国J . Holland教授在20世纪70年代提出的,通过模拟达尔文生物进化论的自然选择和遗传机制原理,用来寻找最优解的自组织、自适应搜索算法。具体操作是从初始种群出发,根据适者生存的原则,将染色体中的基因进行交叉、变异等操作机制,以实现后代个体适应度提高,直至满足预先指定的适应度阈值。
2、遗传算法中包含的基本概念
1)个体(individual):模拟生物个体,表示所处理的基本对象、结构(这里表示一条测试用例)。
2)种群(population):模拟生物种群,若干个体组成的集合(这里表示一组测试用例)。
3)染色体(chromosome):个体的抽象表示形式,遗传算法中通常用字符串形式的编码表示。
4)基因(gene):用于表示个体的特征,是染色体的构成元素。
5)后代(offspring):种群中的个体经过遗传操作后形成的新的个体。
6)适应度(fitness):表示个体对环境的适应程度,