第33届软件测试与分析国际研讨会(ISSTA 2024)于当地时间9月18日在奥地利首都维也纳召开。9月17日晚,适逢中秋佳节,豆包MarsCode 团队在维也纳万豪酒店举办中秋晚宴活动,数十位软件工程领域的学者和学生应邀参加。
晚宴上,各位参会嘉宾在轻松、开放、温暖的氛围中欢聚一堂,深入探讨了在大模型技术浪潮下,软件工程的科研创新与技术进展。
晚宴伊始,字节跳动 Developer Al 负责人朱元硕发表致辞。
他简要介绍了豆包MarsCode 的产品发展历程及核心技术,回顾了从代码补全、仓库问答到下一个编辑位置预测和缺陷自动修复功能的演进过程,并展望了生成式 AI 与软件工程结合的广阔前景与发展趋势。
在此次 ISSTA 会议上,基于大模型的研究和应用引发了广泛关注,涵盖了代码生成、软件测试、程序修复、代码分析等多个领域。学术界提供了充满潜力的创新思考和前沿技术研究,工业界则贡献了真实的应用场景、需求和丰富的计算资源。多位参会学者表示,希望在未来加强与企业的合作,共同推动这一领域的发展。
ISSTA 研讨会 Keynote 报告展示
在本届 ISSTA 会议的开幕 Keynote 上,美国伊利诺伊大学厄巴纳-香槟分校(UIUC)的张令明教授作了题为《Software Quality Assurance in the Era of Large Language Models》的精彩报告。
张教授深入探讨了大语言模型(LLMs)在软件质量保障中的机遇与潜力,同时分析了其带来的新挑战和问题。报告中,他分享了其团队在这一领域的最新研究成果,展望了软件工程社区在推动代码与通用大模型融合发展方面的未来方向。
在讲述自动缺陷修复领域的进展时,张教授特别提到MarsCode Agent ,豆包MarsCode Research 团队开发的基于大模型的缺陷自动定位和修复工具。这是我们在软件工程领域的研究成果首次在顶级会议的 Keynote 报告中得到展示和讨论。
Paper 展示
除 Agent 相关进展外,豆包MarsCode 团队和上海交通大学林云副教授合作的论文《CoEdPilot: Recommending Code Edits with Learned Prior Edit Relevance, Project-wise Awareness, and Interactive Nature》被 ISSTA 会议 Research Track 接收,并将于当地时间9月19日下午15:50在 Code Transformation Session 进行论文展示,欢迎参会者前来交流讨论。
在智能代码生成工具的使用中,相比在软件项目中补全代码,增量代码编辑在经验上被观察到更为频繁,形式上也比代码补全更加复杂。首先,一个编辑会话可能包括多个与待编辑代码相关或不相关的编辑;其次,推断后续编辑并非易事,因为其影响范围可能涉及整个项目。
在本工作中,我们提出基于 LLM 的全项目代码编辑方案 CoEdPilot,来解决编辑定位、编辑生成、以及编辑交互三个问题。通过区分相关编辑、探索其交互性质并估计其在项目中的连锁效应来推荐代码编辑。当用户完成一个编辑并附上可选的编辑描述时,编辑分析模块首先报告项目中最相关的文件以及每行代码可能发生的编辑类型(例如,保留、插入和替换)。编辑内容生成器会根据编辑依赖分析器报告的相关先前更改,为代码行生成具体的编辑选项。最后,编辑分析和编辑内容生成器都会捕捉相关的先前编辑,并将其作为反馈来调整他们的建议。
该实验表明,CoEdPilot 可以很好地实现预测编辑,编辑位置预测的准确率为 70.8%-85.3%、编辑内容完全匹配率 41.8%、BLEU4 得分 60.7。我们对18名参与者进行的3个编辑任务用户研究显示,与 Copilot 相比,CoEdPilot 在帮助用户编辑代码方面更为有效。相关技术已在豆包MarsCode 落地应用,欢迎大家下载豆包MarsCode 体验。