期刊文献+
共找到24篇文章
< 1 2 >
每页显示 20 50 100
C/C++程序缺陷自动修复与确认方法 被引量:8
1
作者 周风顺 王林章 李宣东 《软件学报》 EI CSCD 北大核心 2019年第5期1243-1255,共13页
在计算机软件中,程序缺陷不可避免且极有可能造成重大损失.因此,尽早发现并排除程序中潜在的缺陷,是学术界和工业界的普遍共识.目前的程序缺陷自动修复方法大都遵循缺陷定位、修复候选项生成、选择及验证的流程,但在修复实际程序时存在... 在计算机软件中,程序缺陷不可避免且极有可能造成重大损失.因此,尽早发现并排除程序中潜在的缺陷,是学术界和工业界的普遍共识.目前的程序缺陷自动修复方法大都遵循缺陷定位、修复候选项生成、选择及验证的流程,但在修复实际程序时存在修复率低、无法保证修复结果的正确性等问题.提出了一种基于程序合成的C/C++程序缺陷自动修复方法.首先,从满足相同规约的程序集中,通过人工整理的方式总结错误模式及其对应的修复方法,使用重写规则表达错误模式,在此基础上实现了基于重写规则和基于程序频谱的缺陷定位方法,得到程序中可能的缺陷位置;其次,基于重写规则,使用修复选项生成方法得到缺陷的修复选项,同时,通过深度学习的方式学习正确程序的书写结构,帮助预测错误程序错误点应有的语句结构,通过这两种方式提高候选项质量,进而提高修复率;最后,在选择验证过程中,使用程序合成的方法将样例程序作为约束,保证合成后代码的正确性.基于上述方法实现了原型工具AutoGrader,并在容易出错、缺陷典型的学生作业程序上进行了实验,结果显示,该方法对学生作业程序中的缺陷有着较高的修复率,同时也能保证修复后代码的正确性. 展开更多
关键词 程序修复 程序合成 深度学习
下载PDF
基于同位替换的深度程序生成模型测试及修复方法
2
作者 孙泽宇 张洁 +2 位作者 熊英飞 郝丹 张路 《计算机学报》 EI CAS CSCD 北大核心 2023年第10期2025-2040,共16页
程序的编写是软件开发中的主要活动.提高程序编写的效率一直是软件工程研究关注的重要问题.基于深度学习的程序生成是提高程序编写效率的重要途径.该类方法借鉴了自然语言处理中的基于深度神经网络的机器翻译方法,试图将输入的自然语言... 程序的编写是软件开发中的主要活动.提高程序编写的效率一直是软件工程研究关注的重要问题.基于深度学习的程序生成是提高程序编写效率的重要途径.该类方法借鉴了自然语言处理中的基于深度神经网络的机器翻译方法,试图将输入的自然语言描述自动转换为对应程序.然而,现有程序生成方法的生成效果很难让人满意.在这类方法中,对输入自然语言描述的微小改动可能使得输出的代码发生巨大改变.这种变化会给开发者带来理解上的困难.为了解决这个问题,本文提出了一种感知上下文语境的测试和修复算法(COTE).COTE将变异和蜕变测试相结合以实现程序生成系统中相应问题的自动测试并在测试的基础上实现自动修复.本文在常用程序生成工具CodeGPT上对COTE进行验证.实验结果表明:在COTE的测试下,CodeGPT大约有39%的输入存在问题;同时,COTE可以自动修复其中33%~42%的问题. 展开更多
关键词 程序生成 程序测试 程序修复 神经网络 软件工程
下载PDF
一种结合动态链接库信息的崩溃输入分类方法 被引量:1
3
作者 王文祥 高庆 +1 位作者 许可 张世琨 《软件学报》 EI CSCD 北大核心 2023年第4期1594-1612,共19页
软件崩溃是一种严重的软件缺陷,可导致软件终止运行.因此,对软件崩溃的测试在软件迭代的过程中极为重要.近年来,模糊测试技术(如AFL)由于可以自动化生成大量的测试输入来触发软件崩溃,被广泛用于软件测试中.然而,通过该技术产生的导致... 软件崩溃是一种严重的软件缺陷,可导致软件终止运行.因此,对软件崩溃的测试在软件迭代的过程中极为重要.近年来,模糊测试技术(如AFL)由于可以自动化生成大量的测试输入来触发软件崩溃,被广泛用于软件测试中.然而,通过该技术产生的导致软件崩溃的测试输入中,大部分崩溃的触发原因都是重复的,因此软件开发人员需要对测试输入进行分类,带来了许多冗余工作.目前,测试输入分类已经有很多自动化方法,主要包括基于程序修复的分类算法和基于软件崩溃信息的分类算法.前者通过对程序在语义上进行分析,在运行时通过在程序中替换修复模板后重新运行测试输入,进而对输入分类.因为此方法需要人为地对于软件崩溃编写修复模板,所以其分类的效率与修复模板的质量存在很大联系;且由于需要先修复崩溃、再对崩溃做分类,影响了软件崩溃的修复效率.采用后者的思想,提出了一种轻量而高效的利用软件崩溃信息的测试输入分类算法CICELY.其在软件崩溃点堆栈信息分类的算法基础上,在分析软件崩溃点堆栈时引入了动态链接库信息,通过区分系统动态链接库与用户动态链接库,结合用户代码位置信息,得到用户关注的函数集合,以在分类时以用户函数为基准对崩溃进行界定.最后,分别将CICELY与几种基于程序修复的分类算法和基于软件崩溃信息的流行分类工具进行了比较,实验测试的数据集共计19个项目、42组测试集.在与基于软件崩溃信息的分类工具Honggfuzz, CERT BFF在相同数据集上比较时, CICELY在分类结果的组数上比上述二者减少了2112.89%和135.05%,说明CICELY在同类算法上的实验效果有较大提升,具有更高的精确性.在与基于程序修复的分类算法“语义崩溃分类”用其论文中提供的测试数据集进行比较时, CICELY比“语义崩溃分类”的分组结果差4.42%;在由对应了 展开更多
关键词 软件崩溃 测试输入分类 动态链接库 程序修复 模糊测试
下载PDF
基于不变量的程序修复进化扩展模型 被引量:2
4
作者 何加浪 张琨 +1 位作者 孟锦 张宏 《计算机应用研究》 CSCD 北大核心 2010年第12期4533-4535,4540,共4页
为了有效解决程序修复进化中搜索空间过大和正常功能牺牲的问题,提出了一种基于不变量约束的扩展的程序修复进化模型(extended repair evolutionary model,EREM),利用程序不变量约束对搜索空间进行划分和约简以降低消耗,通过使用表达程... 为了有效解决程序修复进化中搜索空间过大和正常功能牺牲的问题,提出了一种基于不变量约束的扩展的程序修复进化模型(extended repair evolutionary model,EREM),利用程序不变量约束对搜索空间进行划分和约简以降低消耗,通过使用表达程序正常功能的正测试用例学习的不变量约束(称为正不变量约束)来保证程序不牺牲正常的功能,在适应度函数的设计上考虑测试用例通过数的同时也考虑了正不变量约束的保持数,对于破坏正不变量约束的个体适应度给予一定的惩罚值。最后通过实验对模型进行了验证,结果表明了模型的可行性和有效性。 展开更多
关键词 程序不变量 进化计算 程序修复 智能修复
下载PDF
学生程序分析与修复研究
5
作者 胡建鹏 魏龙 林渤 《软件工程与应用》 2022年第3期602-610,共9页
针对高校C语言程序设计课程教师很难对课堂上每一个学生遇到的问题进行点评,同时课下的编程练习也缺乏对程序错误的指导等问题,设计了一种针对学生程序分析与程序修复的方法。在静态代码分析软件Cppcheck所能检测缺陷类型的基础上,添加... 针对高校C语言程序设计课程教师很难对课堂上每一个学生遇到的问题进行点评,同时课下的编程练习也缺乏对程序错误的指导等问题,设计了一种针对学生程序分析与程序修复的方法。在静态代码分析软件Cppcheck所能检测缺陷类型的基础上,添加了一些学生代码常见的缺陷类型。对于学生程序中出现的语法错误,本文在以往提交的学生代码数据库中,使用编辑距离算法获取修复提示,学生根据修复提示信息对代码进行改正。并基于此方法实现了相关模块应用到C语言在线实验系统,取得了不错的应用效果。 展开更多
关键词 程序修复 静态代码分析 Cppcheck 编辑距离
下载PDF
OPTIMAl000软膏灌装封尾机触摸屏程序数据丢失修复
6
作者 张锡兵 花宏炼 《机电信息》 2003年第12期41-42,共2页
OPTIMAl000软膏灌装机触摸屏程序数据丢失后,我们通过使用NTSTV4.2E软件,成功地进行了数据的输入和程序修复。
关键词 软膏灌装封尾机 触摸屏 数据修复 程序修复 NTSTV4.2E软件
下载PDF
自动程序修复方法研究述评 被引量:17
7
作者 王赞 郜健 +2 位作者 陈翔 傅浩杰 樊向宇 《计算机学报》 EI CSCD 北大核心 2018年第3期588-610,共23页
当开发人员面对大量缺陷报告无从入手的时候,自动程序修复(Automatic Program Repair,APR)可以成功完成其中一些缺陷的自动修复,从而有效减少开发人员的程序调试时间.因此自动程序修复逐渐成为当前软件维护领域中的一个研究热点并取得... 当开发人员面对大量缺陷报告无从入手的时候,自动程序修复(Automatic Program Repair,APR)可以成功完成其中一些缺陷的自动修复,从而有效减少开发人员的程序调试时间.因此自动程序修复逐渐成为当前软件维护领域中的一个研究热点并取得了一定的研究进展.该文通过对权威期刊和会议进行检索,搜集了100余篇相关论文,从现有自动程序修复的研究历程、该方法中的重要问题以及国内外相关研究团队及成果等几个方面对该领域进行了系统的总结.其中基于测试用例的自动程序修复方法是当前一种主流方法,其通过配套测试用例集来评估生成补丁的质量.论文将这类方法细分为三个阶段:软件缺陷定位阶段、生成补丁阶段和补丁评估阶段.其中软件缺陷定位阶段是自动程序修复的基础,其目标是尽可能精确识别出可能含有缺陷的语句.生成补丁阶段一般通过预先定义的修改操作对缺陷语句进行修改,代码修改操作在设定时可以考虑修复程序的自身代码、开源项目的代码或者问答网站中的知识等.补丁评价阶段则对生成的候选补丁进行评估,直到找到一个补丁可以使得所有测试用例均执行通过,并随后借助开发人员的人工分析进行最终确认.在上述三个阶段中,生成补丁阶段是自动程序修复方法的核心,论文将已有补丁生成方法细分为三类:基于搜索的方法、基于语义的方法和其他类型方法.其中基于搜索的方法在搜索空间内通过搜索生成补丁,并借助配套测试用例集对该补丁进行验证,经典的方法包括GenProg、PAR、AE、RSrepair等;基于语义的方法则借助语义信息来合成补丁,主要基于符号执行和约束求解,经典的方法包括SemFix、DirectFix、Angelix、Nopol等;而不属于上述两类方法的研究工作则被归于其他类型的方法,经典的工作包括基于问答网站和开源项目托管网站挖掘来生成� 展开更多
关键词 自动程序修复 软件缺陷定位 基于搜索的软件工程 约束求解 并发程序缺陷修复
下载PDF
神经程序修复领域数据泄露问题的实证研究
8
作者 李卿源 钟文康 +2 位作者 李传艺 葛季栋 骆斌 《软件学报》 EI CSCD 北大核心 2024年第7期3071-3092,共22页
修复软件缺陷是软件工程领域一个无法回避的重要问题,而程序自动修复技术则旨在自动、准确且高效地修复存在缺陷的程序,以缓解软件缺陷所带来的问题.近年来,随着深度学习的快速发展,程序自动修复领域兴起了一种使用深度神经网络去自动... 修复软件缺陷是软件工程领域一个无法回避的重要问题,而程序自动修复技术则旨在自动、准确且高效地修复存在缺陷的程序,以缓解软件缺陷所带来的问题.近年来,随着深度学习的快速发展,程序自动修复领域兴起了一种使用深度神经网络去自动捕捉缺陷程序及其补丁之间关系的方法,被称为神经程序修复.从在基准测试上被正确修复的缺陷的数量上看,神经程序修复工具的修复性能已经显著超过了非学习的程序自动修复工具.然而,近期有研究发现:神经程序修复系统性能的提升可能得益于测试数据在训练数据中存在,即数据泄露.受此启发,为了进一步探究神经程序修复系统数据泄露的原因及影响,更公平地评估现有的系统:(1)对现有神经程序修复系统进行了系统的分类和总结,根据分类结果定义了神经程序修复系统的数据泄露,并为每个类别的系统设计了数据泄露的检测方法;(2)依照上一步骤中的数据泄露检测方法对现有模型展开了大规模检测,并探究了数据泄露对模型真实性能与评估性能间差异的影响以及对模型本身的影响;(3)分析现有神经程序修复系统数据集的收集和过滤策略,加以改进和补充,在现有流行的数据集上,基于改进后的策略构建了一个纯净的大规模程序修复训练数据集,并验证了该数据集避免数据泄露的有效性.由实验结果发现:调研的10个神经程序修复系统在基准测试集上均出现了数据泄露,其中,神经程序修复系统RewardRepair的数据泄露问题较为严重,在基准测试集Defects4J(v1.2.0)上的数据泄露达24处,泄露比例高达53.33%.此外,数据泄露对神经程序修复系统的鲁棒性也造成了影响,调研的5个神经程序修复系统均因数据泄露产生了鲁棒性降低的问题.由此可见,数据泄露是一个十分常见的问题,且会使神经程序修复系统得到不公平的性能评估结果以 展开更多
关键词 程序自动修复 神经程序修复 深度学习 数据泄露 程序修复数据集
下载PDF
结合Doc2Vec和BERT嵌入技术的补丁验证方法 被引量:4
9
作者 黄颖 姜淑娟 蒋婷婷 《计算机科学》 CSCD 北大核心 2022年第11期83-89,共7页
自动程序修复是近年来的研究热点并取得了一定的进展。现有的自动程序修复方法大多利用测试套件来验证补丁正确性。然而,使用测试套件验证自动程序修复方法生成的大量候选补丁不仅会造成巨大的开销,不完美的测试套件还会导致补丁的过拟... 自动程序修复是近年来的研究热点并取得了一定的进展。现有的自动程序修复方法大多利用测试套件来验证补丁正确性。然而,使用测试套件验证自动程序修复方法生成的大量候选补丁不仅会造成巨大的开销,不完美的测试套件还会导致补丁的过拟合问题,因此如何提高补丁验证效率、有效验证补丁正确性成为亟待解决的问题。为了降低补丁验证开销并提高补丁正确率,提出了结合两种嵌入技术验证补丁正确性的方法。该方法首先利用Doc2Vec计算补丁与错误代码的相似性,然后使用一个基于BERT模型的分类器过滤通过相似性筛选出的补丁中的错误补丁。为了验证所提方法的有效性,基于5个开源的Java缺陷库进行实验,结果表明该方法能够有效地验证补丁的正确性并提高验证效率。 展开更多
关键词 自动程序修复 补丁验证 代码相似性 嵌入技术
下载PDF
基于数据流分析的过拟合补丁识别
10
作者 董玉坤 杨宇飞 +1 位作者 程小彤 唐叶尔 《计算机系统应用》 2023年第12期261-267,共7页
自动程序修复技术可实现对软件缺陷的自动修复,并使用测试套件评估修复补丁.然而因为测试套件不充分,通过测试套件的补丁可能并未正确修复缺陷,甚至引入新的缺陷并产生波及效应,导致自动程序修复生成大量过拟合补丁.针对这个问题,本文... 自动程序修复技术可实现对软件缺陷的自动修复,并使用测试套件评估修复补丁.然而因为测试套件不充分,通过测试套件的补丁可能并未正确修复缺陷,甚至引入新的缺陷并产生波及效应,导致自动程序修复生成大量过拟合补丁.针对这个问题,本文提出了一种基于数据流分析的过拟合补丁识别方法,首先将补丁对程序的修改分解为对变量的操作,然后采用数据流分析方法识别补丁影响域,并根据补丁影响域选择针对性覆盖准则来识别目标覆盖元素,进而选取测试路径并生成测试用例实现对修复程序的充分测试,避免修复副作用的影响.本文在两个数据集上进行了评估,实验结果表明,基于数据流分析的过拟合补丁识别方法可有效提升自动程序修复的正确性. 展开更多
关键词 自动程序修复 过拟合补丁 补丁影响域 数据流分析 测试用例生成
下载PDF
基于变型空间代数的自动程序修复方法 被引量:2
11
作者 徐勇 毋国庆 +1 位作者 袁梦霆 黄勃 《电子学报》 EI CAS CSCD 北大核心 2017年第10期2498-2505,共8页
基于代码枚举的自动程序修复方法借助变异算子对程序中错误语句进行变更操作,从而得到程序修复解.由于缺乏文法制导及变异算子数量的有限性,该方法的有效性有待进一步提高.本文提出一种基于变型空间代数的自动程序修复方法,即将回归测... 基于代码枚举的自动程序修复方法借助变异算子对程序中错误语句进行变更操作,从而得到程序修复解.由于缺乏文法制导及变异算子数量的有限性,该方法的有效性有待进一步提高.本文提出一种基于变型空间代数的自动程序修复方法,即将回归测试用例集视为训练实例,通过归纳学习得到程序中出错语句的修复解.具体而言,该方法包括以下特征:(1)从文法到变型空间的自动构造生成方法;(2)根据变型空间树中变型空间的不同类别,分别给出一致性定义;(3)结合静态及类型检查的变型空间代数运算.实验结果表明:与基于代码枚举及基于搜索的修复方法相比,本文提出的方法在修复成功率方面更具优势;与此同时,方法中的静态及类型检查机制可以有效地削减假设空间的规模. 展开更多
关键词 自动程序修复 变型空间代数 归纳学习 上下文无关文法 生成树
下载PDF
自动程序修复中的安全隐患场景及解决方案 被引量:1
12
作者 黄昱铭 马建峰 +2 位作者 刘志全 魏凯敏 冯丙文 《西安电子科技大学学报》 EI CAS CSCD 北大核心 2019年第6期147-154,共8页
为提高自动程序修复方法的修复质量,指出在自动程序修复方法修复程序缺陷过程中存在的两种安全隐患场景,即脏补丁源场景和脏测试集场景,并为两种安全隐患场景分别提出相应的解决方案,即补丁校验方案和测试集校验方案。实验结果表明,所... 为提高自动程序修复方法的修复质量,指出在自动程序修复方法修复程序缺陷过程中存在的两种安全隐患场景,即脏补丁源场景和脏测试集场景,并为两种安全隐患场景分别提出相应的解决方案,即补丁校验方案和测试集校验方案。实验结果表明,所提出的补丁校验方案能够促使自动程序修复方法获取安全性更高的补丁,所提出的测试集校验方案能够准确地定位测试集中的脏测试用例,误报率为7.20%。 展开更多
关键词 自动程序修复 静态分析 测试集 软件安全
下载PDF
一种基于规则的自动程序修复方法
13
作者 黄昱铭 马建峰 +2 位作者 刘志全 冯丙文 魏凯敏 《西安电子科技大学学报》 EI CAS CSCD 北大核心 2020年第4期117-123,共7页
为解决基于测试集自动程序修复方法修复缺陷正确率低的问题,提出一种基于规则的自动程序修复方法——RuleFix。该方法首先通过挖掘代码中的隐式编程规则定位缺陷位置,然后根据隐式编程规则选取合适的补丁,最后采用程序合成工具对补丁进... 为解决基于测试集自动程序修复方法修复缺陷正确率低的问题,提出一种基于规则的自动程序修复方法——RuleFix。该方法首先通过挖掘代码中的隐式编程规则定位缺陷位置,然后根据隐式编程规则选取合适的补丁,最后采用程序合成工具对补丁进行校验以保证修复结果的正确性。此外,为解决现有规则挖掘算法无法有效挖掘低频规则的问题,提出一种低频规则挖掘算法,根据已有规则推演生成新的规则,以提升规则挖掘的能力。基于所提方法实现了原型工具,并与现有的自动程序修复方法进行对比。实验结果表明,与现有的GenProg和PAR方法相比,所提方法有明显更高的修复率和正确率。 展开更多
关键词 自动程序修复 基于规则 静态分析 测试集
下载PDF
老三毛上网记(9)
14
作者 肖二 《中国档案》 北大核心 2004年第10期55-55,共1页
关键词 互联网 浏览器 程序修复 后门程序
下载PDF
程序自动修复:关键问题及技术 被引量:16
15
作者 李斌 贺也平 马恒太 《软件学报》 EI CSCD 北大核心 2019年第2期244-265,共22页
程序自动修复技术能够有效地降低软件维护成本,是近年来学术研究的热点问题.待修复程序规约的刻画,对自动修复过程具有至关重要的作用.从规约的角度对程序自动修复问题和技术进行了分析梳理.从待修复程序是否具有完整的程序规约,将现有... 程序自动修复技术能够有效地降低软件维护成本,是近年来学术研究的热点问题.待修复程序规约的刻画,对自动修复过程具有至关重要的作用.从规约的角度对程序自动修复问题和技术进行了分析梳理.从待修复程序是否具有完整的程序规约,将现有修复问题分为不完全规约、完全规约和半完全规约这3大类待修复问题.以3类抽象问题为线索,梳理了不同前提假设下修复技术面临的核心问题、问题之间的联系和技术体系中的逻辑关系.分析了不完全规约程序修复问题中高精度补丁生成、规约补全和补丁择优等问题,梳理了完全规约程序修复问题中内存泄漏、资源泄露、并发错误中的数据竞争、原子性违背、顺序违背和死锁,配置错误以及特定性能错误等具体问题及研究进展,整理了半完全规约程序修复问题中多种形式的修复具体问题及研究进展.最后分析了程序自动修复面临的机遇和挑战. 展开更多
关键词 程序自动修复 静态分析 程序规约 补丁生成 测试集
下载PDF
基于变异和约束求解的程序缺陷自动修复方法
16
作者 董兰 洪玫 伍佳 《计算机工程与设计》 北大核心 2024年第1期88-94,共7页
为能正确高效地生成修复补丁,针对Java程序中出现频率较高的条件语句相关缺陷修复问题,将启发式搜索方法与语义约束求解方法相结合,提出一个有针对性、更高效的解决方案。针对条件语句缺失错误,采用基于组件的程序合成技术,合成满足约... 为能正确高效地生成修复补丁,针对Java程序中出现频率较高的条件语句相关缺陷修复问题,将启发式搜索方法与语义约束求解方法相结合,提出一个有针对性、更高效的解决方案。针对条件语句缺失错误,采用基于组件的程序合成技术,合成满足约束的候选条件语句;针对条件语句逻辑表达式错误,采用变异技术,生成候选逻辑表达式;针对条件语句逻辑表达式错误中,不能用变异技术修复的缺陷,使用基于组件的约束求解方法生成候选补丁。实验结果表明,所提方法有更高的补丁召回率和准确率。 展开更多
关键词 程序自动修复 变异分析 约束求解 程序合成 条件语句缺陷 补丁生成 软件调试
下载PDF
抽象语义引导的空指针引用自动修复
17
作者 王珣 孙玉雪 +2 位作者 董玉坤 位欣欣 唐道龙 《计算机系统应用》 2023年第1期376-384,共9页
程序依赖图往往只能根据语句中变量的定义使用关系来判定数据依赖而无法从语义上精准判断,从而容易引入虚假依赖关系,使得缺陷修复的过程中使用错误信息造成修复失败.因此,本文将利用抽象属性对与空对象或空指针有关的虚假依赖进行剪枝... 程序依赖图往往只能根据语句中变量的定义使用关系来判定数据依赖而无法从语义上精准判断,从而容易引入虚假依赖关系,使得缺陷修复的过程中使用错误信息造成修复失败.因此,本文将利用抽象属性对与空对象或空指针有关的虚假依赖进行剪枝,提出基于抽象语义的程序依赖图减少与程序缺陷语义无关的依赖关系分析,以完成空指针引用修复.依据分析获取的依赖关系,在空指针引用的不同修复策略的指导下实现一种多策略的修复方案,在尽可能减小修复副作用的前提下完成空指针引用缺陷的修复.本文利用Defects4J中的空指针引用对实现的修复工具DTSFix进行实验评估,结果显示DTSFix的修复效果远远高于对比工具,证明了方法的有效性. 展开更多
关键词 抽象语义 程序依赖图 程序自动修复 空指针引用 修复策略
下载PDF
融合句嵌入模型和代码特征的补丁验证方法
18
作者 蒋婷婷 姜淑娟 韩威 《电子学报》 EI CAS CSCD 北大核心 2023年第12期3450-3456,共7页
补丁验证常用运行测试套件的方法来验证补丁正确性,然而自动修复技术生成的补丁往往数量巨大,而将每个补丁依次通过测试套件则会产生难以承受的开销.针对该问题,本文提出一个由句嵌入模型InferSent和支持向量机分类器组成的静态补丁验... 补丁验证常用运行测试套件的方法来验证补丁正确性,然而自动修复技术生成的补丁往往数量巨大,而将每个补丁依次通过测试套件则会产生难以承受的开销.针对该问题,本文提出一个由句嵌入模型InferSent和支持向量机分类器组成的静态补丁验证方法.使用InferSent提取代码静态特征并通过支持向量机分类器来预测补丁正确性.该方法更加关注代码的静态特征信息,通过对特征的提取分析,无需运行测试套件即可有效地预测自动修复工具生成的补丁的正确性.本文在多个自动修复工具生成的补丁集合上进行了验证.实验结果表明,在修复工具生成的补丁集合上,本文提出的静态补丁验证方法对补丁预测的F1值达到71.89%,相比其他两种最新静态补丁验证方法分别提高11.64%和6.43%,并在五项评价指标上均优于对比模型.表明该方法可以在不运行测试套件的情况下正确预测补丁,且具有良好的泛化能力. 展开更多
关键词 程序自动修复 补丁验证 代码静态特征 句嵌入技术 支持向量机 代码相似性
下载PDF
不正确程序修复补丁识别
19
作者 董玉坤 唐道龙 +1 位作者 孙玉雪 位欣欣 《计算机系统应用》 2023年第3期217-223,共7页
程序自动修复技术是保证软件质量、提高开发效率的有效手段.目前,大多数自动修复工具使用测试用例作为补丁正确性验证的最终方法,有限的测试用例难以对程序进行充分的测试,因此自动修复工具生成的补丁集合包含大量的不正确补丁.为了识... 程序自动修复技术是保证软件质量、提高开发效率的有效手段.目前,大多数自动修复工具使用测试用例作为补丁正确性验证的最终方法,有限的测试用例难以对程序进行充分的测试,因此自动修复工具生成的补丁集合包含大量的不正确补丁.为了识别不正确补丁,我们采用对比缺陷修复前后成功测试的执行路径以及生成测试用例的方法来识别修复补丁的有效性,以解决自动修复工具精度低的问题.我们的方法评估了来自6个经典的自动修复工具生成的132个补丁,并成功地排除了80个不正确的补丁并且没有排除正确的补丁,这表明我们的方法可以有效地排除不正确补丁,并且提高自动修复工具的精度. 展开更多
关键词 程序自动修复 补丁质量评估 不正确补丁 测试用例生成 不正确补丁识别 UML 检测方法
下载PDF
一种基于StackOverflow分析的程序自动修复方法 被引量:1
20
作者 刘旭亮 钟浩 《计算机工程》 CAS CSCD 北大核心 2018年第10期95-100,共6页
现有程序缺陷修复方法缺乏充足的修复模板,多数只能修复小部分程序缺陷。为此,提出一种从StackOverflow中获取示例代码,并从示例代码中挖掘出修复样品的方法。从程序员日常开发讨论中获取与修复有关的代码对,并从中生成修复模板,该模板... 现有程序缺陷修复方法缺乏充足的修复模板,多数只能修复小部分程序缺陷。为此,提出一种从StackOverflow中获取示例代码,并从示例代码中挖掘出修复样品的方法。从程序员日常开发讨论中获取与修复有关的代码对,并从中生成修复模板,该模板丰富了自动修复工具已有的操作,能够修复更多缺陷。对Defects4J数据集进行实验验证,结果表明,该方法能够修复23个程序缺陷,优于GenProg和Nopol等工具。 展开更多
关键词 程序自动修复 真实缺陷修复 修复模板 示例代码 修复样品
下载PDF
上一页 1 2 下一页 到第
使用帮助 返回顶部