跳转至

E2EDev: Benchmarking Large Language Models in End-to-End Software Development Task

会议: ACL 2026
arXiv: 2510.14509
代码: https://github.com/SCUNLP/E2EDev
领域: LLM 评估 / 软件工程
关键词: 端到端软件开发, 行为驱动开发, 基准评测, 多智能体编码, 需求验证

一句话总结

本文提出 E2EDev,一个基于行为驱动开发(BDD)原则的端到端软件开发基准,包含 46 个真实 Web 项目、244 条细粒度需求和 703 个可执行 BDD 测试,评估发现即使最强 LLM(Claude 系列)在需求准确率上也不超过 60%,多智能体框架的复杂交互成本与性能收益不成正比。

研究背景与动机

领域现状:LLM 驱动的端到端软件开发(E2ESD)正从函数级代码生成走向完整项目自动生成。现有框架分为多智能体方法(ChatDev、MetaGPT)和单智能体方法(GPT-Engineer),但评测体系严重滞后于框架发展。

现有痛点:(1) 现有基准(SoftwareDev、SRDD)使用粗粒度的需求描述作为输入,"管理单词"这样的模糊描述无法明确用户到底需要编辑、书签还是删除功能;(2) 评测依赖主观人工评价或启发式指标,缺乏基于软件工程标准的系统方法论,导致跨框架比较不一致、不可靠。

核心矛盾:E2ESD 任务需要同时完成高层规划(决定构建什么)和细粒度功能实现(精确满足需求细节),现有基准的模糊需求和不可靠评测使我们无法真正理解框架能力的瓶颈所在。

本文目标:(1) 构建细粒度需求规格的 E2ESD 基准;(2) 设计基于 BDD 的自动化评测流水线;(3) 系统分析各框架和 LLM 在 E2ESD 任务上的真实能力和失败模式。

切入角度:借鉴软件工程中的行为驱动开发(BDD)原则,用 Given-When-Then 格式的 Gherkin 场景描述来模拟真实用户交互,实现从用户视角验证生成软件是否满足需求。

核心 idea:将 E2ESD 评测从模糊的人工打分转变为基于细粒度需求的可执行 BDD 测试,通过模拟真实用户交互来确定性地验证生成代码的需求符合度。

方法详解

整体框架

E2EDev 由三部分组成:(1) 每个软件项目的细粒度用户需求列表;(2) 每条需求对应的多个 BDD 测试场景及其 Python 步骤实现;(3) 基于 Behave 框架的全自动测试流水线。数据集通过 HITL-MAA(人机协同多智能体标注框架)从 46 个真实 GitHub Web 项目中构建。

关键设计

  1. HITL-MAA 标注框架:

    • 功能:半自动化地从源代码中提取细粒度需求和可执行测试
    • 核心思路:三阶段流水线——(a) Code Analyzer Agent 分析核心功能与 UI 元素交互,Requirement Extractor Agent 生成候选需求,人工审核确保准确性;(b) Test Case Generation Agent 为每条需求生成 Gherkin 格式的 BDD 场景,五位软件测试专家协作审核;(c) Test Automation Engineer Agent 生成 Python 步骤实现,通过 Dry Run Verifier 和 Test Runner 的迭代自修正确保可执行性,超过 80% 的逻辑错误无需人工干预
    • 设计动机:纯人工标注成本过高,纯 LLM 生成质量不稳定,人机协同在效率和质量之间取得平衡
  2. Test ID 锚点系统:

    • 功能:为 UI 组件分配唯一测试 ID,作为结构不变的 DOM 锚点
    • 核心思路:在生成需求和测试之前,使用 GPT-4o 为关键 UI 组件分配唯一 test ID,确保不同项目即使 DOM 结构不同也能一致引用同一组件
    • 设计动机:不同框架生成的项目 HTML 结构差异大,需要稳定的锚点才能跨项目一致地执行测试
  3. 多层级评测指标体系:

    • 功能:从需求级和测试级两个粒度评估代码有效性,同时衡量生成效率
    • 核心思路:Req. Acc 衡量完全满足的需求比例(所有测试用例通过),Test Acc 衡量通过的测试比例,Balanced Score 加权两者以消除测试粒度偏差。效率指标包括 API 费用、碳排放和时间
    • 设计动机:仅看测试通过率可能因某些需求测试数量不均而产生偏差,需求级指标更贴近用户真实体验

损失函数 / 训练策略

E2EDev 是评测基准,不涉及模型训练。评测流程基于 Behave 框架自动执行 Gherkin 场景对应的 Python 步骤,对每个生成项目进行确定性的通过/失败验证。

实验关键数据

主实验

不同框架和 LLM 骨干的需求准确率(Req. Acc %)

LLM 骨干 Vanilla LLM GPT-Engineer Self-Collab. MapCoder ChatDev MetaGPT
Claude-Haiku 4.5 48.69 53.75 49.01 49.61 44.73 5.39
GPT-4o 45.95 50.83 46.83 47.70 42.71 0.00
GPT-4o-mini 44.82 42.13 37.90 41.30 33.16 0.00
Qwen-Max 43.33 49.61 42.30 48.83 43.93 1.65
Qwen-7B 22.37 24.03 20.65 11.90 10.96 0.00

消融实验

失败模式分析(人工评估 360 个项目)

失败类型 描述 主要受影响框架
代码不一致 缺失/冲突/空函数 MetaGPT(44%来源于此)
需求遗漏 必需功能未实现 Vanilla LLM, ChatDev
需求偏差 实现逻辑偏离需求 所有框架(多智能体改善明显)
细节不匹配 基本正确但边缘错误 Self-Collaboration 最严重

关键发现

  • 即使最强的 Claude-Haiku 4.5 + GPT-Engineer 组合,Req. Acc 也仅 53.75%,说明 E2ESD 仍是巨大挑战
  • MetaGPT 在几乎所有 LLM 骨干上接近 0% 成功率,根本原因是智能体间通信崩溃——程序员忽略架构师的文件结构,产品经理重写压缩原始需求
  • 多智能体框架的交互成本高昂(ChatDev 平均 15.72 轮对话),但性能收益有限,甚至不如 Vanilla LLM
  • Soft Req. Acc 与 Req. Acc 差距超过 25%:模型能实现基本功能但无法处理复杂边缘情况
  • 框架对 LLM 骨干能力依赖极强,弱模型上框架反而拖累性能

亮点与洞察

  • BDD 测试方法论引入 LLM 评测是巧妙的跨领域迁移——将软件工程的成熟实践(Given-When-Then)应用于 AI 生成代码的验证
  • HITL-MAA 的迭代自修正机制(Dry Run + Test Runner)解决了 80% 的逻辑错误,展示了 LLM 在标注流水线中的实用价值
  • 失败模式分析揭示了多智能体架构的根本问题:信息在智能体间传递时逐层稀释,高层功能保留但细节丢失

局限与展望

  • 仅覆盖 Web 应用领域,虽然作者论证这是"下界测试",但桌面/移动/后端应用的挑战可能不同
  • 46 个项目规模有限,因为仓库级基准构建成本极高
  • 排除了 CI/CD 和深度后端检测,聚焦于浏览器自动化的黑盒测试
  • 未来可扩展为持续更新的公共排行榜,支持纵向评估

相关工作与启发

  • vs rSDE-Bench: rSDE-Bench 使用函数级单元测试验证输出,E2EDev 使用 BDD 测试从用户视角验证行为,粒度更贴近真实使用场景
  • vs SoftwareDev/SRDD: 它们依赖模糊描述和人工评价,E2EDev 提供细粒度需求和自动化确定性评测
  • vs Mle-Bench/GitTaskBench: 它们分别聚焦 ML 管道和仓库操作,E2EDev 聚焦从需求到可执行项目的完整流程

评分

  • 新颖性: ⭐⭐⭐⭐ 将 BDD 引入 LLM E2ESD 评测是有意义的创新,但基准构建方法论本身较为直接
  • 实验充分度: ⭐⭐⭐⭐⭐ 6 个 LLM 骨干 × 6 个框架,附加人工失败模式分析,非常全面
  • 写作质量: ⭐⭐⭐⭐ 结构清晰,图表直观,分析深入
  • 价值: ⭐⭐⭐⭐ 填补了 E2ESD 可靠评测的空白,失败模式分析对框架设计有直接指导意义

相关论文