1、“Bug”的寻根溯源之旅自动化软件缺陷定位技术谢晓园 武汉大学演讲嘉宾谢晓园武汉大学计算机学院教授 博士生导师武汉大学特色化示范性软件学院副院长武汉大学珞珈青年学者、基金委外国优秀青年学者研究基金获得者。主要研究方向为软件测试、软件缺陷定位与修复、程序分析与切片、智能软件工程等。曾解决了软件缺陷定位领域公式性能评估的瓶颈难题,被软件工程顶级期刊IEEE TSE评为全球软件蜕变测试领域十大代表性研究者之一。录用发表包括软件工程CCF A类在内的论文50余篇。以第一及通讯作者连续两年获国际软件工程顶级会议(CCF A类)杰出论文奖。获计算机学会NASAC青年软件创新奖、大陆首个ACM SigEvo
2、 HUMIES奖、湖北省科技进步一等奖等学术奖励。担任SCI期刊编委、客座编辑,历任ICSE/MET蜕变测试研讨会PC Chair。担任包括CCF A类会议ASE、ICSE在内的多个国际会议PC members,以及包括CCF A类期刊TSE、TOSEM 和ACM Computing Survey等在内的多个国际知名期刊审稿人。目 录CONTENTS1.背景与简介2.实践中的关键性挑战3.解决思路及效果4.其他辅助技术5.总结与展望PART 1背景与简介Background and Introduction背 景因自动驾驶软件缺陷,特斯拉在全球范围召回近36.3万辆汽车机载MCAS软件缺陷造成
3、两起空难,共造成346人死亡权威机构发布报告称,2022 年软件缺陷问题可能使美国经济损失2.41万亿美元大规模车辆召回致命性航空事故巨额的经济损失现代社会软件无处不在,关键系统的软件缺陷将造成灾难性损失bug2018-20192023.22022.12背 景高质量软件已成为经济社会发展的迫切需求高效的软件缺陷定位是构筑高质量软件的重要一环背 景发现软件程序错误判断导致程序错误的底层缺陷位置或原因(缺陷定位)对定位到的缺陷进行修复软件测试(Software Testing)软件调试(Software Debugging)耗时、复杂背 景软件缺陷的产生不可避免缺陷定位贯穿整个软件生命周期人工缺陷
4、定位自动化缺陷定位 费时费力 效果不稳定 智能高效便捷 效果稳定存在一系列关键性挑战自动化代码缺陷定位当前主流代码级自动化缺陷定位技术基于切片的定位技术基于信息检索的定位技术基于统计学的定位技术基于程序状态的定位技术基于数据挖掘的定位技术基于程序频谱的定位技术(SBFL)自动化代码缺陷定位Spectrum-based Fault Localization(SBFL)流程图错误程序测试用例集运 行程序覆盖信息+测试执行结果风险值评估公式程序实体风险值排序列表TopDownSBFL的核心实践中的关键性挑战Key Challenges in PracticePART 02挑战程序员面临的真实调试场景
5、如何不通过大量实验来设计最优SBFL公式?挑战如何不通过大量实验来设计最优SBFL公式?如何面向Non-testable程序展开缺陷定位?挑战如何不通过大量实验来设计最优SBFL公式?如何在多缺陷环境下更好地定位缺陷?挑战如何不通过大量实验来设计最优SBFL公式?如何在更细粒度下进行缺陷定位?挑战一:最优风险评估公式构造Jaccard TarantulaOchiaiNaishCBI挑战一:最优风险评估公式构造数十年来,大量SBFL公式被陆续提出,“最优公式”是目标挑战一:最优风险评估公式构造采用实验方法确定公式效果:成本高昂,随机性强且泛化性无法保证大量的实验程序复杂的度量指标较高的硬件门槛繁
6、琐的数据分析缺陷样例收集困难占用大量存储空间度量角度不一部分指标合理性不足实验高度依赖算力造成不必要的资源浪费结论仍需人工分析加重实验人员负担这样的背景下,无法确定真正的“最优公式”这样的背景下,无法确定真正的“最优公式”挑战程序员面临的真实调试场景如何不通过大量实验来设计最优SBFL公式?挑战如何不通过大量实验来设计最优SBFL公式?如何面向Non-testable程序展开缺陷定位?挑战如何不通过大量实验来设计最优SBFL公式?如何在多缺陷环境下更好地定位缺陷?挑战如何不通过大量实验来设计最优SBFL公式?如何在更细粒度下进行缺陷定位?挑战二:对Non-testable程序的定位Test O