自动化修复真实世界的软件缺陷问题是自动化程序修复研究社区的长期目标。然而,如何自动化解决视觉软件缺陷仍然是一个尚未充分探索的领域。最近,随着 SWE-bench 团队发布最新的多模态 Issue 修复基准 SWE-bench Multimodal,多模态问题修复引起了研究人员的广泛关注,如何有效的解决这类多模态问题对现有的修复系统呈现出关键挑战。
为了解决多模态修复场景,来自慕尼黑工业大学Software Engineering& AI 团队带来了一项最新研究成果:GUIRepair——《Seeing is Fixing: Cross-Modal Reasoning with Multimodal LLMs for Visual Software Issue Repair》。这项工作已经成功登上了SWE-benchMultimodal 排行榜的第一名,为多模态软件自动修复开辟了一条充满潜力的道路。目前,该论文已被软件工程领域顶级学术会议 ASE 2025 接收。
论文标题:Seeing is Fixing: Cross-Modal Reasoning with Multimodal LLMs for Visual Software Issue Fixing论文链接:https://arxiv.org/abs/2506.16136
研究动机:为什么要研究 “视觉软件问题”?
在软件工程领域,自动程序修复(Automated Program Repair, APR)是一个重要方向。它的目标是利用智能技术,自动为开发者定位并修复 bug,从而节省大量人工调试的成本。随着大语言模型(LLM)的发展,APR 在许多经典基准(如 SWE-bench、Defects4J)上已经展现出了很强的性能。
然而,这些研究几乎都停留在单一模态(unimodal)的层面:
输入是文本描述(issue 报告),再结合源代码,让 LLM 来推理修复。
但现实中的软件开发并没有这么 “单一”。
在现代前端开发和 GUI 应用中,用户和开发者在报告问题时,往往会附上多模态(multimodal)信息,例如使用屏幕截图来呈现并记录具体的问题场景:
组件位置错乱图表显示异常按钮样式错误……
这些 GUI 相关的问题单靠文字难以描述清楚,截图提供的视觉信息往往至关重要。
然而,现有的 APR 系统很少关注视觉软件领域,它们很难直接利用并充分理解这些视觉信息。
与此同时,GUI Testing 社区虽然关注 GUI 相关的软件问题,但他们的研究重点是: “如何发现 / 暴露 bug?”
却很少考虑:“如何自动修复这些 bug?”
于是,APR 和 GUI Testing 之间出现了一道 “断层”。
解决思路:跨模态推理(Seeing is Fixing)
带着这个问题,我们提出了GUIRepair—— 一个将APR 与 GUI Testing的经验知识巧妙融合的跨模态自动修复框架。
它的设计哲学可以用一句话来概括:
Seeing is Fixing—— 只有真正 “看见” 问题,才能更好地 “修复” 问题。
GUIRepair 的核心由两个互补的跨模态组件构成:
1.Image2Code
目标:帮助模型更好地理解前端的视觉问题。方法:将视觉元素转化为可执行的代码上下文,让 LLM 能够从 “图像” 中反推出 “代码行为”。意义:就像开发者看到界面异常时,会想到是哪个代码片段导致了这个 UI 错误。
2.Code2Image
目标:帮助模型验证修复是否真正奏效。方法:将补丁的代码行为重新渲染为视觉输出,以提供修复行为的视觉化反馈。意义:不是只靠 “编译是否通过”,而是 让模型像人类开发者一样自己 “观察” 修复后的界面效果。
通过这两个组件,GUIRepair 在修复流程中实现了跨模态的双向转换以将视觉信息与代码行为建立联系:
从图像 → 代码的理解(理解问题),再到代码 → 图像的验证(确认修复)。
实验结果:SWE-bench Multimodal 新 SOTA!
我们在SWE-bench Multimodal(SWE-bench M)上对 GUIRepair 进行了系统评测。
这是目前最具挑战性的基准之一,涵盖了517 个真实的多模态问题,广泛来源于开源 Javascript 库(如 bpmn-js、carbon、openlayers 等)。
实验结果显示:
GUIRepair 在使用 GPT-4o 作为基座模型时,成功解决了30.37%的任务实例,超越了现有的使用相同模型的修复系统。当使用更强的 o3 模型时,GUIRepair 更是达到了35.98%的修复成绩,超过了现有的所有开源和商业修复系统。这也让 GUIRepair 成功登顶SWE-bench Multimodal 排行榜第一!
这项工作的意义
我们认为 GUIRepair 的贡献不仅仅是排行榜上的第一名,更在于它打开了一条新的研究方向:
过去 APR 的研究重点在 “文本 + 代码”;GUI Testing 的重点在 “发现问题”;而 GUIRepair 把二者结合起来,真正让模型具备了视觉理解 + 自动修复的能力。
因此,我们想借用一句经典的话来总结:
这是多模态软件工程的一小步,却是自动化程序修复的一大步。
总结
自动修复前端视觉问题,这曾经是一个被忽视的 “角落”。
而现在,我们希望通过 GUIRepair 让大家看到:跨模态的力量,正在推动自动化多模态软件工程进入一个新的时代。
也许今天只是一个小小的起点,但我们更期待未来的多模态软件工程研究将具有更广泛的应用场景和更强大的任务解决能力。
作者介绍
Kai Huang,慕尼黑工业大学 Software Engineering & AI 团队博士生,研究方向为多模态软件工程,以第一作者身份发表软件工程领域顶级会议或期刊论文 6 篇,并获得 ACM 杰出论文奖项。
Chunyang Chen,慕尼黑工业大学正教授,领导 Software Engineering & AI 团队。团队研究关注于软件工程、深度学习、以及人机交互等领域。
Jian Zhang,南洋理工大学研究员,主要关注 AI4SE 研究领域,他的工作主要发表在多个软件工程领域顶级场所(ICSE, FSE, ASE, ISSTA)。
Xiaofei Xie,新加坡管理大学助理教授,他的研究领域主要集中在人工智能系统的程序分析、软件测试、漏洞检测和质量保证。
团队介绍
慕尼黑工业大学 TUM “Software Engineering & AI” 团队隶属于 TUM 计算、信息与技术学院(School of Computation, Information and Technology, CIT),由陈春阳教授(Prof. Dr. Chunyang Chen)领导,坐落于德国 Heilbronn 校区。团队致力于软件工程、深度学习与人机交互等方向的前沿研究,并积极与全球学术界与产业界开展合作,欢迎各种形式的交流与合作。