2024年4月14日-4月20日,中国计算机学会(CCF)推荐的A类国际学术会议ICSE'2024在葡萄牙里斯本召开,浙江大学软件工程团队共有11篇论文发表,其中八篇论文以浙江大学为第一单位,一篇论文获ACM SIGSOFT Distinguish Paper Award奖项。另有一篇论文发表于MSR 2024并获MSR ACM SIGSOFT Distinguish Paper Award奖项与MSR 2024 FOSS Impact Award奖项。ICSE全称为International Conference on Software Engineering,是国际公认的软件工程领域旗舰会议,每年召开一次,2024年是第46届会议。浙江大学软件工程团队在软件工程领域研究又一次取得重大进展!


以下为获奖论文奖状与颁奖留影。

左二为浙江大学胡星老师,左三为硕士生陈俊凯





以下为论文列表(按照第一作者姓名拼音字母顺序):




01


标题:Code Search is All You Need? Improving Code Suggestions with Code Search ACM SIGSOFT Distinguished Paper Award

作者:陈俊凯,胡星,李振昊,高翠芸,夏鑫,David Lo

简介:现代集成开发环境提供自动化的代码推荐技术以帮助开发人员提升效率。这些技术通常从代码仓中检索相似代码片段,或利用深度学习模型提供代码推荐。然而,如何有效地利用代码检索增强代码推荐仍然没有被系统地探索。在本文中,我们研究一种基于检索的代码推荐框架。具体而言,我们的框架利用不同的检索方法、搜索策略来寻找相似代码,并利用它们提升语言模型的代码推荐性能。我们在不同的语言模型上进行了实验,并与原模型进行比较。我们发现该框架可以显著提升代码推荐的性能。




02


标题:Exploiting Library Vulnerability via Migration Based Automating Test Generation

作者:陈梓瑞,胡星,夏鑫,高毅,徐同同,David Lo,杨小虎

简介:在软件开发中,开发人员广泛使用第三方库来避免实现现有功能。当披露新的第三方库漏洞时,项目维护人员需要确定他们的项目是否受到漏洞的影响,这需要开发人员投入大量的评估工作。然而,现有的工具面临一系列问题:静态分析工具产生误报,测试生成工具在面对复杂漏洞时复现成功率低。漏洞利用是一段用于重现漏洞的代码片段,其中包含丰富的与漏洞相关的信息。本研究提出了一种基于漏洞利用的新方法,称为VESTA,它为开发人员提供漏洞利用测试作为开发者决定是否更新依赖的依据。我们对过去五年披露的30个漏洞进行了实验,涉及60个漏洞项目对,并将实验结果与基准方法行了比较。VESTA的成功率为71.7%,在验证可利用漏洞的有效性方面比基准方法提高了53.4%




03

标题:MUT: Human-in-the-Loop Unit Test Migration

作者:高毅,胡星,徐同同,夏鑫,David Lo,杨小虎

简介:测试迁移可实现在不同平台和编程语言之间重用测试人员通过知识和创造力制定的测试用例,这在移动应用测试中已经展现出了有效性。然而,在源代码级别上的单元测试迁移并未得到足够的关注和探索。此外,当前对于C++程序的单元测试自动生成工具存在较少,因此,我们提出了一种基于迁移的测试生成方法MUT,用以实现在跨语言和跨平台情况下进行测试复用。MUT首先建立源项目和目标项目之间的代码映射关系,并确定适合从源项目中迁移的单元测试。然后,MUT的代码翻译组件通过解析待迁移单元测试的语法树,并逐步翻译树中的每个节点,最终生成目标单元测试,这些测试能够在目标项目中被编译和执行。此外,我们开发了一个Web工具来帮助开发人员进行测试迁移。


04

标题:Pre-training by Predicting Program Dependencies for Vulnerability Analysis Tasks

作者:刘忠鑫,唐郅杰,张峻伟,夏鑫,杨小虎

理解代码的语义结构(例如程序依赖)对于漏洞分析等软件工程任务非常重要。现有预训练代码模型要么忽视了代码语义结构的知识,要么专注于学习如何使用静态分析工具提取的代码语义结构,存在性能和易用性的局限。针对这些局限,我们提出并实现了两种新颖的预训练任务,即语句级控制依赖预测和单词级数据依赖预测,来指导模型有效学习代码语义结构知识,并基于这两种任务构建了预训练代码模型PDBERT。实验结果表明,PDBERT可以直接被用于高效分析代码中的细粒度依赖关系,也可以借助微调等手段显著提升漏洞检测、漏洞分类等对代码语义结构敏感的下游任务。




05


标题:Towards More Practical Automation of Vulnerability Assessment

作者:潘圣益,鲍凌峰,周嘉源,胡星,夏鑫,李善平

简介:漏洞严重程度评估是漏洞管理过程中的关键阶段,旨在分析检测阶段发现的漏洞特性,定位其中的高危漏洞,以支持后续修复阶段中优先级的确定。我们首先通过实证研究揭示了CVSS指标之间存在的潜在联系,并设计一个基于提示学习的模型利用这一潜在联系预测CVSS指标的组合。我们提出了两个新的指标更全面地评估模型依据漏洞严重程度进行优先级排序的性能。我们讨论了模型在针对评估体系升级这一场景下的迁移能力。实验结果表明我们提出的方法能够有效解决上述已有工作中的不足。


06

标题:PPT4J: Patch Presence Test for Java Binaries

作者:潘致远,胡星,夏鑫,展鹇,David Lo,杨小虎

简介:近年来,开源软件中报告的漏洞数量大幅增加。安全补丁提供了保护软件免受攻击和漏洞的必要措施。在实践中,很难确定补丁是否已集成到软件中,尤其是在只有二进制文件的情况下。在本文中,我们提出了一个新的针对Java补丁存在性测试框架,名为 PPT4J。它将 Java 二进制文件(即字节码文件)作为输入,从补丁中提取语义信息,并使用基于特征的技术来识别二进制文件中的补丁行。此外,我们还在 JetBrains IntelliJ IDEA 上对 PPT4J 进行了实践评估。结果表明,软件中包含的一个第三方库没有为两个 CVE 打补丁,我们已将这一潜在的安全问题报告给供应商。


07


标题:Streamlining Java Programming: Uncovering Well-Formed Idioms with IdioMine

作者:杨燕鸣,胡星,夏鑫,David Lo,杨小虎

简介:代码惯用语是帮助解决多个软件项目中的特定问题或特定任务的常用模式、技术或实践。它们可以提高代码质量、性能和可维护性,还可以促进程序标准化和跨项目重用。然而,识别代码惯用语非常具有挑战性,因为现有研究仍然存在局限性。我们提出了一种名为 IdiomMine 的新方法,自动从 Java 项目和库中提取通用和特定的习惯用法。我们设计并实践了相关实验和用户研究来验证IdiomMine的正确性和提取的习语的实用价值。


08


标题:PS3: Precise Patch Presence Test based on Semantic Symbolic Signature

作者:詹奇,胡星,李志阳,夏鑫,David Lo,李善平

简介:在软件开发过程中,漏洞对用户构成了重大威胁。补丁是对抗漏洞的最有效方法。在大型软件系统中,测试每个受影响的二进制文件中是否存在安全补丁对于确保系统安全至关重要现有方法主要集中于检测在相同编译器选项中编译的补丁。然而,开发人员在不同情况下使用截然不同的编译器选项来编译程序是很常见的,这会导致现有方法不准确。在本文中,我们提出了一种名为PS3的新方法,利用符号模拟来提取在不同编译器选项下稳定的签名。然后可以通过在语义级别比较参考和目标之间的签名来精确测试补丁的存在性。