- 24
- 0
- 约5.74千字
- 约 11页
- 2018-08-29 发布于福建
- 举报
基于搜索软件自动修复框架及其关键问题探讨
基于搜索软件自动修复框架及其关键问题探讨
摘 要:软件在开发和维护的过程中均可能产生软件缺陷,如果能够成功自动修复部分缺陷,则可以有效减少程序调试时间,避免损失。软件自动修复是一个新兴课题,尚存在很多需要解决的问题。本文首先介绍了软件自动修复的概念,并提出了基于搜索的软件自动修复的框架;接着,从缺陷定位、搜索策略、测试数据生成三个方面概括了基于搜索的软件自动修复面临的主要挑战,以及需要解决的一些关键问题;最后,总结全文并指出下一步的工作。所提框架及其关键问题的探讨,有助于软件自动修复技术的进一步研究和在工业生产中的推广应用。
关键词:基于搜索的软件自动修复;缺陷定位;测试数据生成
中图分类号:TP311 文献标识码:A
1 引言(Introduction)
对于有缺陷的软件,一旦发生运行故障或其他软件错误,需要及时的对源程序进行修复。在发现软件缺陷后,软件自?有薷词侵福?利用已有的程序补丁自动修复程序的过程[1]。具体而言,首先,识别可能存在缺陷的程序实体,其次,根据具有缺陷可能性的大小对可疑程序实体排序,并自动生成相关程序的补丁,接着,通过某种方法评估程序补丁的有效性,并选择正确的补丁。缺陷软件自动修复问题的研究具有极高的现实需求,可以有效减少程序调试时间,提高软件运行的效率,减少因缺陷带来的损失,因此,吸引了很多研究人员的关注[2-4]。
按照补丁生成的方式,软件自动修复的方法可以分为两大类:基于语义的修复方法和基于搜索的方法[4]。其中,基于搜索的方法是最早提出的一类软件程序修复方法[5]。该方法是一种“生成―确认”方法,将修复问题看成一个组合优化问题,运用元启发式搜索算法,在搜索空间内通过搜索生成候选补丁,并借助配套测试用例集对该补丁进行验证。基于搜索的软件自动修复能够利用已有的程序信息,并结合已有的软件维护技术,提供自动化的软件修复方案,易于部署和实施,在软件程序修复中占有重要地位。
已有的软件维护技术,例如缺陷定位,测试数据生成等,这些技术的应用降低了软件自动修复问题研究的难度,但是,如何更好地将上述技术应用到软件修复中,以及针对性的提高修复的效率,在该研究领域还需要解决很多问题。
在已有工作的基础上,提出和传统软件维护技术相结合的基于搜索的软件自动修复框架,指出其中需要解决的一些关键问题,并提出一些可行的解决方案,可以为从事软件自动修复研究提供参考。
2 基于搜索的软件自动修复框架(Framework of
automatic software repair based on search method)
软件修复首先需要确定软件缺陷位于源程序的位置,其次,采用合适的方法生成补丁,最后,还要评估生成补丁的有效性。自动性的修复工作除了需要源程序外,还需要有配套的测试用例集,并且测试用例集中至少包含一个运行结果未达预期的测试用例。一方面,需要测试用例集收集程序的执行频谱,定位软件的缺陷;另一方面,若修复方法生成的补丁可以使得配套的所有测试用例均能执行通过,则可以认为该补丁正确。基于此,软件自动修复工作可以分为三个方面:(1)缺陷定位,(2)补丁生成,(3)补丁验证。进一步,如图1所示,本文提出基于搜索的软件修复框架可以分为五个阶段,期望在充分使用传统技术的基础上,例如缺陷定位、回归测试等等,致力提高软件修复的效率。
该框架依托于源程序和已有的测试用例集,首先进行缺陷定位,得到可疑的程序实体队列;然后,取怀疑度最大的程序实体,确定测试相关的范围,并对已有的测试用例集更新,接着,采用搜索的方法生成相关程序实体的补丁;对于生成的补丁,通过回归测试的方法对补丁进行验证,如果回归测试通过,则修复工作结束,否则,继续依次取怀疑度最大的实体,迭代进行补丁生成和验证。若上述步骤没有得到正确的程序补丁,则修复失败。
3 基于搜索的软件自动修复关键问题(Key issues
in search based automatic software repair)
基于搜索的软件自动修复框架涉及很多软件测试或维护的关键问题,目前尚未存在有效解决方案的如表1所列,在现有的软件测试和维护技术的研究基础上,根据采用技术的不同,这些关键问题,涵盖以下三个方面:(1)缺陷定位,(2)搜索策略,(3)测试用例的质量。表1所列关键问题的解决将有助于提高基于搜索的软件自动修复效率。
3.1 缺陷定位
所谓缺陷定位,是指基于程序的结构和测试用例执行的轨迹,确定软件缺陷的位置。基于缺陷定位的结果,能够有针对性的修复程序,从而降低程序修复的成本。可以看出,缺陷定位是软件自动修复中的先决问题,只有能够将存在缺陷的程序实体识别出来,才能够根据定位的结果生成程序补丁。
您可能关注的文档
- 基于指纹识别技术智能小区门禁系统设计.doc
- 基于指纹识别驾驶人身份认证系统研究.doc
- 基于指纹识别门禁系统设计.doc
- 基于指纹验证物资到货验收管理.doc
- 基于指针分析内存泄露故障测试方法研究.doc
- 基于指针深度学习机器阅读理解.doc
- 基于按键精灵ESS工单批处理设计与实现.doc
- 基于按需出版模式图书馆文献资源建设思考.doc
- 基于按需重组技术动态数字出版服务系统设计与实现.doc
- 基于挠曲理论简支T梁横向分布系数计算方法.doc
- 公共数字文化平台服务规范 第3部分:运行管理__DB21_T 4334.3-2025_可搜索.pdf
- 降雨诱发的公路地质灾害气象风险预警等级__DB21_T 4404-2026_可搜索.pdf
- 绿潮卫星遥感监测技术规程__DB21_T 4319-2025_可搜索.pdf
- 农业气候资源综合评价方法__DB21_T 4371-2025_可搜索.pdf
- 普通国省干线重要节点及路段视频设施建设技术规程__DB21_T 4121-2025_可搜索.pdf
- 铺膜播种机作业技术规程__DB21_T 2492-2025_可搜索.pdf
- 采供血服务规范 第1部分:通则__DB21_T 4335.1-2025_可搜索.pdf
- 刺参池塘养殖海冰灾害防范预警指南__DB21_T 4350-2025_可搜索.pdf
- 中轻度盐碱地玉米井黄双灌精准水肥一体化栽培技术规程__DB15_T 4253-2026_可搜索.pdf
- 建筑消能减震应用技术规程__DB21_T 4390-2026_可搜索.pdf
最近下载
- 人教版道德与法治三年级下册第3课《一切靠劳动》 课件.pptx VIP
- 建设银行供应链金融业务的战略突破与创新发展.docx
- 大赛独家代理授权合作协议范文.docx VIP
- 抗高压药物行业调研报告.pptx
- 人教版中考数学知识点总结.pdf VIP
- 宣贯培训(2026年)《GBT 39559.2-2020城市轨道交通设施运营监测技术规范 第2部分:桥梁》.pptx VIP
- 来实SEAM-LOK75直立锁边板手册-BlueScope.PDF VIP
- Formel-Q-V8(质量能力-软件).pdf VIP
- 《300MW汽轮发电机组厂用电设计论文》.doc VIP
- 《工程伦理》教案全套-教学设计.docx
原创力文档

文档评论(0)