为什么重要
HumanEval 原始测试用例太少(平均 7.7 个/题),很多代码虽然通过了全部测试但实际有 Bug。HumanEval+ 将测试用例增加到平均 774 个/题(80倍),结果所有模型的 Pass@1 普遍下降 10-15%。它揭示了”pass HumanEval ≠ 正确”的真相。
构建方式
对 HumanEval 的每道题自动生成大量边界测试用例:空输入、极大值、特殊字符、类型边界等。使用 mutation testing 确保新测试用例能发现更多 Bug。属于 EvalPlus 框架的一部分。
任务示例
- 原题 HumanEval #1:实现字符串分组函数
- 原始测试:3 个用例 → HumanEval+:200+ 用例
- 新增测试覆盖:空字符串、单字符、超长字符串、Unicode 等
关键发现
- 几乎所有模型在 HumanEval+ 上的得分比 HumanEval 低 10-15%
- 边界条件处理是主要失败原因
- 排名变化:某些模型在原版排名高但加固后下降
关联基准
EvalPlus(框架)、HumanEval(原版)、MBPP+(MBPP 加固版)
不足与展望
仍然是函数级评测,无法评估系统级代码质量。自动生成的测试用例可能有误报。