发明名称 一种基于遗传算法的软件修复方法
摘要 一种基于遗传算法的软件修复方法,其包括,A.将待修复程序表示为抽象语法树结构,并生成测试用例集,所述测试用例集中包含正测试用例和负测试用例,所述正测试用例为在程序中正确执行的测试用例,所述负测试用例为程序执行异常终止或者得出错误结果的测试用例;B.复制原始程序得到M个程序副本,对M个个体进行变异操作,设置程序进化的最大进化代数;C.确定适应度函数,将所述不变量作为计算适应度的不变量约束,对每个个体执行所有测试用例,计算通过的测试用例个数和不变量约束保持数目,通过计算得到每个个体的适应度值;D.遗传操作:对每一代种群中个体进行的遗传操作包括:变异、交叉和选择;E.终止条件判断。
申请公布号 CN103294595A 申请公布日期 2013.09.11
申请号 CN201310196339.9 申请日期 2013.05.23
申请人 西安电子科技大学 发明人 段振华;戚云霞;田聪;张南;王小兵
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京科亿知识产权代理事务所(普通合伙) 11350 代理人 汤东凤
主权项 一种基于遗传算法的软件修复方法,其特征在于:其包括以下步骤,A.将待修复程序表示为抽象语法树结构,并生成测试用例集,所述测试用例集中包含正测试用例和负测试用例,所述正测试用例为在程序中正确执行的测试用例,所述负测试用例为程序执行异常终止或者得出错误结果的测试用例,并对原始程序执行正测试用例,通过不变量生成工具生成所述程序中的不变量;B.复制原始程序得到M个程序副本,对M个个体进行变异操作,原始程序和所述M个程序副本作为遗传算法中的初始种群;设置程序进化的最大进化代数;C.确定适应度函数,将所述不变量作为计算适应度的不变量约束,对每个个体执行所有测试用例,计算通过的测试用例个数和不变量约束保持数目,通过计算得到每个个体的适应度值;D.遗传操作:对每一代种群中个体进行的遗传操作包括:变异、交叉和选择;其包括,对种群中个体进行变异操作和交叉操作,然后根据步骤C的方法计算所述种群中个体的适应度,选择M个个体得到下一代种群;E.终止条件判断:根据新一代种群中M个个体的适应度值,若有个体的适应度值为1,即通过所有测试用例,且保持了全部的不变量约束,则达到成功修复,终止计算;判断是否达到最大进化代数,若达到,终止计算;否则,重复D‑E步骤。
地址 710071 陕西省西安市太白南路2号西安电子科技大学