1、缺陷自动修复的“卡脖子”问题补丁正确性验证技术文明 华中科技大学演讲嘉宾文明华中科技大学 副教授文明博士主要聚焦软件安全、软件测试与分析、以及代码大模型安全等研究,在软件工程领域累计发表了CCF-A类推荐会议或期刊40余篇,其他高水平论文10余篇。主持国家自然科学基金青年项目、面上项目、以及包括华为胡杨林基金系统软件专项在内的多项企业合作项目,参与湖北省重点研发项目等重要课题,担任了中国计算机学会系统软件、以及软件工程专委会委员。他常年担任TSE,TOSEM,TDSC等CCF-A类国际期刊的审稿人,以及CCF-A/B类会议ASE 2021/2023,ESEC/FSE 2022/2024,SAN
2、ER 2022,ISSRE 2022/2023的程序委员会委员。同时也荣获了Internetware 2023杰出论文奖、ACM 新星奖 2023(武汉)、以及入选了第七届中国科协青年人才托举工程计划。目 录CONTENTS1.程序自动修复与补丁正确性验证2.基于表示学习的补丁验证3.基于缺陷定位的补丁排序4.总结与展望程序自动修复与补丁正确性验证PART 01程序自动修复发展历程 The problem was first formulated in 2005 Jobstmann,CAV 05 Since GenProg Weimer,ICSE 09 was proposed in 2009
3、,APR has received huge research interests.https:/program-repair.org/bibliography.html Background Conventional ApproachesLLM-basedDeep-Learningbased程序自动修复工业界实践Finding and fixing software bugs automatically with SapFix and Sapienz程序自动修复 SapFix修复框架bug detected4:Revert Partial Diff3:Revert Full Diff1:Te
4、mplate2:MutationtriggersSapienz Auto TriageTrigger Patch GeneratorFix Patch GeneratorValidated RevisionCredit:FacebookAble to identify the diffs that possibly induce the failing testsRevert subsets of diffs so that the revised program compiles successfullySapienz selects tests for each recent code d
5、iff.Bug triage:When tests fail,identify the developer who submitted the code diffWhether all tests are passedpatch strategyAdd null pointer check程序自动修复基本流程Step 2Identify the suspicious buggy locations1:Localization2:Modify ProgramValidation of plausible patches3:Patch ValidationMutants GenerationVal
6、idation by TestsBehavioral AnalysisFix SynthesisSearch-basedSemantics-based(also known as generate-and-validate)General Process Conventional Automated Program Repair Approaches 程序自动修复技术基本流程 General Process Lutellier,Thibaud,Hung Viet Pham,Lawrence Pang,Yitong Li,Moshi Wei,and Lin Tan.“Coconut:combin