软件工程顶会——ICSE 2025 论文清单与摘要(下)

191、Software Model Evolution with Large Language Models: Experiments on Simulated, Public, and Industrial Datasets

软件系统的结构与行为建模在软件工程工业实践中占据关键地位。与其他软件工程制品类似,软件模型同样面临演化需求。然而如何通过模型补全推荐辅助建模者完成模型演化,仍是亟待解决的开放性问题。本文探索大语言模型在此任务的潜力,提出RaMc方法——融合大语言模型、模型历史与检索增强生成技术的模型补全方案。通过工业应用案例、开源社区数据集及模拟模型仓库对照实验,我们基于RaMc评估了大语言模型在模型补全任务中的表现。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a649/251mGkTdbQQ

192、Source Code Summarization in the Era of Large Language Models

为帮助软件开发人员理解与维护程序,各类自动(源代码)摘要生成技术被提出,旨在为给定代码片段生成简洁的自然语言摘要(即注释)。近年来,大型语言模型(LLM)的兴起显著提升了代码相关任务的性能表现。本文对LLM时代的代码摘要技术展开了系统而全面的研究,涵盖基于LLM的代码摘要工作流程中涉及的多个维度。具体而言,我们首先检验了评估LLM生成摘要质量的常见自动化方法,发现GPT-4评估方法的结果与人工评估最为吻合。随后,我们探究了五种提示技术(零样本、少样本、思维链、批判和专家模式)在适配LLM完成代码摘要任务时的有效性。与预期相反,复杂提示技术未必优于简单的零样本提示。接着,我们研究了LLM模型设置(包括top_p和temperature参数)对生成摘要质量的影响,发现这两个参数的影响效果因基础LLM和编程语言而异,但其影响模式具有相似性。此外,我们全面考察了LLM对不同类型编程语言代码的摘要能力。结果表明,与过程式和面向对象等编程语言相比,LLM在摘要逻辑编程语言代码时表现欠佳。最后,我们意外发现7B参数的CodeLlama-Instruct模型在生成描述代码设计原理和断言代码属性的摘要时,能够超越先进的GPT-4模型。本研究期望为理解LLM时代的代码摘要技术提供全面参考。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a419/215aWOQ5PEI

193、SpecGen: Automated Generation of Formal Program Specifications via Large Language Models

在软件开发过程中,形式化程序规约在需求分析、软件测试与验证等多个阶段具有关键作用。然而人工编写形式化程序规约难度较大,不仅耗时耗力,对于复杂程序语义的正确性与完备性描述更具挑战性。为减轻开发者负担,自动化规约生成方法应运而生。但现有方法通常依赖预定义模板或语法规则,难以准确描述现实复杂程序的行为与功能。为应对这一挑战,我们提出SpecGen——一种基于大语言模型(LLMs)的创新性形式化程序规约生成技术。其核心思路是通过LLMs的代码理解能力突破现有方法的局限性。SpecGen的工作流程分为两个阶段:第一阶段采用对话式引导策略,通过激发LLM生成高质量规约的潜能,为目标程序生成合适规约;第二阶段针对LLM生成失败的情况,对模型输出的规约施加四种变异算子,并基于新型启发式选择策略,通过高效分配变体权重从变异结果中筛选可验证的规约。我们在SV-COMP Java类别基准测试集和包含120个程序的手工构建数据集上评估SpecGen。实验结果表明,SpecGen在385个程序中成功为279个生成可验证规约,性能优于现有基于LLM的方法及Houdini、Daikon等传统规约生成工具。对生成规约质量的深入分析表明,SpecGen能全面准确地表达输入程序的行为特征。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a666/251mGw3wQ6c

194、SpecRover: Code Intent Extraction via LLMs

自主程序改进通常涉及自动生成错误修复和功能添加。此类程序改进可通过结合大型语言模型(LLM)与程序分析能力来实现,以LLM智能体的形式运作。由于程序修复或改进通常需要预期行为的规范说明——规范推断对于生成高质量程序补丁至关重要。本研究探讨了在LLM智能体中实现高效低成本的迭代式规范推断工作流。针对软件项目中待解决的GitHub问题,我们的目标是通过迭代式代码搜索与规范推断相结合,从项目结构和行为中推断意图。所捕获的意图将由审查代理进行验证,其目标是对补丁进行审核,并为已审核补丁提供置信度度量。我们的方法SpecRover基于开源LLM智能体AutoCodeRover构建。在包含2294个GitHub问题的完整SWE-Bench评估中,其效能较AutoCodeRover提升超50%。与现有开源智能体相比,本方案在解决SWE-Bench lite中平均GitHub问题时展现出适度成本(每个问题0.65美元)。SpecRover生成的解释能为开发者提供更清晰的"信号",帮助判断何时可放心采纳建议补丁。该研究也旨在证明:即便程序修复技术进入LLM时代,规范推断在自动化程序修复中仍具有持续重要性。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a617/251mFZysrIc

195、Static Analysis of Remote Procedure Call in Java Programs

远程过程调用(RPC)通常用于网络间的进程通信,它使得程序能够像调用本地函数一样,调用另一个地址空间(甚至另一台机器)中的过程。这种便利性源于其对网络通信的封装。然而,正是由于这种封装特性,现有静态分析工具难以穿透其内部逻辑。随着基于RPC的程序/框架在各领域发挥日益重要的作用,对RPC进行静态分析具有不可忽视的意义。我们注意到,现有许多基于Java编写的RPC框架/程序采用显式协议,这为建立静态分析模型提供了可能。其核心挑战在于如何识别不同框架/程序中的RPC操作,以及如何自动建立客户端与服务端的关联关系。本文提出创新方法RPCBridge,通过适配器统一RPC过程中最基础的操作,基于语义以直接而精确的逻辑规则对RPC建模,执行指针分析并在调用图中构建RPC边,从而完善调用图结构。基于5种主流RPC框架对实际大型Java程序的评估表明,我们的方法能有效捕获RPC操作并构建客户端与服务端的关键链接,其中60.1%在执行后确认为真实调用关系。该方法以极低的内存和时间开销(污点分析器的泄漏路径检出率提升24.3%),使原先未被完整建模的代码获得显著收益,并能连接系统中的各个模块,从而实现更全面的静态分析。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a688/251mGLaOjBe

196、Studying Programmers Without Programming: Investigating Expertise Using Resting State fMRI

资深程序员在编码活动中效率更高,但其深层原因尚未明晰。为此,近期研究开始采用功能性磁共振成像(fMRI)等技术,试图解析专家级程序员在编码时的思维模式。这些实验均基于特定编程任务(如代码理解展开),但始终未能检测出与编程经验相关的系统性差异。然而,任务导向型研究可能限制了所涉及脑网络的广度与类型。在认知神经科学领域,研究者常采用静息态数据分析——即记录参与者静卧于扫描仪时的自发脑活动。大脑功能组织具有可塑性,会随经验积累产生变化。这种变化可通过静息态检测,因此该数据类型适用于研究编程活动如何随时间推移重塑神经组织结构。本文分析了150名参与者(其中96名为程序员)的静息态扫描数据,发现程序员群体在语言处理、数学运算及时间注意力相关的脑区间呈现更强的功能连接,而非程序员群体则在与社交情感认知相关的脑区表现出更多连接。研究还发现,随着编程年限增长,程序员大脑中分别负责阅读视觉信息处理和发音的两个脑区间的连接强度会逐渐减弱。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a701/251mGUpleXm

197、Synthesizing Document Database Queries using Collection Abstractions

文档数据库在各类应用中日益普及,但其底层灵活复杂的数据模型使得查询语句编写颇具挑战性。本文提出一种自动从输入-输出示例生成文档数据库查询的合成技术。我们设计了一种新型领域特定语言,以代数风格表达具有代表性的文档数据库查询集合。该合成技术通过创新的集合抽象推理机制高效剪枝搜索空间,快速生成目标查询。基于多源110项基准测试的评估表明,所提技术成功合成了108项测试案例。平均而言,合成器仅需少量输入-输出示例即可在数十秒内生成文档数据库查询。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a689/251mGLN8a9W

198、TIGER: A Generating-Then-Ranking Framework for Practical Python Type Inference

Python的动态类型系统虽提供了灵活性与表现力,却可能引发类型相关错误,因此亟需通过自动类型推断来增强类型提示功能。现有基于学习的方法虽展现出良好的推断准确性,但在全面处理各类类型(包括复杂参数化类型及(未见过)的用户自定义类型)时仍面临实际挑战。本文提出TIGER——一种两阶段生成-排序(GTR)框架,专为有效处理Python多样化类型类别而设计。TIGER利用微调过的预训练代码模型,通过跨度掩码目标训练生成模型,并通过对比训练目标训练相似性模型。该方法使TIGER能在生成阶段生成广泛类型候选项(含复杂参数化类型),并在排序阶段精准排列含用户自定义类型的候选项。基于ManyTypes4Py数据集的评估表明,TIGER在各类类型推断中均优于现有方法,其中用户自定义类型与未见类型的Top-5精确匹配准确率分别提升11.2%和20.1%。实验结果不仅验证了TIGER的卓越性能与效率,更凸显其生成与排序阶段对增强自动类型推断的重要意义。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a229/215aWDAX0cg

199、TIVER: Identifying Adaptive Versions of C/C++ Third-Party Open-Source Components Using a Code Clustering Technique

复用第三方开源软件(OSS)虽能带来诸多益处,却可能因漏洞传播使整个系统面临风险。尽管追踪OSS组件版本有助于防范威胁,现有方法通常仅将单一版本映射至复用的OSS代码库。这种粗粒度机制无法处理代码库中共存的多个版本,导致OSS管理失效。此外,由于噪声代码(如跨不同OSS共存的算法代码)以及OSS冗余复用产生的重复组件,精准识别组件版本极具挑战性。本文提出"自适应版本"概念作为表征复用OSS版本多样性的全流程解决方案,并推出TIVER方法用于有效识别OSS组件的自适应版本。TIVER采用两项关键技术:(1) 细粒度函数级版本控制以揭示详细版本信息,(2) OSS代码聚类以识别重复组件并消除噪声,从而精准定位OSS复用位置与自适应版本,有效缓解OSS复用相关威胁。通过对GitHub热门C/C++软件的评估发现,单一版本的OSS组件仅占33%,其余67%的组件平均包含三个以上版本。TIVER在区分重复组件时以88.46%准确率和91.63%召回率识别自适应版本,在消除噪声时达到86%准确率和86.84%召回率,而现有方法在区分重复组件时召回率不足42%且未处理噪声问题。进一步实验表明,TIVER可提升漏洞管理能力,并能应用于软件物料清单(SBOM)以增强供应链安全。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a725/251mHaekWuk

200、TOGLL: Correct and Strong Test Oracle Generation with LLMs

测试预言在软件测试中扮演着关键角色,能有效支撑缺陷检测。尽管神经网络方法在自动生成测试预言方面初显潜力,但其常产生大量误报并生成较弱预言。虽然大语言模型(LLM)在代码生成、测试用例创建和缺陷修复等软件工程任务中展现出卓越能力,但目前仍缺乏大规模研究探索其在测试预言生成中的有效性。LLM能否解决高效预言生成的核心挑战,这一命题既引人入胜又亟待深入探究。本研究首次系统评估LLM生成正确、多样且强健测试预言的能力——这些预言应能有效识别大量独特缺陷。我们基于110个Java项目的大规模数据集,采用六种差异化提示对七种代码LLM进行微调,并利用最优微调模型与提示组合,提出新型LLM测试预言生成方法TOGLL。为验证TOGLL的泛化性,我们在25个未参与训练的大型Java项目上进行实验,不仅评估生成预言的正确性,还考察其多样性与强度,并与EvoSuite及前沿神经方法TOGA对比。结果表明:TOGLL生成的正确断言预言数量是TOGA的3.8倍,异常预言数量达4.9倍;在缺陷检测方面,TOGLL能检测出EvoSuite无法识别的1,023个独特变异体(相当于TOGA检测能力的十倍);此外,TOGLL在Defects4J数据集真实缺陷检测上显著优于TOGA。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a635/251mGbSj0JO

201、TacDroid: Detection of Illicit Apps through Hybrid Analysis of UI-based Transition Graphs

非法应用已发展为一个利润丰厚的灰色产业。这类应用或为用户提供受限服务(如色情、赌博),或实施欺诈行为(如诈骗)。尽管非法应用普遍存在,但相关研究却鲜有关注,现有检测方法大多仅依赖静态分析。然而,随着越来越多移动应用通过动态资源加载实现核心功能,仅靠静态分析已显不足。为此,本文提出TacDroid——一种融合动态内容获取与静态分析的新方法,旨在解决两种方法各自的局限性(动态分析覆盖率低、静态分析准确率低)。具体而言,TacDroid对安卓应用同时进行动静双态分析,分别构建动态与静态用户界面跳转图(UTG),通过关联生成中间态UTG;继而嵌入图结构并采用改进的图自编码器(GAE)模型预测节点跳转关系,通过链接预测有效剔除静态分析误判产生的假阳性跳转边,补充中间态UTG遗漏的假阴性跳转边,最终生成完整准确的UTG。基于该UTG,TacDroid可判定应用合法性并识别其类别。实验结果表明,TacDroid在非法应用检测中准确率表现突出,F1值达96.73%,显著优于现有最优方案。本研究为非法应用的识别与分类提供了重要技术突破。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a648/251mGki1JOo

202、Template-Guided Program Repair in the Era of Large Language Models

近年来,大型语言模型(LLM)的应用显著推动了自动化程序修复(APR)领域的进展。特别是将LLM与传统基于模板的修复方法相结合,已展现出显著成效。然而,传统方法与LLM的优势协同仍未被充分挖掘。这一不足源于模板的滥用及其有限覆盖范围,同时零样本学习环境下使用小规模LLM也非最优方案。为突破这些限制,我们提出神经模板修复框架NTR,该两阶段修复框架包含模板选择与补丁生成,均采用微调范式。在模板选择阶段,我们将其建模为多分类问题,通过微调百万级参数的LLM实现精准模板筛选。在补丁生成阶段,将选定模板(如"条件表达式变异")作为指导方向,对十亿级参数的LLM进行定向微调以生成精确补丁。此外,我们引入特殊模板标识无适用模板的情况,并采用基于概率的模板优先级排序,从而优化补丁生成。该框架不仅有效解决模板失配问题,还能在GPU内存限制下帮助十亿级LLM高效探索补丁空间。我们在Defects4J V1.2和HumanEval-Java基准上评估不同基础模型的NTR表现,结果均显示显著优势。以StarCoder为基础模型时,NTR分别修复128和129个错误,较最佳基线APR工具多修复14和59个错误;采用更大规模的CodeLlama模型时,修复数量提升至139和136个,超出基线25和66个。值得注意的是,这一性能不仅源于基础模型,更得益于NTR框架的独特设计——StarCoder和CodeLlama在NTR框架下分别实现22和23个额外修复,充分验证了我们通过模板释放LLM缺陷修复潜力的创新视角。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a367/215aWM25IVa

203、Test Intention Guided LLM-based Unit Test Generation

大型语言模型(LLM)的出现加速了智能软件工程技术的发展,为单元测试生成带来了广阔前景。然而,现有直接由LLM生成单元测试的方法往往因覆盖率低和模拟能力不足而难以实用。本文提出IntUT,该方法通过显式测试意图(如测试输入、模拟行为和预期结果)有效引导LLM生成高质量测试用例。在三个工业级Java项目及实时研究中的实验表明,基于测试意图的提示能帮助开发者生成优质测试用例:分支覆盖率提升94%,行覆盖率提升49%。最终,我们收集了开发者使用IntUT为三个新Java项目生成用例的反馈,结果显示行覆盖率超过80%,编写单元测试用例的效率提升30%。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a779/251mHIQPC6c

204、Testing and Understanding Deviation Behaviors in FHE-hardened Machine Learning Models

全同态加密(FHE)是一种极具前景的密码学原语,能够实现对加密数据的安全计算。FHE的主要应用场景是支持公有云基础设施上的隐私保护机器学习(ML)。尽管基于FHE的机器学习(HE-ML)发展迅速,学界仍缺乏对其鲁棒性的系统性认知。本文致力于系统化测试并理解HE-ML模型的偏差行为——即相同输入在FHE强化模型与其明文版本之间产生分歧输出,最终导致完全错误的模型预测结果。为在昂贵FHE计算约束下高效发现触发偏差的输入,我们设计了新型差分测试工具HEDIFF,该工具利用明文模型上的边界度量作为指导,驱动针对FHE模型的定向测试。对于识别出的偏差输入,我们进一步分析其是否具有可迁移的通用噪声模式。通过三个主流HE-ML框架和12种模型-数据集组合的评估,HEDIFF在几乎所有测试的FHE框架和模型中成功检测出数百个偏差输入。定量分析表明,相比常规输入,这些偏差输入具有(视觉上)可辨识的意义。深入的原理分析揭示了偏差输入的根本成因,并允许我们归纳其噪声模式以实现更精准的定向测试。本研究为构建适用于真实场景的鲁棒HE-ML系统提供了重要启示。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a644/251mGhDoomY

205、Thanos: DBMS Bug Detection via Storage Engine Rotation Based Differential Testing

差分测试是自动化数据库管理系统测试中建立测试预言的主流策略。然而,精心选择具有不同实现方式且输入语法兼容的等效数据库系统需要耗费大量人工成本。本文提出Thanos框架,通过基于存储引擎轮换的差分测试来发现数据库管理系统缺陷。我们的核心思路是:采用不同存储引擎的数据库管理系统必须提供一致的基础存储功能,因此可通过存储引擎轮换构建等效数据库系统,确保相同SQL测试用例在这些等效系统上产生一致结果。该框架包含四个主要步骤:1)选择合适存储引擎;2)提取选定存储引擎间的等价信息;3)合成确保数据库系统等效性的特征导向测试用例;4)向配置选定存储引擎的数据库系统发送测试用例并比对结果。我们在MySQL、MariaDB和Percona三种经过广泛测试的主流数据库系统上评估Thanos,并与前沿模糊测试工具SQLancer、SQLsmith和Squirrel进行对比。Thanos在分支覆盖率上领先24%-116%,同时发现了其他工具遗漏的多个缺陷。更重要的是,厂商已确认Thanos发现的32个未知漏洞,其中29个被评定为严重等级。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a001/215aWk5aBPi

206、The Design Smells Breaking the Boundary between Android Variants and AOSP

手机厂商基于安卓开源项目(AOSP)定制其安卓分支系统以增强功能。尽管独立开发,这些分支系统仍需定期跟随上游AOSP演进并合并代码变更。厂商投入大量精力维护其分支系统并解决合并冲突。本文揭示了破坏安卓分支系统与AOSP设计边界的重复性设计异味,这些异味表现为跨边界的异常依赖关系,损害了分支系统的可维护性及与AOSP的协同演进能力。我们提出自动化检测工具DroidDS,收集了4个开源项目和1个工业项目的22个安卓分支版本及对应AOSP版本。研究发现:涉及设计异味的文件维护成本显著高于其他文件;这些受感染文件不仅具有大代码量、高复杂度或面向对象异味特征;超过半数因重新应用AOSP变更引发的代码冲突涉及受感染文件;大部分设计问题可被缓解。开发者可利用DroidDS定位并优先处理设计问题,通过重构保持分支系统与AOSP的健康耦合,从而提升可维护性并降低冲突风险。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a599/251mFLO326s

207、The Fact Selection Problem in LLM-Based Program Repair

近期研究表明,在提示词中融入错误相关事实(如堆栈轨迹和GitHub问题)能增强大语言模型(LLM)的缺陷修复能力。随着模型上下文窗口持续扩展,一个关键问题随之产生:为最大化正确修复缺陷的概率,提示词中应包含哪些事实及多少事实?为解答此问题,我们开展了一项大规模研究,通过在BugsInPy基准测试中针对314个开源Python项目缺陷构建19,000余条包含七类不同事实组合的提示词。研究发现,从简单的代码上下文等语法细节,到先前LLM研究中未涉及的语义信息(如天使值),每类事实均具有价值。具体而言,每类事实都能帮助修复某些原本无法解决或仅能低成功率修复的缺陷。值得注意的是,程序修复提示词的效果与使用事实数量呈非单调关系——过多事实反而导致效果下降。这些发现促使我们提出事实选择问题:如何为特定任务实例确定最优事实集合以最大化LLM性能。研究表明不存在适用于所有缺陷修复的通用事实集合,为此我们开发了名为Maniple的基础统计模型,该模型能针对特定缺陷动态选择提示词中的事实组合。该模型性能显著优于最佳通用事实集合。为突显事实选择问题的重要性,我们将Maniple与最先进的零样本、非对话式LLM缺陷修复方法进行对比测试。在包含157个缺陷的测试数据集上,Maniple成功修复88个缺陷,较最佳配置提升17%。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a699/251mGSbXo08

208、The Power of Types: Exploring the Impact of Type Checking on Neural Bug Detection in Dynamically Typed Languages

[动机]在Python等动态类型语言中实现自动化缺陷检测对保障代码质量至关重要。由于这类语言缺乏强制性类型标注,传统静态分析工具难以早期识别相关错误。随着深度神经网络的进展,神经缺陷检测器的应用日益广泛。在静态类型语言中,类型检查器被集成至编译器,因此在为这些语言设计神经缺陷检测器时已考虑该因素。[问题]然而先前研究在训练和测试动态类型语言的神经缺陷检测器时忽视了这一点。当采用可选类型检查器时,对现有神经缺陷检测器评估时若包含类型检查器易检测的缺陷,可能影响其性能评估。更甚者,在训练集中包含此类缺陷会导致检测器错误偏向特定缺陷类型。[贡献]我们探究了类型检查对多种变量误用缺陷(神经缺陷检测器常见目标)检测器的影响。通过对现有合成与真实数据集进行类型检查,评估类型相关缺陷的普遍性。进而研究类型相关缺陷如何影响神经缺陷检测器的训练与测试。[发现]研究表明现有缺陷检测数据集包含大量类型相关缺陷。基于此发现,我们证明将神经缺陷检测器与类型检查器结合具有优势,尤其在代码含类型标注时。进一步实验表明神经缺陷检测器对类型相关缺陷的识别优于其他缺陷。此外,从训练数据中剔除类型相关缺陷可提升检测器识别超出类型检查器范围缺陷的能力。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a625/251mG4MkL7O

209、The Product Beyond the Model -- An Empirical Study of Repositories of Open-Source ML Products

机器学习(ML)组件正日益被集成到面向终端用户的软件产品中,但开发者在将ML原型转化为产品的过程中面临诸多挑战。学术界对商业ML产品的源代码获取途径有限,这阻碍了研究进展。本研究首先提出一种创新方法,从GitHub上超过50万个ML相关项目中筛选出262个开源ML产品。随后,我们通过定性与定量分析30个开源ML产品,围绕开发实践与系统架构回答了六大研究问题。研究发现,样本中大多数ML产品呈现出既往访谈研究所述的初创式开发模式。我们总结出21项发现,包括:许多ML产品中数据科学家参与度有限、ML与非ML代码间模块化程度异常低下、模型集成至产品的架构选择呈现多样性,以及模型测试、流水线自动化与监控等行业最佳实践普及不足等。此外,本研究还从科研、开发与教育角度提出7项启示,包括:需为非数据科学团队开发辅助工具、存在教育机遇,以及针对隐私保护遥测开展开源专项研究等。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a063/215aWuf2vss

210、The Same Only Different: On Information Modality for Configuration Performance Analysis

软件系统中的配置功能旨在确保系统高效运行并满足多样化的用户需求。然而,部分(若非全部)配置选项会显著影响系统性能。配置性能分析的核心在于理解(或推断)配置选项间的关联及其对性能的影响,这一过程至关重要。现有分析主要依赖两种信息源:用户手册或源代码。但二者在配置性能分析中的具体作用尚不明确。基于手册的研究强调其信息丰富性与自然语言优势;而倾向源代码的研究则看重其提供的结构化信息,同时质疑手册的时效性。为填补这一认知空白,本文对10个系统开展大规模实证研究,涵盖1,694个配置选项、106,798字手册内容及22,859,552行代码,重点探究手册与代码在配置性能分析两项关键任务(性能敏感选项识别与关联依赖关系提取)中的实际效用。研究发现:融合手册与代码的双模态方法对两项任务均有增益;当前依赖单一信息源的自动化工具远未达到实用水平,整体上仍无法与人工分析媲美。这些发现为推进配置性能分析研究指明了方向。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a748/251mHoVMV9u

211、The Seeds of the FUTURE Sprout from History: Fuzzing for Unveiling Vulnerabilities in Prospective Deep-Learning Libraries

大型语言模型(LLM)的广泛应用凸显了依赖PyTorch、TensorFlow等基础深度学习(DL)库的深度学习技术的重要性。尽管这些库功能强大,但在应对LLM领域的快速迭代时仍面临可扩展性与适应性挑战。为此,苹果、华为等科技巨头正积极开发专属DL库以提升性能、增强扩展性并保护知识产权。确保此类库的安全性至关重要,其中模糊测试是关键解决方案。然而,现有模糊测试框架存在目标灵活性不足、难以有效测试易出错的API序列、以及难以利用新库有限可用信息等问题。针对这些局限,我们提出首个面向新兴及未来DL库的通用模糊测试框架FUTURE。该框架通过挖掘现有库的历史漏洞信息,并基于LLM进行针对性代码生成微调,既能识别新库中的漏洞,又能反向利用新库的发现增强现有库安全性,形成"历史-未来-历史"的闭环。我们在三个新兴DL库上开展全面评估,结果表明FUTURE在漏洞检出量、漏洞复现成功率、代码生成有效率和API覆盖率上显著优于现有方案。值得注意的是,FUTURE已在452个目标API中检测出148个漏洞(含142个零日漏洞),其中10个漏洞获颁CVE编号。此外,FUTURE还逆向检测出PyTorch中的7个漏洞,印证了其增强现有库安全性的能力。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a669/251mGxZSLfy

212、TopSeed: Learning Seed Selection Strategies for Symbolic Execution from Scratch

我们提出TopSeed,一种自动选择最优种子以增强符号执行的新方法。近年来,通过包括搜索策略和状态剪枝启发式在内的多种先进技术,符号执行的性能已显著提升。然而,这些技术通常在未考虑"种子注入"的情况下验证其有效性——种子注入能高效初始化待探索的程序状态。本文旨在从与任意符号执行技术交互过程中产生的候选输入中筛选有价值种子,无需预定义种子语料库,从而最大化技术效能。核心挑战在于候选输入数量庞大,难以识别潜力种子。为此,我们引入定制化在线学习算法:该算法迭代式地对候选输入分组,对各组进行排序,并基于符号执行过程中积累的数据从排名最高组别选择种子。在17个开源C程序上的实验表明,TopSeed在分支覆盖率和漏洞检测能力方面,显著提升了基于两种符号执行器实现的四种前沿技术。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a632/251mG9WwhQA

213、Toward a Better Understanding of Probabilistic Delta Debugging

给定一个元素列表L及其满足的属性ψ,ddmin是一种经典的测试输入最小化算法,旨在自动从L中移除与ψ无关的元素。该算法已被广泛应用于测试输入最小化和软件减负等领域。近期提出的ddmin变体ProbDD通过贝叶斯优化估计L中每个元素与ψ相关的概率,并统计决定每次应批量删除的元素及其数量,实现了当前最优性能。然而,ProbDD的理论概率模型较为复杂,其性能优势的内在机理尚未得到充分探究。本文首次对ProbDD展开深度理论分析,阐明概率与子集规模的变化趋势并简化概率模型,同时通过成功率分析、消融实验及权衡与局限性考察等实证研究,进一步解析这一前沿算法。成功率分析揭示了ProbDD如何通过跳过删除子集补集和已尝试子集的低效查询,有效解决ddmin的速度瓶颈;消融实验表明随机性对ProbDD效率无显著影响。这些发现为测试输入最小化算法的未来研究和应用提供了重要参考。基于上述发现,我们提出简化版ProbDD——CDD,其在理论和实现层面均显著降低复杂度。CDD的作用在于:1)验证关键结论的正确性(如ProbDD中的概率实质上是元素的单调递增计数器);2)识别真正影响ProbDD性能的核心因素。在测试输入最小化和软件减负的76个基准实验上,全面评估证明CDD虽大幅简化,仍能保持与ProbDD相当的性能。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a654/251mGo5UoU0

214、Towards Better Answers: Automated Stack Overflow Post Updating

在Stack Overflow(SO)上复用代码片段是开发者解决问题的常见做法。尽管SO代码片段是宝贵的资源,但必须认识到其存在缺陷——重用问题代码可能导致次优或缺陷代码被引入软件项目。SO评论常会指出帖子的弱点并提供改进答案质量的宝贵见解,但这些评论往往被遗漏或忽视,使得问题代码片段未被修正。本研究首先探索了基于关联评论自动更新SO帖子的任务,为此我们提出了名为Soup(Stack Overflow帖子更新器)的新型框架。该框架解决两个核心任务:有效评论-编辑预测(VCP)和自动帖子更新(APU)。大量实验结果表明,我们的模型在一系列基准测试中表现优异。此外,我们还对Stack Overflow进行了真实环境评估,向SO帖子提交了50个由该方法生成的编辑建议,其中21个已通过网站维护者审核采纳,进一步证实了Soup的实用价值。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a292/215aWHkzGkU

215、Towards High-strength Combinatorial Interaction Testing for Highly Configurable Software Systems

高度可配置的软件系统在实践中对于满足日益增长的软件定制需求至关重要,而组合交互测试(CIT)是验证此类系统的重要方法。作为CIT的核心问题,约束覆盖阵列生成(CCAG)旨在构建最小规模的t维覆盖阵列(CA),其中t代表测试强度。大量研究表明,高强度CIT(如4维和5维CIT)比低强度CIT(即2维和3维CIT)具有更强的缺陷检测能力,且某些关键缺陷仅能通过高强度CIT暴露。尽管现有CCAG算法在解决低强度CCAG问题时表现优异,但在处理4维和5维CCAG时面临严峻的高强度挑战,亟需有效解决方案。

为缓解这一挑战,我们提出了一种新颖高效的局部搜索算法HSCA。该算法融合了三项创新技术:多轮CA生成机制、动态优先级分配方法和变量分组策略,以提升性能。在35个真实场景与合成实例上的实验表明,HSCA生成的4维和5维CA规模显著小于当前最优CCAG算法。更令人鼓舞的是,在全部35个实例中,HSCA成功构建了35个4维CA和29个5维CA,其中包括现有CCAG算法失败的11个4维实例和15个5维实例。实验结果证实HSCA能有效应对高强度挑战。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a650/251mGlwX23S

216、Towards More Trustworthy Deep Code Models by Enabling Out-of-Distribution Detection

众多机器学习(ML)模型的开发,包括针对软件工程(SE)任务的模型,均基于训练数据与测试数据来自同一分布的假设。然而,训练与测试的分布往往存在差异——训练数据集极少能覆盖完整分布,而测试分布通常会随时间推移发生变化。因此,当面对与训练数据存在差异的分布外(OOD)实例时,一个可靠且可信的SE机器学习模型必须能够检测出这些样本,从而选择拒绝预测,或将其传递给处理其他类别或任务的适当模型。本文开发了两种针对代码的SE专用OOD检测模型:无监督OOD检测与弱监督OOD检测。无监督方法仅利用分布内样本进行训练,而弱监督方法则通过少量OOD样本进一步提升多场景下的检测性能。大量实验结果表明,我们提出的方法在同步检测四种不同场景的OOD样本时显著优于基线模型,并能对核心代码理解任务产生积极影响。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a714/251mH3aV52U

217、Towards Neural Synthesis for SMT-assisted Proof-Oriented Programming

面向证明的程序将计算内容与程序正确性证明相结合。然而尽管采用了可满足性模理论(SMT)求解器来自动化F等语言中的证明过程,编程与验证所需的人力投入仍然巨大。为促进利用人工智能自动构建面向证明程序的研究,我们整理了一个包含60万行开源F程序及证明的数据集,涵盖从Windows、Linux到Python、Firefox等生产系统实际使用的软件。该数据集包含约3.2万个顶层F定义,每个定义都代表一个类型导向的程序与证明合成问题——即根据F类型形式化规范生成对应定义。我们提供了可通过查询F验证候选解决方案正确性的程序片段检查器。据我们所知,这是目前规模最大的结合可复现程序片段检查器的SMT辅助程序证明语料库。基于此数据集,我们探索了利用AI合成F程序及其证明的方法,并取得积极成果。主要发现表明,经过微调的小型语言模型(如Phi-2或StarCoder)在计算成本大幅降低的情况下,性能可媲美大型语言模型(如GPT-4)。我们还验证了多种基于类型的检索增强技术,证实其能显著提升模型表现。通过详细的错误分析与案例研究,我们揭示了现有模型与技术的潜在优势与局限,并为未来改进指明了方向。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a013/215aWmp5eM0

218、Towards Understanding the Characteristics of Code Generation Errors Made by Large Language Models

大型语言模型(LLM)在代码生成方面展现出前所未有的能力。然而,目前对其可能产生的代码生成错误仍缺乏深入理解。为填补这一空白,我们基于HumanEval数据集对六种代表性LLM的代码生成错误展开了系统分析。具体而言,我们首先采用开放式编码和主题分析方法,提炼出完整的代码生成错误分类体系,并从语义特征和语法特征两个维度解析错误特性。研究发现,LLM常在不同位置因多种根本原因产生非平凡的多行代码生成错误。我们进一步分析了这些错误与任务复杂度及测试通过率之间的关联性。研究结果凸显了定位与修复LLM代码生成错误的若干挑战,最后我们探讨了应对这些挑战的未来研究方向。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a717/251mH51B1AY

219、TraceFL: Interpretability-Driven Debugging in Federated Learning via Neuron Provenance

在联邦学习中,客户端基于本地数据训练模型并将更新发送至中央服务器,后者通过融合算法将其聚合成全局模型。这种协作式且保护隐私的训练方式存在代价:开发者面临将全局模型预测归因于特定客户端的重大挑战。定位责任客户端是实现以下目标的关键步骤:(a) 排除导致错误预测的主要责任方;(b) 激励贡献高质量模型的客户端持续参与。现有机器学习调试方法因专为单模型集中式训练设计而无法适用。我们提出TraceFL——一种细粒度神经元溯源机制,通过追踪从个体客户端到全局模型的信息流来识别预测责任方。由于不同输入会激活全局模型中不同的神经元集合,TraceFL动态量化特定预测中神经元的重要性,定位最关键神经元后将其映射至各客户端的对应神经元,从而确定每个客户端的贡献度并最终锁定责任方。我们在六个数据集(含两个真实医疗影像数据集)和四个神经网络(包括GPT等先进模型)上评估TraceFL。在涵盖图像与文本分类的联邦学习任务中,其定位准确率达99%。当前最先进的机器学习调试方法多局限于特定领域(如图像分类),而TraceFL首次实现了跨多种联邦学习应用的高精度自动化归因。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a665/251mGvrcZxu

220、TransferFuzz: Fuzzing with Historical Trace for Verifying Propagated Vulnerability Code

软件开发中的代码复用常常导致漏洞扩散,使得CVE报告中受影响软件的范围界定不精确。传统方法主要集中于识别目标软件中复用的漏洞代码,却无法验证这些漏洞能否在新软件环境中被触发,这一局限往往导致误报。本文提出TransferFuzz这一新型漏洞验证框架,用于验证通过代码复用传播的漏洞能否在新软件中被触发。我们创新性地在基础二进制文件(CVE报告中详述的存在漏洞的二进制文件)执行或模糊测试过程中收集运行时信息,通过该过程提取历史执行轨迹,这些轨迹被证明能有效指导目标二进制文件(复用漏洞函数的新二进制文件)的模糊测试过程。TransferFuzz提出独特的键字节引导变异策略和嵌套模拟退火算法,将历史轨迹迁移至目标二进制文件以实现轨迹引导的模糊测试,从而高效精准地验证传播的漏洞。基于广泛认可的数据集评估表明,TransferFuzz能快速验证现有技术无法确认的漏洞,其验证速度较现有方法提升2.5至26.2倍。此外,该框架成功扩展了15个CVE漏洞的受影响软件范围,使受影响的二进制文件数量从15个增至53个,充分证明了其有效性。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a598/251mFL63cWs

221、Treefix: Enabling Execution with a Tree of Prefixes

执行代码的能力是各类动态程序分析的前提条件。学习引导式执行作为一种新兴方法,通过让神经网络模型预测缺失变量的可能取值,实现了任意代码片段的执行。尽管当前最先进的学习引导式执行方案(如LExecutor)能支持相对高比例的代码执行,但其预测范围仅限于特定取值集合,且未利用历史执行反馈来提升后续代码执行率。本文提出Treefix——一种基于大语言模型迭代生成代码前缀的新型学习引导式执行方法。该方法采用多步处理策略:每一步都利用代码片段及其执行反馈信息指导大语言模型优化前序生成的前缀。该过程会迭代构建前缀树结构,最终返回能最大化代码片段行执行覆盖率的子前缀集合。在针对两组Python代码片段的实验中,Treefix相较当前最优学习引导式执行方案分别实现了25%和7%的覆盖率提升,总体可覆盖代码片段中84%和82%的代码行。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a751/251mHqTQr5e

222、Trust Dynamics in AI-Assisted Development: Definitions, Factors, and Implications

软件开发人员日益依赖AI代码生成工具。为确保"优质"代码被纳入代码库而"劣质"代码被拒绝,开发者必须明确何时信任AI建议。理解开发者如何建立这种直觉对增强人机协作编程至关重要。本文旨在探究开发者如何(1)定义、(2)评估代码建议的可信度,以及(3)使用AI编程助手时信任如何演变。为此,我们采用混合方法开展研究:先对29名开发者进行深度探索性调查,随后对10名开发者进行观察实验。研究发现,可理解性和感知正确性是评估代码可信度时最常用的标准。但开发者对可信度的定义与评估标准之间存在脱节,表明实时评估可信代码的支持机制尚不完善。我们还发现开发者常会修改信任决策,仅保留52%的原始建议。基于这些发现,我们提炼出四条优化人机协作的准则,并通过7名领域专家和8名调查成员的验证。文中讨论了这些已验证准则的应用方法及配套工具支持方案。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a736/251mHh8o2DC

223、Tumbling Down the Rabbit Hole: How do Assisting Exploration Strategies Facilitate Grey-box Fuzzing?

许多辅助探索策略被提出,旨在帮助灰盒模糊测试工具突破由严格复杂分支条件(如等式约束)保护的程序状态。尽管这些策略在原始论文中展现出显著效果,但其评估流程往往缺乏可比性——例如,它们极少在统一基准上进行测试。此外,现有研究对这些策略所探索程序状态的具体特征缺乏深入分析,这种认知空白将阻碍策略的未来应用与发展。因此,迫切需要对辅助探索策略的有效性、通用性和局限性展开系统性研究,以指引其发展方向。  

为此,我们首次对灰盒模糊测试的辅助探索策略展开全面研究。具体而言,我们首先选取代表主流辅助探索策略的9个最新模糊测试工具作为研究对象,并构建包含21个真实项目的基准测试集。经过基准评估后,我们意外发现字典策略最具潜力:该策略不仅能达到与其他策略相当(甚至略优)的程序状态探索效果,还具备更强的可扩展性。基于此发现,我们在AFL基础模糊测试器上提出CDFUZZ,通过为每个种子生成定制化字典来优化原始字典策略。评估结果表明,相较于本研究中的最优方案(采用字典策略的AFL++),CDFUZZ在所有基准项目上的平均边覆盖率提升16.1%,并成功暴露37个未知漏洞,其中9个漏洞获得开发者确认,7个已被修复。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a547/215aWW8Q27C

224、UML is Back. Or is it? Investigating the Past, Present, and Future of UML in Open Source Software

自诞生以来,统一建模语言(UML)一直被誉为设计和记录软件系统的首选方法。尽管UML是许多大学软件工程课程的重要组成部分,但在开发者中却鲜少受到重视,尤其是在开源软件领域。其原因包括UML与其他形式的文档存在一些共同的缺陷(例如可用性有限、内容过时、细节层次不足)。我们开展了一项研究,以调查开源项目中UML的使用演变及现状。我们挖掘并分析了约1.3万个GitHub项目,通过文件扩展名和内容开发策略与启发式方法来识别UML文件,从而对UML二十年来的使用演变进行定量分析。我们探讨了UML的流行度,总结了采用UML的项目特征,并分析了UML制品的作者、创建者和维护者。我们的研究证实,UML确实仍未得到充分利用。与此同时,我们发现随着PlantUML和Mermaid等工具定义和使用的人类可读文本格式的流行,UML正出现复苏迹象。我们讨论了如何识别并应对这一复苏趋势带来的新挑战,及其对UML未来的潜在影响。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a692/251mGNKCtPy

225、Unavoidable Boundary Conditions: A Control Perspective on Goal Conflicts

边界条件描述了需求规约发生冲突的情形。在更广泛的冲突管理流程中,它们被用于生成更少理想化的规约。目前已有多种自动化识别边界条件的方法被提出,其中部分方法通过引入优先级标准来减少呈现给工程师的边界条件数量。然而,如何识别少量关键性边界条件仍是一个悬而未决的挑战。本文指出,现有技术存在的问题之一在于边界条件本身的定义过于宽泛。我们提出了一种更强约束的定义——称为不可避免边界条件(UBC),其利用了反应式综合中可实现性的概念。实验表明,UBC能有效削减现有边界条件识别技术产生的条件数量,且这种削减具有非平凡意义。我们还将UBC与反应式综合中用于反馈不可实现规约的现有概念(包括反策略和不可实现核心)建立关联,进而证明UBC能为修复不可实现规约提供针对性反馈。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a380/215aWMI6maI

226、Understanding Architectural Complexity, Maintenance Burden, and Developer Sentiment--A Large-Scale Study

摘要——直观而言,软件系统越复杂,维护难度越大。但从统计学角度看,尚不清楚哪些复杂度指标与维护工作量相关;甚至如何客观量化维护负担也缺乏明确方法,导致开发者的感受和直觉难以获得数据支撑。缺乏有效的复杂度和维护度量标准,就难以客观监控维护状态、控制复杂度或验证重构合理性。本文针对谷歌公司1252个C++与Java项目开展大规模研究,收集了三类指标:(1) 架构复杂度,通过传播成本(PC)、解耦水平(DL)和结构反模式进行量化;(2) 维护活动,基于变更次数、编写代码行数(LOC)及投入功能新增与缺陷修复的活跃编码时间(ACT);(3) 开发者对复杂度与效率的主观评价,采集自7200份问卷反馈。通过统计分析这些指标的关联性,我们获得以下重要发现:1) 架构越复杂(传播成本越高、反模式实例越多),缺陷修复消耗的代码行数占比越高;2) 在功能开发中提交更多变更、编写更多代码或投入更多时间的开发者,其受技术债务和复杂度阻碍的感受更轻。据我们所知,这是首个证实架构复杂度、维护活动与开发者感受三者间统计相关性的大规模实证研究。研究表明:通过持续客观测量架构复杂度和维护难度,可替代单纯依赖开发者主观感受来判断架构劣化或演进负担,进而通过降低架构复杂度和消除反模式来提升功能交付效率。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a705/251mGWXJpxm

227、Understanding Compiler Bugs in Real Development

编译器在开发过程中至关重要,但编译器漏洞可能导致其编译代码中存在隐蔽且严重的缺陷。为深化对编译器漏洞的理解,已有实证研究通过分析漏洞报告和补丁来探究其成因、位置及模式。尽管这些研究得出许多有价值的发现,但仍存在局限:首先,由于漏洞报告极少说明受影响的工程项目,难以评估其实际影响范围;其次,程序员在漏洞修复前可能采用规避方案,但漏洞报告通常不包含此类应对措施;最后,由于研究者和编译器开发者也会提交漏洞报告,漏洞分布可能存在偏差。本文提出一种创新分析视角——不依赖编译器漏洞报告,而是收集实际开发中提及的编译器漏洞。当程序员遭遇编译器漏洞时,会在提交信息中留下痕迹。通过检索这类信息,我们收集到644条明确包含编译器漏洞链接的独立提交记录。基于此视角,本文首次开展针对真实环境中编译器漏洞的实证研究,归纳出七项对用户、编译器开发者和研究者具有实用价值的发现。例如对研究者而言,我们发现某些大型规避方案涉及重复性系统性代码修改,这为代码迁移工具提供了新的研究方向。此外,我们将研究结论应用于实际开发并获得了积极反馈。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a605/251mFQXnLr2

228、Understanding and Detecting Peer Dependency Resolving Loop in npm Ecosystem

作为Node.js的默认包管理器,npm已成为全球规模最大的包管理系统之一。为简化开发者的依赖管理,npm支持一种特殊依赖类型——对等依赖(Peer Dependency),其安装与使用方式均不同于常规依赖。然而对等依赖间的冲突可能使npm客户端陷入无限循环,导致资源耗尽与系统崩溃,我们将此问题命名为PeerSpin。尽管PeerSpin对生态系统构成严重威胁,但先前研究均未关注该问题,其影响也从未被探讨。为填补这一空白,本文首次开展深度研究以理解并检测npm生态系统中的PeerSpin现象。首先,通过系统分析npm依赖解析机制,我们揭示了PeerSpin的根本成因,并归纳出两种对等依赖模式以指导检测。其次,我们提出基于节点替换冲突(Node-Replacement-Conflict)的创新检测技术,该技术利用依赖解析过程中目录树的状态实现精准高效的PeerSpin检测。基于此技术开发了检测工具PeerChecker。最后,我们将PeerChecker应用于整个npm生态系统,发现5,662个包的72,968个版本存在PeerSpin问题。截至目前,已通过向包维护者提交报告确认28个真实PeerSpin案例。我们同时开源了所有PeerSpin分析实现、工具及数据集,以帮助社区检测PeerSpin问题并提升npm生态系统的可靠性。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a591/251mFG6W2ic

229、Understanding the Effectiveness of Coverage Criteria for Large Language Models: A Special Angle from Jailbreak Attacks

大型语言模型(LLMs)已彻底改变人工智能领域,但其在关键领域的日益广泛应用引发了人们对模型面临恶意攻击时异常行为的担忧。这种脆弱性暴露出当前预发布测试普遍存在的不足。本文通过全面实证研究,以越狱攻击这一重大安全问题为例,评估传统覆盖准则在识别此类缺陷方面的有效性。研究首先对LLM隐藏状态进行聚类分析,发现其嵌入特征能有效区分不同查询类型。随后我们从准则层级、网络层和标记层级三个维度系统评估这些准则的表现,发现LLM处理正常查询与越狱查询时神经元覆盖存在显著差异,这与聚类实验结果一致。基于这些发现,我们提出覆盖准则在LLM安全测试中的三项实际应用:开发实时越狱检测机制(平均分类准确率达93.61%);利用覆盖水平优化测试用例优先级,通过聚焦高风险交互和剔除冗余测试提升效率;提出覆盖引导的越狱攻击样本生成方法,通过系统化提示词优化来发掘漏洞。本研究深化了对LLM安全测试的理解,提升了模型安全性,为开发更健壮的人工智能应用奠定了基础。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a745/251mHn2yAqQ

230、Understanding the Response to Open-Source Dependency Abandonment in the npm Ecosystem

许多依赖开源数字基础设施的开发者期望获得持续维护,但即便是最关键的软件包也可能陷入无人维护状态。尽管如此,人们对广泛使用软件包的废弃普遍性、后续影响以及实际应对措施仍知之甚少,对相关影响因素也缺乏认知。我们对所有广泛使用的npm软件包进行了大规模定量分析,发现废弃现象在其中十分常见,这种废弃会使许多项目暴露于风险之下且往往无人响应,而应对措施与其他依赖管理实践存在关联。当项目明确声明终止维护状态时,依赖移除速度会显著加快。最后,我们为面临依赖废弃或项目终止的研究者和实践者提出建议,例如通过低成本的透明度机制帮助受影响项目做出更明智的决策。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a038/215aWo66OTS

231、Unleashing the True Potential of Semantic-based Log Parsing with Pre-trained Language Models

软件密集型系统通常通过控制台日志进行故障排查。日志解析旨在将日志消息解析为特定日志模板,是自动化日志分析的首要步骤。为深入理解日志消息的语义信息,学界已提出多种基于语义的日志解析器。这类解析器通常在少量标注日志样本上微调小型预训练语言模型(如RoBERTa)。随着大语言模型(LLM)的兴起,近期研究尝试通过上下文学习调用ChatGPT等LLM进行自动化日志解析,其效果优于传统基于小型预训练模型的语义解析器。本文证明:采用小型预训练模型的语义解析器在效率和成本优势显著的前提下,其性能可超越或比肩最先进的LLM日志解析方案。我们提出新型语义解析方法UNLEASH,通过三项增强技术提升预训练模型的日志解析能力:(1)基于信息熵的排序方法筛选最具信息量的日志样本;(2)采用对比学习优化微调过程;(3)引入推理优化方法提升解析性能。基于大规模公开日志数据集的实验表明,UNLEASH在效果与效率上均优于当前最先进的日志解析器。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a711/251mH1c0LIY

232、Unseen Horizons: Unveiling the Real Capability of LLM Code Generation Beyond the Familiar

近年来,大型语言模型(LLM)在代码生成任务中展现出强大潜力,但其在实际软件开发流程中的全面应用仍存在差距。准确评估大模型的代码生成能力已成为衡量和改进模型的重要依据。现有研究已构建了若干评测数据集,但当前评估过程可能陷入"熟悉领域专家"的错觉,主要源于三大鸿沟:目标代码的暴露性、案例时效性以及依赖可用性。这些鸿沟的根本原因在于,现有数据集中的代码可能在训练阶段已被广泛暴露并反复训练,且由于LLM的持续训练与迭代发展,其时效性已严重受损。解决问题的关键在于尽可能使用模型未接触过的代码进行评估。为此,本文提出借鉴代码混淆概念,在保持功能与输出的前提下对代码实施多层级变换。我们构建了基于代码混淆的评测基准OBFUSEVAL:首先从五个真实项目中收集1,354个原始案例(含函数描述与代码),继而采用符号级、结构级和语义级的三层策略对描述文本、代码及上下文依赖进行混淆处理。我们在OBFUSEVAL上评估了四个LLM,对比了不同混淆策略的效果,并利用项目官方测试套件验证生成代码。实验表明,经过混淆处理后,测试通过率平均下降幅度最高可达62.5%。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a619/251mG0OexlS

233、Unveiling the Energy Vampires: A Methodology for Debugging Software Energy Consumption

软件系统中的能耗问题日益重要,尤其在大规模部署场景中。然而由于缺乏专用工具,能耗相关问题的调试仍具挑战性。本文提出一种能耗调试方法,用于识别和定位软件系统中的能耗热点。我们通过对流行内存数据库Redis的案例研究验证了该方法的有效性。分析表明Alpine与Ubuntu发行版存在显著能耗差异,其中Alpine在特定操作中功耗最高增加20.2%。通过追踪发现,这种差异源于不同C标准库(musl与glibc)中memcpy函数的实现差异。经隔离测试与基准验证,我们确认memcpy是导致能耗差异的主因。本研究揭示了软件依赖项中能效考量的重要性,并展示了帮助开发者识别和解决能耗问题的能力。本工作通过提供系统性能耗调试方法,并借此揭示Alpine系统中意料之外的能耗表现,为可持续软件工程领域的发展做出贡献。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a655/251mGoOL1sc

234、User Personas Improve Social Sustainability by Encouraging Software Developers to Deprioritize Antisocial Features

背景:可持续软件开发是指以既能满足当前目标又不损害未来目标实现能力的方式创建软件。在软件工程领域,可持续性至少包含四个维度:生态、经济、社会和技术。目前尚未有通过严格实验室实验验证的提升软件工程社会可持续性的干预措施,也缺乏基于证据的实践指导。

目的:本研究旨在评估两种干预措施——利益相关者地图和人物角色模型——通过软件功能优先级排序提升社会可持续性的有效性。

方法:我们对79名计算机科学本科生进行了随机对照析因实验。参与者被随机分配到四个组,要求为购物中心数字屏幕显示及人脸识别软件的用户故事(亲社会型、中立型和反社会型)进行优先级排序。各组分别接收人物角色模型、利益相关者地图、两者结合或两者皆无。我们采用累积链接混合模型回归比较了亲社会型与反社会型用户故事的优先级差异。

结果:接收人物角色模型的参与者对反社会型用户故事赋予的优先级显著更低,但对亲社会型用户故事未见显著差异。利益相关者地图的影响不显著。交互效应亦不显著。

结论:为软件从业者提供精心设计的人物角色模型,能促使其降低反社会软件功能的优先级。因此,人物角色建模对可持续软件开发的影响值得在资深从业者中进一步研究。此外,通过待办列表优先级排序评估社会可持续性行为的新方法策略,在实验室环境中展现出可行性。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a672/251mGzWNSF2

235、Vulnerability Detection with Code Language Models: How Far Are We?

随着代码语言模型(code LM)和漏洞检测研究的热度攀升,本研究系统评估了代码语言模型在漏洞检测任务中的实际效能。分析发现现有漏洞数据集存在严重缺陷:数据质量低下、标注准确率不足且重复率畸高,导致模型在真实漏洞检测场景中的表现不可靠。此外,基于这些数据集的评估方法也无法反映实际漏洞检测需求。为此,我们提出PrimeVul——一个专为代码语言模型训练与评估构建的新型漏洞检测数据集。该数据集采用创新性数据标注技术,在保证与人工验证基准相当标注精度的同时实现数据规模显著扩展;通过严格的数据去重和时序划分策略解决数据泄露问题,并引入更贴近现实的评估指标与设置,从而为代码语言模型在真实环境中的性能提供更准确评估。基于PrimeVul的测试表明,现有基准严重高估了模型性能:例如某先进70亿参数模型在BigVul数据集上F1值达68.26%,但在PrimeVul上仅3.09%。即使采用GPT-3.5和GPT-4等先进模型及训练技术进行优化,在最严格测试设置下其表现仍与随机猜测无异。这些发现揭示了当前技术能力与安全领域实际需求间的巨大鸿沟,凸显该领域亟需更具创新性的研究突破。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a469/215aWRJLUZy

236、WDD: Weighted Delta Debugging

差分调试(Delta Debugging)是一类广泛应用的算法家族(如ddmin和ProbDD),用于自动最小化触发错误的测试输入以辅助调试。该算法将测试输入划分为元素列表(每个元素代表输入片段),通过系统化的多粒度分区策略识别并删除与错误无关的片段。现有差分调试算法默认列表中所有元素具有同等地位,在分区时进行统一处理。然而实际场景中该假设往往不成立——各元素所代表片段的尺寸(称为权重)可能存在显著差异。例如,某个占输入总量50%的元素比仅占1%的元素更可能关联错误,这种假设缺陷会损害算法效率甚至有效性。

本文提出加权差分调试(Weighted Delta Debugging, WDD)新范式以突破上述局限。其核心思想是根据元素尺寸分配权重,在分区时差异化处理不同权重的元素。我们基于WDD分别改造ddmin和ProbDD,设计出Wddmin和WProbDD两种新算法。在HDD和Perses两大典型应用场景中,我们对跨两种语言的62个基准案例展开全面评估:使用Wddmin时,HDD和Perses分别减少51.31%和7.47%的运行时间,同时生成比ddmin缩小9.12%和0.96%的结果;采用WProbDD后,二者耗时降低11.98%和9.72%,生成结果较ProbDD缩小13.40%和2.20%。实验结果有力验证了WDD的价值。我们确信WDD为测试输入最小化技术开辟了新的优化维度。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a608/251mFSTJGAo

237、Weakly-supervised Log-based Anomaly Detection with Inexact Labels via Multi-instance Learning

基于日志的异常检测对于保障软件可用性至关重要。然而现有方法严重依赖日志条目的细粒度精确标签,这些标签在实际系统中极难获取。这导致一个核心矛盾:异常检测模型需要监督信号,但已标注日志条目却不可得。针对该问题,我们提出了一种称为"非精确标注"的新策略,系统专家无需标注单个日志条目,而是对特定时间段内的日志条目集合进行整体标注。基于此,我们提出了MIDLog——一种支持非精确标注的弱监督日志异常检测方法。通过多示例学习框架,我们实现了从非精确标注的异常日志集合中显式分离出真实异常日志条目,从而从非精确标注集合推导出精确的异常日志标签。在三个公开数据集上的大量实验表明,我们的方法在非精确标注条件下仍能取得超过85%的F1分数。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a726/251mHaMY0mc

238、What Guides Our Choices? Modeling Developers' Trust and Behavioral Intentions Towards GenAI

生成式人工智能(genAI)工具(如ChatGPT或Copilot)被宣传为能提升开发者生产力,并正被集成到软件开发中。然而,信任偏差、怀疑态度及可用性顾虑可能阻碍此类工具的采用。研究还表明,AI可能具有排他性,无法充分支持多样化用户。多样性的一个方面是认知多样性——用户认知风格的差异——这会导致视角和交互方式的分歧。当个体的认知风格得不到支持时,就会形成技术采用的障碍。因此,为了理解如何有效将genAI工具集成到软件开发中,首先需要建模分析哪些因素会影响开发者对genAI工具的信任及实际采用意愿?我们开发了一个基于理论的统计模型,旨在(1)识别影响开发者对genAI工具信任的因素,(2)检验开发者信任、认知风格与工作中使用这些工具的意图之间的关系。我们对两家全球大型科技组织(GitHub Inc.和微软)的软件开发者(N=238)进行了调研,并采用偏最小二乘结构方程模型(PLS-SEM)评估模型。研究发现,genAI的系统/输出质量、功能价值及目标持续性显著影响开发者对这些工具的信任。此外,开发者的信任和认知风格会影响他们在工作中使用这些工具的意图。我们为设计genAI工具提出了实用建议,以实现高效使用和包容性用户体验。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a624/251mG4bIvlu

239、What You See Is What You Get: Attention-based Self-guided Automatic Unit Test Generation

软件缺陷会严重影响软件功能并可能造成巨大损失。近年来,研究者提出了多种基于人工智能的缺陷检测方法,主要分为两类:软件缺陷预测与自动化单元测试生成。尽管这些方法在缺陷检测领域取得了显著进展,但在实际应用中仍存在预测模型置信度低、单元测试模型效率不足等局限性。为此,我们提出一种所见即所得(WYSIWYG)方法——基于注意力的自引导自动化单元测试生成框架(AUGER),其包含缺陷检测与错误触发两阶段:前阶段通过缺陷倾向性检测定位潜在缺陷,后阶段利用前阶段获取的关键信息引导生成触发对应错误的单元测试。为验证AUGER的有效性,我们在Bears、Bugs.jar和Defects4J等主流数据集上与前沿方法进行大规模对比实验。结果表明,AUGER在缺陷检测的F1值与精确率指标上分别提升4.7%-35.3%和17.7%-40.4%,在单元测试生成中比现有方法多触发23-84个错误。此外,我们还通过从真实项目中采集新数据集开展深入实验,验证了该方法在实际应用中的泛化能力。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a642/251mGgs9SOk

240、When Quantum Meets Classical: Characterizing Hybrid Quantum-Classical Issues Discussed in Developer Forums

量子计算的最新进展引发了人们的热切期待,认为这种新型计算范式有望解决以往棘手的难题。然而受限于当前量子硬件的固有缺陷与量子特性噪声,量子计算的全部潜力仍需数年才能实现。作为折中方案,量子-经典混合计算应运而生,旨在融合双方优势。本文从软件工程视角出发,首次针对混合量子-经典应用开发者面临的典型问题展开实证研究。通过对量子计算专业论坛531条真实讨论线索的系统分析(涵盖软件故障、硬件失效、量子库错误及开发者失误等),我们通过定性研究构建了混合量子-经典应用的系统性问题分类体系,该成果可为应用开发者和平台开发者提升混合应用可靠性提供参考。研究发现:混合应用具有崩溃主导特性(占研究案例的74%),且错误主要源于应用开发者(占70%)。最后我们总结了混合应用开发者面临的典型障碍,并提出了可操作的改进建议。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a674/251mGBqujFS

241、Who's Pushing the Code? An Exploration of GitHub Impersonation

GitHub是全球最大的开源软件(OSS)开发与协作社区之一。开源社区中的身份冒用行为指恶意冒充他人身份的行为,通常旨在非法获取代码访问权限、操纵项目成果或传播虚假信息。随着近期多起现实攻击事件因身份冒用引发,该问题日益受到开源社区关注。本文首次系统探究GitHub平台上的身份冒用影响:通过对17位实际开源贡献者开展结构化访谈,分析其对身份冒用的认知及应对措施。研究发现,GitHub用户普遍缺乏对身份冒用的警觉性,并低估其潜在危害的严重程度。在目睹冒用演示后,受访者表现出对开源社区安全的高度担忧。研究同时表明,当前可能缓解冒用问题的最佳实践(如提交签名)仍需改进以提升采用率。我们还讨论并总结了参与者对GitHub身份冒用缓解方案的认知。通过分析包含1250万次提交的数据集,我们探究了当前身份冒用现状。值得注意的是,研究发现现有技术难以有效检测冒用行为——现有的提交历史记录将冒用行为与拉取请求事件同等处理,导致缺乏专门的冒用检测方法。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a602/251mFNUU74c

242、Your Fix Is My Exploit: Enabling Comprehensive DL Library API Fuzzing with Large Language Models

深度学习(DL)库被广泛用作计算机视觉、自然语言处理和软件工程等领域各类AI应用的基础设施。尽管应用广泛,这些库却存在缓冲区溢出、释放后使用、整数溢出等漏洞,可能被利用以破坏底层库的安全性或功能有效性。传统模糊测试技术虽常用于软件缺陷检测,却难以适配DL库的特殊性。总体而言,DL库的复杂性和API的多样性使得全面测试极具挑战性——当前主流DL库(如TensorFlow和PyTorch)的API数量已逾千个且持续增长,考虑到输入数据的复杂性和API使用模式的多样性,全覆盖式模糊测试几乎是不可能完成的任务。

大型语言模型(LLM)的最新进展展现了其在理解和生成类人代码方面的巨大潜力。然而研究发现,现有基于LLM的模糊测试工具在DL库API测试中存在明显不足:既缺乏对API输入边界条件的深入认知,又难以高效生成测试输入。本文提出DFUZZ这一LLM驱动的DL库模糊测试方法,其核心创新在于:(1)利用LLM的高阶推理能力替代人工专家,从API代码检查中推导边界条件(易触发错误的输入),并将提取的知识迁移至其他(新发布或低覆盖率)API的测试;(2)凭借LLM的强大生成能力,精准合成初始测试程序以实现API测试自动化。DFUZZ为LLM提供了独特的DL库API"白盒视角",从而充分发挥其推理与生成能力实现全面模糊测试。

实验结果表明,在TensorFlow和PyTorch上,DFUZZ的API覆盖率显著优于当前最先进的(基于LLM的)模糊测试工具。此外,DFUZZ成功检测出37个漏洞,其中8个已被修复,19个获开发者复现并正在核查中。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a508/215aWTZ8XRe

243、ZTD_{JAVA}: Mitigating Software Supply Chain Vulnerabilities via Zero-Trust Dependencies

像Log4j这样的第三方库加速了软件应用的开发,但也带来了重大风险。这些库中的漏洞已导致软件供应链(SSC)攻击,从而危及主机系统内的资源。这些攻击利用了当前应用程序权限管理方式的缺陷:第三方库在应用运行时被隐式信任。基于零信任架构(ZTA)原则设计的应用运行时——包括安全的资源访问、持续监控和最小权限执行——可以缓解SSC攻击,因为它不会对这些库赋予任何隐式信任。然而,目前尚无单一的安全防御措施能以较低的运行时成本整合这些原则。本文提出\emph{\ztd}来缓解SSC漏洞:我们将NIST的ZTA应用于软件应用。首先,我们通过研究第三方软件库及其漏洞,评估了\ztd的预期有效性和配置成本。接着,我们提出了一个系统设计\tooldesign,使\ztd能够应用于软件应用,并为Java应用开发了原型工具\toolname。最后,通过对复现漏洞和实际应用的评估,我们证明\toolname能够防御常见漏洞类型,引入的开销可忽略不计,且易于配置和使用。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a685/251mGJgJbuo

244、exLong: Generating Exceptional Behavior Tests with Large Language Models

包括C#、Java和Python在内的众多主流编程语言均支持异常处理机制。当程序执行过程中发生非预期事件(例如调用方法时传入非法参数值)时,系统会抛出异常。软件开发人员通过编写异常行为测试(EBT)来验证代码能否正确检测异常事件并抛出相应异常。先前研究表明EBT具有重要价值,但同时也揭示开发者往往将主要精力投入"正常路径"(即不触发异常的执行路径)。为弥补这一缺口,我们提出首个自动化生成EBT的框架exLong。该框架基于CodeLlama进行大语言模型指令微调,能够推理分析导致throw语句的执行轨迹、守卫throw语句的条件表达式,以及执行相似轨迹的非异常行为测试。我们将exLong与当前最先进的测试生成模型(CAT-LM)、最强基础模型之一(GPT-4o)以及基于分析的测试生成工具(Randoop和EvoSuite)进行对比。实验结果表明exLong优于现有模型与工具。此外,我们向开源项目提交了多项拉取请求,其中已有23个由exLong生成的EBT被正式采纳。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a713/251mH2ySPCg

245、µPRL: A Mutation Testing Pipeline for Deep Reinforcement Learning based on Real Faults

强化学习(RL)正日益广泛地应用于训练处理复杂序列任务的智能体,例如自动驾驶汽车或控制人形机器人。相应地,需要新的方法来确保RL智能体在生产前经过充分测试。其中,变异测试尤其具有前景,特别是在假设注入的故障(变异)能模拟真实故障的情况下。本文首先通过仓库挖掘获取真实RL故障的分类体系,随后提出基于此类真实故障的变异算子,并在工具μPRL中实现。最后,我们讨论实验结果,表明μPRL能有效区分强弱测试生成器,从而为开发者提供关于生成测试场景充分性的有用反馈。

论文链接:https://www.computer.org/csdl/proceedings-article/icse/2025/056900a444/215aWQmTR6g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值