南科大计算机系8篇论文被ICSE2023录用

Release Time:2023-06-03

1-1.jpg

近日,南科大计算机系8篇长文被国际软件工程大会旗舰会议ICSE 2023(CCF A类会议)接收,约占录用论文总数的1/25。指导教师为刘烨庞、张煜群、陈馨慧三位助理教授。8篇论文中的4篇论文第一作者为我系在读研究生,他们分别是:2021级南科大-澳大利亚昆士兰大学联培博士生关浩、2021级南科大硕士研究生蒋灵、2020级南科大-港大联培博士生吴明远、2020级南科大硕士研究生曾政然。2篇论文第一作者为我校本科毕业生,他们分别是美国伊利诺伊大学香槟分校在读博士生(2020届南科大本科毕业生)欧阳奕成和新加坡国立大学在读博士生(2019届南科大本科毕业生)范治宇。另外2篇为刘烨庞老师与中科院软件所严俊、燕季薇老师团队、香港理工大学罗夏朴老师团队合作的论文。在大会上,陈馨慧老师和刘烨庞老师发起和参与了多个研讨会和学术竞赛活动。


IEEE/ACM ICSE全称International Conference on Software Engineering,是软件工程领域公认的旗舰学术会议,中国计算机学会推荐的A类国际学术会议,Core Conference Ranking A*类会议,H5指数74,Impact score 11.55。到2023年为止,会议已举办45届,每年都有来自全球众多科研人员投稿与参会。ICSE对论文质量的要求极高,通常需要对软件工程领域有基础显著的贡献才能被录用。ICSE 2023会议780篇论文进入审稿流程,录用208篇。

1-2.jpg

张煜群、陈馨慧和刘烨庞老师(从左向右)

1-3.jpg

关浩作论文宣讲报告

1-4.jpg

吴明远作论文宣讲报告

1-5.jpg

蒋灵作论文宣讲报告

1-6.jpg

曾政然作论文宣讲报告

1-7.jpg

欧阳奕成作论文宣讲报告


1

A Comprehensive Study of Real-World Bugs in Machine Learning Model Optimization

Hao Guan, Ying Xiao, Li Jiaying , Yepang Liu*, Guangdong Bai*

随着机器学习技术的应用越来越广泛,其使用场景也逐渐从高性能服务器推广到移动和嵌入式设备。受这些设备的资源限制,机器学习模型在部署前往往需要应用剪枝(pruning)和量化(quantization)来优化体积和速度。主流的机器学习框架,包括 PyTorch 和 TensorFlow 都提供了相关功能。但由于模型复杂,优化过程容易出错,从而影响模型部署。我们称上述问题为Model Optimization Bug (MOB)。在本文中,我们完成了首个系统地对MOB进行归类和分析的工作。我们从 PyTorch 和 TensorFlow 的代码仓库中收集了 371 个 MOB,并进行了分类研究,归纳出了4种错误症状和5种根本原因。结合具体的错误例子和对错误原因的分析,我们总结了在检测MOB上目前存在的5点困难。最后基于上述的发现,我们也分别对框架开发者和使用者提出了实际建议。我们将文中的分类结果开源 https://github.com/MOB2022/MOB-dataset ,并在将来持续更新对 MOB 的分类分析,设计出针对这类错误合适的检测方法。

1-8.jpg

图1


该工作的第一作者是2021级南方科技大学与澳大利亚昆士兰大学联合培养的博士生关浩,其导师为刘烨庞老师(南方科技大学)和白光冬老师(昆士兰大学)。刘烨庞老师和白光冬老师为本文通信作者。


2

Evaluating and Improving Hybrid Fuzzing

 Ling Jiang, Hengchen Yuan, Mingyuan Wu, Lingming Zhang, and Yuqun Zhang*

近年来,基于代码覆盖的模糊测试技术备受瞩目,其主要目标是通过增加代码覆盖率来提高异常触发效率。混合模糊测试技术将传统模糊测试的随机变异机制与动态符号执行的约束求解能力相结合,进一步提升了程序的覆盖率。尽管有很多研究表明混合模糊测试技术优于传统模糊测试方法,但目前缺乏统一的评估实验,并且对混合模糊测试的各个组件的效果缺乏深入探究。因此,我们进行了广泛的实证研究,对目前主流的混合模糊测试技术进行了全面评估。


我们的研究结果表明,现有的混合模糊测试器在性能上相对于传统方法存在一定的限制,不能有效地提高程序代码覆盖率和异常检测能力。此外,通过评估模糊测试和符号执行运行时的程序覆盖重叠度,我们发现仅仅更新模糊测试策略或动态符号执行器是不够的,对它们的协调模式进行更新能对混合模糊测试器的性能产生重要影响。因此,我们提出了CoFuzz,通过优化模糊测试和符号执行两者之间的协调模式来改进混合模糊测试器的效果。


具体而言,CoFuzz基于基准混合模糊测试器QSYM,采用基于程序分支的调度策略进行有选择的约束求解。它通过在线的线性回归模型和随机梯度下降来预测分支的价值并调度进行动态符号执行。同时,CoFuzz采用基于采样增强的同步策略,利用区间路径抽象和John Walk算法生成模糊测试策略的种子,并逐步更新模型。我们的评估结果显示,CoFuzz能够显著增加分支覆盖率(例如,在我们的研究中比SOTA高出16.31%),并且相较于其他研究中的混合模糊测试器,它能够检测出大约2倍多的程序异常。基于触发的程序异常,CoFuzz成功地检测到了37个未知的程序漏洞以及8个CVE。

1-9.png

图2


该研究工作的第一作者是2021级南方科技大学硕士研究生蒋灵,导师为张煜群老师。张煜群老师为通讯作者,南科大为第一单位。


3

JITfuzz: Coverage-guided Fuzzing for JVM Just-in-Time Compilers

Mingyuan Wu, Minghai Lu, Heming Cui, Junjie Chen, Yuqun Zhang*, and Lingming Zhang

作为广泛流行的基础性软件平台,由于其实时解释程序的特型,Java虚拟机相对于编译语言实际有较为严重的性能问题。为了解决Java虚拟机面对的性能挑战,人们使用即时编译器(Just-in-time compiler)来提升Java虚拟机的执行效率。因此,如何有效确保即时编译器在运行过程中的正确性,就成为了确保Java虚拟机可靠性的关键。已有的测试方法中,由于其生成的测试程序用例往往不能通过Java虚拟机的校验,导致测试流程在较早阶段就结束,进而无法测试即时编译器的深度状态。同时,即时编译器具有较多的复杂优化机制,如何确保这些机制的状态被有效探索进而保证其正确性也至关重要。在本文中,我们提出了一种新的基于覆盖导向的模糊测试框架JITfuzz,来自动检测即时编译器的各种潜在的安全风险和缺陷。具体来说,JITfuzz采用了一系列专门设计用于激活各种即时编译器的优化机制(例如函数自动展开和算式化简)的变异算子来生成测试用例;同时,由于各项优化任务实际上都离不开程序控制流,JITfuzz也提出了保证测试程序用例不会遇到意料外错误的控制流变异算子,来有效探索即时编译器的深度状态。在此基础上,我们更进一步提出了基于多臂赌博机的调度算法,通过使用即时的覆盖信息来优化测试过程中的效率。在我们的试验中,JITfuzz比当前最好的同类工具多取得了27.9%的代码覆盖,也比基于先验缺陷数据库的生成性测试工具多取得了18.6%的代码覆盖。同时,我们使用JITfuzz成功找到了36个Java虚拟机的安全缺陷(其中21个是即时编译器的缺陷),并且它们中的27个缺陷(包括18个即时编译器的缺陷)已经被相应的开发者确认。

1-10.jpg

 图3


该研究工作的第一作者是2020级南方科技大学-香港大学联培博士生吴明远,导师为张煜群老师。张煜群老师为通讯作者,南科大为第一单位。


4

TraceArk: Towards Actionable Performance Anomaly Alerting for Online Service Systems

Zhengran Zeng, Yuqun Zhang, Yong Xu, Minghua Ma, Bo Qiao, Wentao Zou, Qingjun Chen, Meng Zhang, Xu Zhang, Hongyu Zhang, Xuedong Gao, Hao Fan, Saravan Rajmohan, Qingwei Lin and Dongmei Zhang

对于如微软 Azure 云平台、M365 等拥有成千上百个微服务的大型在线服务,能够及时准确地发出性能异常警告至关重要。针对这个问题,现行的研究方案主要分为两类。一类通过设置性能指标的阈值来确定异常情况,但由于系统非常复杂且处于动态变化中,固定阈值会出现大量误报。另一类追求告警准确性的方法主要采用端到端的深度学习模型,但因其可解释性不强,在实际产品中的效果有限。虽然工程师们能够理解异常报告的逻辑,但仍需花费大量时间做出具体诊断。


为了解决以上两类问题的痛点,研究员们提出了准确性高且可解释的异常告警方法 TraceArk。由于微服务系统产生的 trace 数据(包含服务的性能指标、服务之间的调用记录等),为系统的异常检测和诊断提供了重要参考,所以 TraceArk 首先对系统的 trace 数据进行详细地实证分析,在设计性能异常评估模型时(图中 Anomaly Feature Extractor 部分)充分考虑了 trace 的结构特点对性能指标的影响,以及实际业务场景中异常的含义,从而提取多个和异常定义相关的特征。比如除了性能指标时间序列异常,工程师们也会关注该异常对于整体服务的影响优先级,对系统影响时间更长,影响范围更大的异常更值得工程师们及时响应。其次,TraceArk 将少量工程师经验(反馈)纳入告警决策模型的学习过程(即图 Feedback 过程),使得 TraceArk 能够适应不同场景。为提高可解释性,TraceArk 采用了经典的树模型来评估异常的严重性,从而与告警同步输出异常的判断路径,便于工程师们进一步诊断。

1-10.png

 图4


在开源异常数据集和 M365 Exchange 真实数据集上,TraceArk 都显著优于现有 SOTA 方法,F1值分别提高了50.47%和20.34%。同时,TraceArk 已在生产环境稳定运行四个月,将原有异常告警的精确度提高了2.3倍,并为工程师们提供了可解释的告警细节。


该研究工作发表在SEIP (实践软件工程) track,第一作者是2020级南方科技大学硕士研究生曾政然,导师为张煜群老师。张煜群老师为共同第一作者,南科大为第一单位。


5

MirrorTaint: Practical Non-intrusive Dynamic Taint Tracking for JVM-based Microservice Systems

Yicheng Ouyang, Kailai Shao, Kunqiu Chen, Ruobing Shen, Chao Chen, Mingze Xu, Yuqun Zhang*, Lingming Zhang

污点分析技术,即给数据标记污点并且在程序数据流中传播污点的相关技术,已经在分析程序信息流以及保证系统和数据安全方面得到了广泛的应用。由于其在实际应用中的重要性,各种污点分析技术已经被提出,包括静态和动态污点分析。然而,现有的污点分析技术很难应用于工业界应用中被广泛使用的微服务系统。为了解决这一问题,本文提出了首个实用的非侵入式动态污点分析技术MirrorTaint,以支持基于Java虚拟机的微服务系统。具体而言,通过对微服务系统的字节码进行插桩,MirrorTaint在镜像内存空间中构建了一系列拥有特定标记污点、传播污点的规则的数据结构。这些数据结构本质上是非侵入式的,即无需修改任何程序元数据或运行时系统。在程序执行过程中,MirrorTaint通过实时复现Java虚拟机的指令执行进行动态污点分析。通过这种方式,MirrorTaint可以在执行过程中追踪被污点标记的变量,而不修改程序元数据或破坏JVM内存空间。我们在各种开源微服务系统上对MirrorTaint和SOTA动态和静态污点分析技术进行了评估比较,结果表明,与SOTA动态污点分析技术Phosphor和静态污点分析技术FlowDroid相比,MirrorTaint具有更好的兼容性、接近的精度和更高的召回率。同时,与同是动态的Phosphor 相比,MirrorTaint的运行时开销更低。此外,我们还在一家拥有亿级体量用户的金融科技公司蚂蚁集团进行了案例研究,将MirrorTaint与他们成熟的基于长期专家经验的数据检验系统进行了比较。结果显示,专家经验的不完整性导致该数据检验系统只覆盖了84.0%的总数据关系,而MirrorTaint可以自动找到99.0%的关系,且精度达到100.0%。最后,我们还应用MirrorTaint成功检测了最近广泛传播的Log4j2安全漏洞。我们的研究结果证明,MirrorTaint在支持微服务系统上具有显著优势。它能够处理动态特性,避免了静态分析技术的精度问题,并且不需要修改程序元数据或运行时系统。与SOTA污点分析技术相比,MirrorTaint在兼容性、精度和召回率方面都表现出色,并且运行时开销较低。

1-11.png

 图5


该工作的第一作者是2020届南方科技大学本科毕业生欧阳奕成(现美国伊利诺伊大学香槟分校在读博士生),其本科导师为张煜群老师。张煜群老师为本文通信作者。


6

Automated Repair of Programs from Large Language Models

Zhiyu Fan, Xiang Gao, Martin Mirchev, Abhik Roychoudhury, Shin Hwei Tan

近年来,大型语言模型(例如 OpenAI Codex)已经在许多编程任务的基准测试以及实际软件开发中上展现了其自动生成高质量代码的能力。


然而,现有大型语言模型在处理复杂任务时仍有代码生成正确率较低的问题。其中一个原因是语言模型缺乏对程序语义的认识,导致生成错误,甚至是无法编译的程序。


在本文中,我们基于自动程序修复(Automated Program Repair)技术,系统地研究了应用APR技术修复语言模型生成的错误代码的可行性。


为了测试自动程序修复技术对于自动生成的代码的表现,我们从最近的LeetCode竞赛中收集了113个编码任务,并使用Codex对这些任务生成答案。

最后,我们选用了现有最佳自动程序修复工具TBar和Recoder来修复Codex生成的错误答案

我们的研究揭示了以下几点:

(1)通过语言模型自动生成的代码与人工编写的代码存在共同的错误模式,证明为修复人工编写的程序错误而设计APR技术依然有潜力修复自动生成的代码;

(2)通过提供程序错误的相关信息,新发布的Codex-edit模式在修复bug方面与TBar和Recoder有着相似甚至更好的效果。

我们的实验表明:

(1)自动程序工具需要克服程序补丁搜索空间的限制来扩大其可用性(例如,引入更灵活的故障定位技术);

(2)由于大型语言模型可以通过在更多数据上进行训练来推导出更多的修复模式,未来的APR技术的研究重点应该从人工设计更多的修复模式转向使用程序合成/程序语义为基础的方法;

(3)将语言模型与APR相结合来产生更多高质量程序补丁是值得研究的方向。 

1-12.png

图6


该工作的第一作者是2019届南方科技大学本科毕业生范治宇(现新加坡国立大学在读博士生),其本科导师为陈馨慧(Shin Hwei Tan),该工作在陈馨慧老师的指导下完成。


陈馨慧老师联合英国伦敦大学学院、韩国庆北大学以及美国麻省大学的学者在ICSE 2023上举办了第四届国际自动程序修复研讨会(International Workshop on Automated Program Repair),该研讨会受到广泛关注,吸引了30多名来自世界各地的相关专家包括国内北京大学和美国密歇根大学的学者参与交流与讨论。

1-13.jpg

陈馨慧老师


刘烨庞老师担任ICSE大会下设的移动软件工程会议MobileSoft的Novel Ideas and Emerging Results Track的程序委员会联合主席,ACM Student Research Competition的程序委员会委员,以及SCORE Contest的通讯评委和现场决赛的评委。