博学论坛第六期:程序分析与软件测试前沿
报告人1:熊英飞
报告题目:《从参数化到概率化——北京大学在程序调试上的近期工作介绍》
报告简介:
过去20年,数据驱动的软件工程技术获得很大发展,多个不同领域的技术都在大数据的帮助下获得显著提高。不过,现有大部分数据驱动的工作都是参数化的,即在大数据的帮助下对一些未知参数进行调参,而这些参数本身可能没有概率论上的解释。但如果我们从一开始就试图建立概率模型,那么我们就可以利用概率论的规则和程序相关的语法、语义等信息进行推导,既能够更有效地从数据中学习,也可以帮我们做出一些概率上最优的决策。本次分享将介绍北京大学团队沿着这个思路在调试上的部分工作,包括一个新的差异化调试算法(发表于FSE21,被评为ACM SIGSOFT杰出论文)和一个基于程序语义的错误定位工作(录用与ICSE22)。
报告人简介:
熊英飞于2009年从日本东京大学获得博士学位,2009-2011年在加拿大滑铁卢大学工作,2012年加入北京大学,现任新体制长聘副教授。熊英飞的研究兴趣是程序设计语言和软件工程,特别是程序合成、修复和分析。他提出了理论和方法降低程序编写和缺陷修复的代价。比如,基于差别的双向变换框架是最广泛使用的双向变换框架之一,概率和逻辑结合的程序合成框架玲珑框架将程序修复的正确率从此前不到40%提升到80%以上。他的工作也被工业界采用,比如新一代Linux内核配置项目、燕云DaaS系统、华为公司等。他获得CCF-IEEE CS青年科学家奖、MODELS十年最有影响力论文奖,5次获得ACM SIGSOFT/IEEE TCSE杰出论文奖。他是SATE18的程序委员会联合主席,也在ICSE、FSE、ASE、ISSTA等会议担任PC。
报告人2:文明
报告题目:《程序补丁的正确性验证与存在性测试》
报告简介:
程序自动修复技术在过去的十年时间里吸引了来自工业界和学术界的大量关注。尽管基于搜索的,基于语义的以及基于学习的修复方法都展现了不错的效果,并且工业界也开始逐渐部署相关的补丁推荐系统,已有技术都面临一个共同的挑战,即补丁的正确性验证问题。由于缺乏完备的程序规范,基于已有测试套件来评估补丁正确性的方法往往会造成补丁过拟合问题。针对该问题,我们对已有最新的21种程序自动修复技术进行了系统调研与分析,剖析出了过拟合补丁形成的根源,并对比了已有补丁正确性验证方法的有效性与局限性。基于该研究的发现,我们进一步提出了基于程序结构的上下文感知的代码变更表示学习方法来提升补丁正确性验证的性能,其验证准确率达到了92.9%。当正确的补丁被部署到目标系统中之后,由于开源生态系统的成熟以及第三方库的广泛使用,补丁的存在性检验变得至关重要,尤其是对于威胁等级高的缺陷或者漏洞。补丁的存在性检验是为了验证已知缺陷或者漏洞的补丁代码在目标软件系统中是否存在。目标软件可能是源代码或者二进制,也有可能是被混淆或者优化过后的程序。因此,存在性的判定并不是一项容易的任务。我们针对漏洞补丁的存在性测试开展了研究,抽取了基于程序路径的细粒度语义特征,提升了已有方法抵抗代码混淆和优化的能力,并且其抵抗能力分别达到了92.9%和87.3%。
报告人简介:文明,华中科技大学网络空间安全学院副教授,硕士生/博士生导师。文明博士于2014年从浙江大学计算机科学与技术学院获得本科学位,2019年6月在香港科技大学计算机科学与工程学院取得博士学位,师从张成志教授。2017年7月至2018年1月,在美国加州大学戴维斯分校苏振东教授课题组担任访问学者。2019年6月至2019年11月,在香港科技大学全职任职博士后研究员。2019年12月,加入华中科技大学网络空间安全学院,聘为副教授。文明博士的研究方向主要包括软件安全,软件测试与分析,以及软件生态系统的安全分析等,在软件工程领域累计发表了CCF-A类推荐会议或期刊20篇,其他高水平论文10余篇。常年担任TSE,TOSEM,TDSC等国际期刊的审稿人,以及CCF-A/B类会议ASE 2021, ESEC/FSE 2022, SANER 2022, ISSRE 2022的程序委员会委员。文明博士于2021年入选第七届中国科协青年人才托举工程计划。
报告人3:李樾
报告题目:《指针分析,敢不敢再准一点?》
报告简介:
指针分析,又名指向分析、别名分析,为编译优化、程序安全分析等应用提供关于程序的基础控制流与数据流信息,它的精度将直接影响其下游应用的精度(质量)。针对Java程序,目前提升其精度的主流方法是上下文敏感技术,然而针对大型且复杂的程序,传统上下文敏感指针分析很难在可接受的时间内分析出结果。为了解决这一问题,一系列选择性上下文敏感方法被提出并取得积极成果。在本报告中,针对如何为“难以分析”的Java程序取得高精度的指针分析结果这一问题,我们提出了Unity-Relay分析框架并实现了它 的一个实例分析工具Baton,通过对比已有最佳方法,Baton对所有评估的程序,在所有的精度指标上都取得最佳精度。在很多情况下,Baton提升精度的效果是非常显著的,针对已有最好方法报出来的别名对数量(一种精度指标),Baton最高可以消除71%的误报。
报告人简介:
李樾,南京大学计算机科学与技术系副教授,博士生导师,入选国家级青年人才计划、南京大学登峰人才计划,南京大学紫金学者。2016年博士毕业于澳大利亚新南威尔士大学, 之后先后在新南威尔士大学与丹麦奥胡斯大学从事博士后研究工作。 研究方向为程序设计语言与程序分析,在程序设计语言相关国际重要期刊与会议,TOPLAS、PLDI、OOPSLA、ECOOP等发表文章。 曾获ECOOP 2016 杰出论文奖,CGO 2013最佳论文奖和ISSRE 2017最佳论文提名。曾担任APLAS 2021、ISSTA 2022等会议程序委员会成员,TOPLAS、PACMPL(POPL) 等期刊审稿专家。