AI & ML interests
None defined yet.
Recent Activity
TestEvo-Bench
A Live Benchmark for Test Evolution: Update, Generation & Refinement
Evaluating how AI agents understand and adapt tests to real-world software evolution.
TestEvo-Bench is a live benchmark for evaluating AI software engineering agents on realistic test evolution tasks mined from open-source Java repositories.
Unlike benchmarks that isolate tests from production changes, TestEvo-Bench models the real co-evolution of production code and test suites. Every task comes from a real pair of revisions (old โ new), and every developer test was validated by executing it on both revisions: a test counts only if its outcome actually changes with the production code.
The benchmark has three tracks, defined by the developer test's outcomes on the old and new code:
- ๐ฃ Test Update โ the old test passes on the old code but not on the new code; adapt it so that it passes on the new code and does not pass on the old code
- ๐ Test Generation โ write a new test for changed or added behavior; it must pass on the new code and not pass on the old code
- ๐ข Test Refinement โ the old test still passes on the new code; refine it so that it covers more of the production methods it exercises
Each task is execution-grounded: the agent works in a two-revision repository inside a Docker environment with JDK 8/11/17/21, Maven and frozen offline dependencies, may edit only the target test file, and is graded by replaying its tests on both revisions, with coverage and mutation score against the developer's mutants.
Full and Lite
| Tasks | Update / Generation / Refinement | Test methods | Repositories | |
|---|---|---|---|---|
| Full | 3,020 | 641 / 2,163 / 216 | 7,807 | 196 |
| Lite | 584 | 200 / 300 / 84 | 805 | 138 |
Lite is a deterministic subset of Full for cheaper evaluation and faster iteration: it removes toy repositories, tasks whose coverage cannot be measured, non-adjacent revision pairs, potentially flaky tests and tasks with more than three target methods, then samples update and generation tasks by year with per-repository caps. Agent results on Lite match those on Full.
Datasets
Each dataset holds one track with two configurations, full (default) and lite:
- Test Update โ https://huggingface.co/datasets/TestEvo-Bench/teb-update
- Test Generation โ https://huggingface.co/datasets/TestEvo-Bench/teb-generation
- Test Refinement โ https://huggingface.co/datasets/TestEvo-Bench/teb-refinement
from datasets import load_dataset
update_lite = load_dataset("TestEvo-Bench/teb-update", "lite", split="test")
generation_full = load_dataset("TestEvo-Bench/teb-generation", "full", split="test")
Links
- ๐ Website, data explorer and leaderboard โ https://www.testevo-bench.com/
- ๐ค Hugging Face Space โ https://huggingface.co/spaces/TestEvo-Bench/
- ๐ป Evaluation framework (runner, agent and evaluator images) โ https://anonymous.4open.science/r/testevo-bench-1150/README.md
Real-world โข Execution-grounded โข Live software evolution benchmark