five

Needle in the Repo (NITR)

收藏
github2026-04-02 更新2026-04-01 收录
下载链接:
https://github.com/ucr-riple/NITR
下载链接
链接失效反馈
官方服务:
资源简介:
Needle in the Repo (NITR) 是一个C++仓库级别的基准测试数据集,用于评估AI生成的仓库编辑是否保持了可维护的结构,而不仅仅是行为正确性。它包含21个经过筛选的C++仓库探针,涵盖九个可维护性维度,配对自然的多文件变更请求与隐藏的功能测试和结构预言。该基准测试设计用于暴露代理生成行为正确但引入可维护性失败的代码的情况,如模块化弱、测试性差或架构捷径。

Needle in the Repo (NITR) is a repository-level C++ benchmark dataset developed to evaluate whether AI-generated repository edits preserve maintainable structural quality, rather than merely prioritizing behavioral correctness. It comprises 21 curated C++ repository probes spanning nine distinct maintainability dimensions, with each probe paired with natural multi-file change requests, hidden functional tests, and structural assertions. This benchmark is specifically designed to expose cases where AI agents generate code that behaves correctly but introduces maintainability defects, such as weakened modularity, poor testability, or architectural shortcuts.
创建时间:
2026-03-27
原始信息汇总

Needle in the Repo (NITR) 数据集概述

数据集基本信息

  • 数据集名称:Needle in the Repo (NITR)
  • 核心目的:评估AI生成的仓库级代码编辑是否在保持行为正确性的同时,也保持了可维护的结构。
  • 主要内容:一个C++仓库级基准测试,包含21个精心设计的C++仓库探针,涵盖九个可维护性维度。
  • 关键特征:每个案例均包含自然的多文件变更请求、隐藏的功能测试以及结构预言(structural oracles),旨在暴露那些行为正确但引入了可维护性失败的AI生成代码。

数据集结构与内容

  • 案例数量:21个
  • 案例列表
    • 001.add-no-callsite-spread
    • 002.refactor-and-resue
    • 003.reuse-existing-code
    • 004.cv-srp
    • 005.pricing-ocp
    • 006.gs-isp
    • 007.ml-lsp-multistep
    • 008.map-dip
    • 009.session-expiry-testability
    • 010.logging-side-effects
    • 011.config-sprawl
    • 012.cache-lifecycle
    • 013.stable-public-api
    • 014.report-export-ocp
    • 015.pipeline-provider-decoupling
    • 016.device-segment-planner
    • 017.active-snapshot-lifecycle
    • 018.seeded-selection-testability
    • 019.ranking-explainability-boundary
    • 020.handover-packet-ownership-boundary
    • 021.inline-filter-entrypoint-reuse
  • 仓库目录结构
    • cases/:存放所有21个起始案例。
    • docs/:包含案例规范和支持性的基准设计材料。
    • evaluator/:包含公开的检查、测试和固定装置代码。
    • third_party/:包含构建所需的依赖项(如googletest、eigen3、json)。
  • 任务文件:每个案例目录包含一个或多个任务文件。多步骤案例使用TASK1.mdTASK2.mdTASK3.md;单步骤案例使用TASK.md

数据集使用与评估

  • 评估焦点:诊断AI生成代码中引入的可维护性失败,例如弱模块化、可测试性差或架构捷径。
  • 工作流程
    1. 选择案例并阅读其任务文件。
    2. 要求编码系统编辑cases/<case_slug>/下的文件。
    3. 使用提供的公开评估器在本地运行评估。
  • 使用接口:支持API工作流、Agent CLI工作流和Web聊天工作流。
  • 构建与运行工具:提供了CMake配置脚本和Python工具脚本(tools/run_case.py)用于构建单个案例并运行评估器。

相关资源

  • 论文地址:https://arxiv.org/abs/2603.27745
  • 项目主页:https://www.cs.ucr.edu/~qzhang/nitr.html
  • 引用格式: bibtex @misc{zhu2026nitr, title = {Needle in the Repo: Diagnosing Maintainability Failures in AI-Generated Repository Edits}, author = {Haichao Zhu and Qian Zhang and Jiyuan Wang and Zhaorui Yang and Yuxin Qiu}, year = {2026}, eprint = {arXiv:2603.27745}, archivePrefix = {arXiv}, primaryClass = {cs.SE}, url = {https://arxiv.org/abs/2603.27745} }
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,维护性作为代码质量的核心维度,其评估长期依赖于人工审查与经验判断。Needle in the Repo (NITR) 数据集的构建,旨在为AI生成的代码仓库编辑提供一个系统化的可维护性评估基准。该数据集精心设计了21个C++仓库级别的测试案例,覆盖了九个关键的可维护性维度,例如模块化、可测试性与架构完整性。每个案例均包含自然语言描述的多文件变更请求,并预先嵌入了隐藏的功能性测试与结构性验证规则。构建过程通过CMake配置管理,确保每个案例的初始状态与评估环境可复现,从而为量化分析AI代码编辑中潜藏的可维护性缺陷提供了结构化基础。
特点
NITR 数据集的核心特点在于其超越了传统代码生成基准仅关注功能正确性的局限,将评估焦点转向了软件工程中更深层的可维护性属性。数据集通过多步骤任务与结构性预言的设计,能够精准暴露那些行为正确但引入了架构退化的编辑,例如代码扩散、关注点分离不足或测试边界模糊。案例覆盖了从单一职责原则到依赖倒置等经典设计模式,提供了多样化的真实场景模拟。此外,数据集采用开源工具链构建,评估代码公开透明,确保了评估过程的客观性与可验证性,为研究社区提供了一个诊断AI编码代理在复杂仓库环境下维护性失效的精细工具。
使用方法
使用NITR 数据集进行评测时,研究者或开发者需遵循其提供的工作流程。首先,选定目标案例并阅读对应的任务描述文件(TASK.md 或分步的 TASK1.md 等)。随后,将案例目录及任务说明提交给待评估的AI编码代理,由其生成代码编辑方案。编辑完成后,需将修改应用回本地数据集的相应案例目录中。最后,通过运行配套的Python工具脚本(如 `tools/run_case.py`)并附加 `--with-evaluator` 参数,即可触发本地评估器执行隐藏的功能测试与结构性检查。该评估器将自动输出通过或失败的结果,从而量化衡量AI编辑在满足功能需求的同时,是否保持了代码仓库的可维护性结构。
背景与挑战
背景概述
Needle in the Repo(NITR)数据集由加州大学河滨分校与杜兰大学的研究团队于2026年联合创建,旨在评估人工智能生成的代码仓库编辑是否在保持行为正确性的同时,维护了软件的可维护性结构。该数据集聚焦于C++仓库层面的基准测试,涵盖了九个可维护性维度,通过21个精心设计的案例探究模块化、可测试性及架构完整性等核心问题。其推出标志着软件工程领域从单纯的功能验证向结构质量评估的范式转变,为AI辅助编程工具的可靠性提供了关键衡量标准。
当前挑战
该数据集致力于解决AI生成代码在软件可维护性方面的挑战,具体包括检测弱模块化、低可测试性及架构捷径等隐蔽缺陷。在构建过程中,研究团队面临多重困难:需设计既能反映真实开发场景又具备可控结构的仓库案例;平衡行为测试与结构预言之间的复杂性;确保多步骤任务中状态转换的连贯性与评估一致性。这些挑战要求数据集不仅模拟代码变更,还需嵌入深层工程原则以揭示AI系统的结构性盲点。
常用场景
经典使用场景
在软件工程领域,随着人工智能辅助代码生成技术的快速发展,评估生成代码的结构可维护性成为关键挑战。Needle in the Repo (NITR) 数据集作为C++仓库级基准测试工具,其经典使用场景在于系统性地评估AI代理在响应多文件变更请求时,是否能在保持行为正确性的同时,维护代码库的长期可维护性结构。研究者通过该数据集提供的21个精心设计的案例,能够模拟真实开发环境中的复杂修改任务,从而深入分析AI生成代码在模块化、可测试性、架构一致性等九个维度的表现,为自动化代码生成系统的可靠性提供实证依据。
实际应用
在实际应用层面,NITR数据集为开发团队和工具提供商提供了重要的质量保障参考。企业可利用该基准测试来评估和比较不同AI编程助手(如GitHub Copilot、Amazon CodeWhisperer等)在复杂仓库级任务中的实际表现,从而选择更适合长期项目维护的辅助工具。同时,该数据集也可集成到持续集成/持续部署(CI/CD)流程中,作为自动化代码审查的一部分,提前预警可能损害代码库健康度的AI生成修改。此外,它还能用于培训开发者识别和避免常见的可维护性陷阱,提升团队整体的代码质量管理意识。
衍生相关工作
NITR数据集的发布催生了一系列围绕AI代码生成可维护性的衍生研究。例如,有工作基于其多维评估框架,开发了针对特定编程语言(如Java、Python)的可维护性基准测试扩展。另一些研究则利用NITR的案例设计模式,构建了专注于特定缺陷类别(如架构侵蚀、测试污染)的针对性探测集。此外,该数据集也启发了对大型语言模型在代码理解与生成任务中结构性偏差的深入分析,以及如何将可维护性约束融入模型训练与提示工程的方法探索,进一步丰富了智能软件工程的研究图谱。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作