[发明专利]一种程序错误自动修正方法、装置、电子设备及存储介质有效
申请号: | 201810950683.5 | 申请日: | 2018-08-20 |
公开(公告)号: | CN109408114B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 王甜甜;许家欢;王克朝;苏小红 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F8/30;G06F8/36 |
代理公司: | 北京劲创知识产权代理事务所(普通合伙) 11589 | 代理人: | 王闯 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种程序错误自动修正方法、装置、电子设备及存储介质,包括:S1根据待进行修正的学生程序从预先设定的多个模板程序获取与学生程序最为匹配的模板程序作为示例程序;S2根据学生程序以及示例程序进行语法树匹配,获取两个程序中语法结构相似节点和语法结构不同节点;S3获取两个程序相同功能变量的映射表;S4生成第一代变异体种群;S5根据测试通过次数以及和示例程序的相似度计算变异体的适应度;S6采用交叉和变异操作生成新一代变异体种群;S7循环执行S5和S6直到有变异体可以通过所有规定的测试用例或达到预设迭代次数,将适应度最高的变异体作为学生程序的修正程序以及其对应的编辑序列的操作作为修正方案输出。 | ||
搜索关键词: | 一种 程序 错误 自动 修正 方法 装置 电子设备 存储 介质 | ||
【主权项】:
1.一种程序错误自动修正方法,其特征在于,包括:S1、根据待进行修正的学生程序从预先设定的多个模板程序获取与所述学生程序最为匹配的模板程序作为示例程序;其中,所述待进行修正的学生程序是学生提交的含有缺陷的完成相应题目要求且无法通过所有规定的测试用例的程序;所述多个模板程序是教师提供的多个完成相应题目要求且能够通过所有规定的测试用例的程序,其中,每个模板程序都是语法结构不同的格式规范的程序;S2、根据所述学生程序以及所述示例程序进行语法树匹配,获取两个程序中语法结构相似节点和语法结构不同节点,并为每个节点赋予不同的权值;S3、对所述学生程序和所述示例程序进行插桩,得到两个插桩后的程序,使用预设测试用例执行两个插桩后的程序,获得两个程序中每个变量的执行值序列,并将得到的执行值序列进行匹配,获取两个程序相同功能变量的映射表;S4、通过轮盘赌选择法根据节点对应的权值对所述学生程序以及所述示例程序中的节点进行选择,并将两个程序中选中的节点进行变异操作,以及将变异操作存储在编辑序列中,生成第一代变异体种群;S5、将当前最新一代变异体种群中的编辑序列的操作应用于所述学生程序上,生成对应的变异体,使用所述预设测试用例执行所有变异体,通过所述预设测试用例的执行结果、变异体与所述示例程序中对应节点的语法结构的匹配度计算变异体的适应度;S6、按照每个变异体适应度与所有变异体适应度之和的比例作为概率选择变异体进行交叉和变异操作,形成新的编辑序列,生成新一代变异体种群;S7、循环执行S5和S6直到有变异体可以通过所有规定的测试用例或达到预设迭代次数,将适应度最高的变异体作为所述学生程序的修正程序以及其对应的编辑序列的操作作为修正方案输出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810950683.5/,转载请声明来源钻瓜专利网。