-
公开(公告)号:CN116701216A
公开(公告)日:2023-09-05
申请号:CN202310700345.7
申请日:2023-06-14
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明公开了一种面向学生程序的精准修复方法,包括步骤:步骤S1输入一个错误程序P、一个正确程序Q和一组测试用例T作为方法的输入;步骤S2:设计程序块划分标准,将错误程序P和正确程序Q的代码划分成基本块;步骤S3:对错误程序P和正确程序Q代码基本块进行语句匹配;步骤S4根据匹配情况生成对错误语句的操作;步骤S5执行插入操作;步骤S6执行删除操作;步骤S7执行修改操作;步骤S8重新调整语句顺序;步骤S9错误程序P修改后运行测试用例测试是否修复成功,若成功则结束,反之继续修复。本方法采用语句匹配技术,可以在修复距离最小的情况下,使用正确程序修复错误程序,使得错误程序成功运行。
-
公开(公告)号:CN111061644A
公开(公告)日:2020-04-24
申请号:CN201911352967.5
申请日:2019-12-25
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明公开了一种检测并定位异常抛出处理缺陷的方法和装置。该方法首先对待测程序插装,对可能抛出异常的方法前插入控制代码,使得待测程序被执行后,通过控制代码输出被插装方法信息和调用信息并通过异常触发配置信息的匹配确定是否抛出异常和抛出何种异常。然后根据被插装方法列表,得到可能触发的异常类型集合。再根据该异常类型集合对每个异常类型进行可疑异常触发测试,得到可疑方法异常信息集合。最后通过对可疑方法异常信息集合中的每个可疑方法异常信息进行上下文组合异常触发测试得到异常抛出缺陷定位信息。本发明通过可疑异常触发测试的过滤,大大缩减了异常抛出处理缺陷定位范围,从而大大提高定位效率。
-
公开(公告)号:CN111061644B
公开(公告)日:2021-04-30
申请号:CN201911352967.5
申请日:2019-12-25
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明公开了一种检测并定位异常抛出处理缺陷的方法和装置。该方法首先对待测程序插装,对可能抛出异常的方法前插入控制代码,使得待测程序被执行后,通过控制代码输出被插装方法信息和调用信息并通过异常触发配置信息的匹配确定是否抛出异常和抛出何种异常。然后根据被插装方法列表,得到可能触发的异常类型集合。再根据该异常类型集合对每个异常类型进行可疑异常触发测试,得到可疑方法异常信息集合。最后通过对可疑方法异常信息集合中的每个可疑方法异常信息进行上下文组合异常触发测试得到异常抛出缺陷定位信息。本发明通过可疑异常触发测试的过滤,大大缩减了异常抛出处理缺陷定位范围,从而大大提高定位效率。
-
公开(公告)号:CN116701219A
公开(公告)日:2023-09-05
申请号:CN202310706645.6
申请日:2023-06-14
Applicant: 南京大学
Abstract: 本发明公开了一种面向学生程序的精准错误定位方法,包括:输入一个错误程序、正确程序和测试用例作为方法的输入;设计程序块划分标准,将错误程序和正确程序的代码划分成块并完成代码块对齐;设计程序变量对齐方法,完成错误程序和正确程序变量对齐;给定测试用例,运行待测程序,设计程序代码块规约的构建方法;对代码块进行数据依赖和控制依赖分析,设计代码块可疑性度量;对错误程序进行错误定位,得到可疑代码块。本方法的主要特点为可以为学生程序提供精准的错误定位,从而改进现有反馈生成技术,通过减少冗余修复的方式提高修复的质量。
-
公开(公告)号:CN116775474A
公开(公告)日:2023-09-19
申请号:CN202310703977.9
申请日:2023-06-14
Applicant: 南京大学
Abstract: 本发明公开了一种基于双向重构的控制结构对齐方法,包括以下步骤:输入两个程序和目标函数作为方法的输入;设计表示程序目标函数控制流结构的抽象控制流树模型;分别构建两个源程序中目标函数的抽象控制流树模型;设计抽象控制流树模型中节点的合法匹配规则;构建两个源程序中目标函数的抽象控制流树模型中的节点间“最长”的合法匹配集合并从中选出最优匹配;设计通用的程序重构规则;基于最优匹配重构两个源程序的目标函数,以实现控制结构对齐,得到重构后的程序。本方法可以为两个控制结构不一致的程序在程序语义不发生改变的前提下提供双向重构指导,实现目标函数的控制结构的对齐,从根本上解决了现有自动反馈生成技术无法为未结构匹配的错误程序提供修复指导的缺陷。
-
-
-
-