Agent Assurance for your AI Deployment
Test how your agents actually behave across workflows, tools, and actions. Catch failures and vulnerabilities before they ship.
npm install -g @testmuai/rook
- TestMu AI (Formerly LambdaTest)
- /
- Learning Hub
- /
- HumanEval Benchmark: 164 Problems, pass@1 and HumanEval+
HumanEval Benchmark: 164 Problems, pass@1 and HumanEval+
The HumanEval benchmark scores code models on 164 Python problems by pass@1. See how its tests accept wrong code, what HumanEval+ adds and why it is saturated.
Published on:
OVERVIEW
On the HumanEval benchmark, o4-mini-high scores 99.3% pass@1 in the simple-evals repository's model table, which leaves room for about one unsolved problem out of 164.
In a script run on 2026-10-19, 9 of 16 deliberately wrong Python functions passed every HumanEval test for their problem, and the EvalPlus HumanEval+ test suite rejected all 16. The figures are the script's output; the run and its code are in the walkthrough below.
Overview
The HumanEval benchmark is OpenAI's set of 164 hand-written Python programming problems, released in 2021, that scores code models by running their completions against unit tests and reporting pass@1. In OpenAI's simple-evals table, frontier models score above 90%, so HumanEval is saturated, and its thin tests accept wrong code that HumanEval+ rejects.
HumanEval Benchmark Essentials
- Problem format: Each HumanEval problem gives a Python function signature and docstring, the model writes the body, and a hidden check function runs it against unit tests, an average of 7.7 per problem in the Codex paper.
- pass@1: HumanEval pass@1 is the share of the 164 problems solved by the first generated attempt, so a single problem moves the score by about 0.61 percentage points.
- HumanEval+: HumanEval+ from the EvalPlus team keeps the same 164 problems and adds generated inputs, averaging 757.6 test inputs per problem in release v0.1.10 against 9.6 in HumanEval.
- Can HumanEval's tests pass wrong code?: Yes. In a script run on 2026-10-19, 9 of 16 hand-written faulty solutions passed all of their HumanEval tests, while HumanEval+ rejected all 16 of them.
- Model-free harness check: The HumanEval harness can execute OpenAI's canonical solutions on their own, and all 164 pass their own tests, which checks the harness before any model output runs.
- Reference solutions: OpenAI's canonical HumanEval solutions disagree with EvalPlus's corrected references on 16 of 164 problems and do not finish 4 more within 180 seconds of HumanEval+ inputs.
- Is HumanEval saturated?: Yes. OpenAI's simple-evals table lists o4-mini-high at 99.3% pass@1, and the 95% interval for that score on 164 problems runs from 96.5% to 99.9%.
- Training-data contamination: HumanEval solutions are public, and a 2024 study by Riddell, Ni and Cohan found 18.9% of them had been seen by models trained on the Stack.
- Agent Assurance: TestMu AI's Agent Assurance tests a coding agent before release by checking which files each run changed and which tools it called; its Rook CLI is pre-alpha, and anyone can install it.
What Is the HumanEval Benchmark?
The HumanEval benchmark is a set of 164 hand-written Python programming problems that measures whether a code model can write a working function from its signature and docstring. Each completion runs against unit tests, and the headline metric is pass@1, the share of problems solved on the first attempt. The openai_humaneval dataset card on Hugging Face lists the 164 problems as one test split under the MIT license.
OpenAI introduced it in Evaluating Large Language Models Trained on Code by Mark Chen and co-authors, submitted to arXiv on 7 July 2021 to measure the Codex models. The full text of the Codex paper says the tasks "assess language comprehension, reasoning, algorithms, and simple mathematics", and that the problems were written by hand because "our models are trained on a large fraction of GitHub".
- Grading by execution - a completion is correct when the assembled program runs its check function without an assertion error, an exception or a timeout. No text comparison with the reference solution takes place.
- Python only - every problem asks for one Python function, from string handling such as flip_case to small algorithms such as prime_fib.
- Harness status - the openai/human-eval repository opened with "Deprecated and unmaintained" when read on 2026-10-19. Its README still says the execution call in execution.py is commented out, but a January 2025 commit uncommented it, so the harness runs completions as soon as you call it.
HumanEval works differently from knowledge benchmarks such as the MMLU benchmark, where a model picks one lettered option per question. HumanEval executes what the model writes, so any function that passes the tests counts, however it is worded, and any function that slips past weak tests counts too. Fact-recall benchmarks such as SimpleQA differ from both: a grader model compares each short free-text reply with one reference answer.
Fields of a HumanEval Problem: Prompt, Canonical Solution and Tests
Every HumanEval record has five fields, as the Hugging Face dataset viewer shows, and the model sees only one of them. HumanEval/34, unique(), shows the shape, with a check function that holds a single assertion:
# HumanEval/34, prompt (what the model sees)
def unique(l: list):
"""Return sorted unique elements in a list
>>> unique([5, 3, 5, 2, 3, 3, 9, 0, 123])
[0, 2, 3, 5, 9, 123]
"""
# canonical_solution (OpenAI's reference body)
return sorted(list(set(l)))
# test (hidden from the model), line wrapped
def check(candidate):
assert candidate([5, 3, 5, 2, 3, 3, 9, 0, 123]) \
== [0, 2, 3, 5, 9, 123]| Field | What it holds | Shown to the model? |
|---|---|---|
| task_id | HumanEval/0 to HumanEval/163 | No |
| prompt | Imports, the function signature and a docstring, usually with examples | Yes, it is the whole input |
| canonical_solution | OpenAI's reference function body | No |
| test | A check(candidate) function of assert statements | No |
| entry_point | The function name passed to check() | No |
- Assembly - the harness joins prompt, completion and test into one program and calls check() on the entry point.
- Docstring examples - the examples in the prompt often reappear in the tests, as in unique() above, so a solution can pass by matching the examples alone.
- Uneven test depth - unique() has one test input; HumanEval/53, add(), has 105, because its check function loops over random pairs.
How HumanEval Is Scored: Greedy Runs, Sampling and Temperature
pass@k counts a problem as solved if any of k generated samples passes its tests; the Codex paper, following Kulal et al. (2019), says "a problem is considered solved if any sample passes the unit tests". The Codex paper (PDF) reports pass@1, pass@10 and pass@100, and its fine-tuned Codex-S model solves 37.7% of the problems with a single sample per problem.
The estimator itself, and why a high pass@k can hide an unreliable model, are worked through in pass@k vs pass^k. For reading a HumanEval number, check these settings:
- Greedy pass@1 - one completion per problem, picked deterministically. The EvalPlus leaderboard ranks models this way.
- Sampled pass@1 - the average pass rate over several samples per problem. OpenAI's simple-evals HumanEval script draws 5 per problem.
- Temperature - for a 679M-parameter Codex model, the paper found the best temperature was 0.2 for pass@1 and 0.8 for pass@100, so a pass@1 sampled at a high temperature understates the model.
- Granularity - with 164 problems, each problem is worth about 0.61 points, so a gap of 0.6 points between two models is a single problem and a gap of 1.2 points is two.
How to Run HumanEval on Its Reference Solutions Without a Model
Running the harness on the reference solutions first tests the harness itself, and it needs no model and no API key. The run described here used Python 3.14 with the standard library only, and it executed two kinds of code: the reference solutions shipped with the datasets and hand-written faulty variants. No model output was executed.
HumanEval Harness Setup: Datasets, Subprocesses and Timeouts
- Download both suites - OpenAI's HumanEval.jsonl.gz and the HumanEval+ v0.1.10 release, the version the EvalPlus leaderboard names.
- Run HumanEval's own check - write prompt, completion, test and check(entry_point) to one file and run it in a fresh Python subprocess with a 30-second timeout; exit code 0 is a pass.
- Run the HumanEval+ check - call the candidate and the EvalPlus reference on every base and plus input and compare the outputs, with a small float tolerance (1e-6 absolute, 1e-7 relative) and, for find_zero, a check that the returned root zeroes the polynomial. Each problem gets 180 seconds.
- Pin set ordering - set PYTHONHASHSEED=0 in the subprocess, so a variant that returns an unsorted set fails on the same inputs every run.
# he_lib.py, simplified excerpt:
# run one HumanEval problem in a subprocess
code = (prompt + body + "\n\n" + test
+ "\n\ncheck(" + entry + ")\n")
with open(path, "w", encoding="utf-8") as fh:
fh.write(code)
proc = subprocess.run(
[sys.executable, "-s", "-P", path],
cwd=WORK, env={"PYTHONHASHSEED": "0"},
capture_output=True, text=True,
timeout=30)
passed = proc.returncode == 0OpenAI's README for the harness states: "This program exists to run untrusted model-generated code. Users are strongly encouraged not to do so outside of a robust security sandbox." Trusted reference code can run in a plain subprocess, as here; model completions belong in a container or virtual machine with no network access.
OpenAI's Canonical Solutions Against HumanEval and HumanEval+
The first script, step1_canonical.py, counts the tests in both suites and runs every one of OpenAI's canonical solutions against each. Its output from the 2026-10-19 run, with the per-problem rows trimmed:
HumanEval: 164 problems, 164 with canonical code
Tests per problem total mean median min max
HumanEval asserts 1181 7.2 7 1 26
HumanEval inputs 1570 9.6 7 1 105
Plus extra inputs 122683 748.1 972 2 1000
HumanEval+ total 124253 757.6 980 12 1100
OpenAI canonical solutions, no model involved
HumanEval tests 164 / 164 pass
HumanEval+ inputs 144 / 164 pass
wrong output or crash: 16 problems
HumanEval/22 166 of 956 inputs
HumanEval/44 8 of 478 inputs
HumanEval/49 1 of 990 inputs
HumanEval/64 1 of 999 inputs
(12 more rows in the full output)
not done in 180 s: 4 problems
32, 55, 63, 127In the script's output, all 164 reference solutions pass HumanEval's own tests, which confirms the harness. Against HumanEval+ inputs, 16 return a different answer from EvalPlus's corrected reference or raise an error, and 4 do not finish within 180 seconds, consistent with the EvalPlus paper's report that it "found 18 defects (11% of problems) even in the original ground-truth in HumanEval".
| Problem | Input | OpenAI canonical returns | EvalPlus reference returns |
|---|---|---|---|
| HumanEval/22 filter_integers | [True, False, None, 0, -10, 'test', [], {}, 3.14] | [True, False, 0, -10] | [0, -10] |
| HumanEval/44 change_base | change_base(0, 3) | '' | '0' |
| HumanEval/64 vowels_count | vowels_count('') | IndexError | 0 |
| HumanEval/97 multiply | multiply(-6, -9) | 4 | 54 |
| HumanEval/132 is_nested | is_nested('[][][]') | True | False |
| HumanEval/150 x_or_y | x_or_y(0, 500, 1000) | 500 | 1000 |
- Real defects - multiply() should return the product of the unit digits, 6 times 9, but Python's modulo on -6 and -9 gives 4 and 1. The docstring's only negative example, multiply(14, -15), happens to come out right. The canonical x_or_y(0, 500, 1000) returns 500 although 0 is not prime, so it breaks the docstring's own rule of returning y for every n that is not prime.
- Unstated cases - some inputs fall outside what the docstring promises, such as change_base(0, 3) or an empty string for vowels_count(), whose docstrings say nothing about zero or an empty word, so a row there is a disagreement with EvalPlus's reading of the spec as much as a bug.
- Python quirks - filter_integers() keeps True and False because bool is a subclass of int in Python.
Faulty Solutions That HumanEval's Tests Accept
The second script, step2_mutants.py, runs hand-written faulty function bodies, each a bug a careless developer or a model could plausibly write, against HumanEval's tests and against the HumanEvalPlus.jsonl.gz inputs. Its output from the same day:
Faulty variants, no model involved
ID Task Bug HE HE+
M1 9 max starts at 0 pass FAIL 455/963
M2 29 substring, not prefix pass FAIL 33/998
M3 34 result not sorted pass FAIL 717/904
M4 35 max starts at 0 pass FAIL 150/940
M5 31 0 and negatives prime pass FAIL 45/167
M6 43 misses a pair of zeros pass FAIL 120/983
M7 2 parses repr string pass FAIL 2/974
M8 58 result not sorted pass FAIL 238/989
M9 0 <= instead of < pass FAIL 6/1006
M10 52 <= instead of < FAIL FAIL 24/425
M11 24 sqrt bound off by one FAIL FAIL 7/173
M12 26 dedupes, keeps repeats FAIL FAIL 840/865
M13 103 rounds half up FAIL FAIL 119/951
M14 3 checks final sum only FAIL FAIL 199/904
M15 12 returns last longest FAIL FAIL 103/936
M16 56 counts brackets only FAIL FAIL 55/1012
HumanEval passes, HumanEval+ fails: 9 of 16
Both suites fail: 7 of 16In the script's output, HumanEval accepted 9 of the 16 and HumanEval+ rejected all of them. A diagnostic script then found the shortest HumanEval+ input on which each accepted variant disagrees with the reference; M8 repeats the bug class of the ChatGPT answer to HumanEval #58 shown in the EvalPlus paper (PDF), a set that loses the sorted order.
| Variant | Shortest failing input | Variant returns | Reference returns |
|---|---|---|---|
| M1 rolling_max | [-33, 84, 93] | [0, 84, 93] | [-33, 84, 93] |
| M2 filter_by_prefix | ['a', 'ab', 'abc', 'ba', 'bb', 'bc'], 'a' | Includes 'ba' | ['a', 'ab', 'abc'] |
| M3 unique | [-1, 1] | [1, -1] | [-1, 1] |
| M4 max_element | [-1000] | 0 | -1000 |
| M5 is_prime | 0 | True | False |
| M6 pairs_sum_to_zero | [0, 0] | False | True |
| M7 truncate_number | 1e-323 | IndexError | 1e-323 |
| M8 common | [7, 9], [7, 9] | [9, 7] | [7, 9] |
| M9 has_close_elements | [0.5, 1.5, 2.5, 4.5], 1.0 | True | False |
- What slipped through - a list that starts with a negative number, an all-negative list, zero, a repeated zero, a tie at the threshold, a set whose order differs from sorted order, a later match in a string where only a prefix counts, and a float that Python prints without a decimal point. The base tests of those problems include none of these cases.
- What HumanEval caught - all 7 variants it failed break a case that a docstring example or a hand-written test checks directly, such as keeping one copy of a repeated number when the docstring says to drop every number that occurs more than once.
- Where tests are thinnest - 21 of the 164 problems have 3 or fewer base test inputs in the run's count, unique() among them with one.
The same failure shows up in code assistants inside your own repository: a generated function passes the examples it was shown and breaks on the input nobody wrote down. Catching hallucinations in AI-generated code covers the checks that catch it in review and CI.
HumanEval vs HumanEval+: How Many Tests Does It Take to Catch Wrong Code?
The EvalPlus paper by Jiawei Liu and co-authors, first submitted in May 2023, says "we extend the test-cases of the popular HumanEval benchmark by 80x to build HumanEval+". Across 26 models, the extra tests catch wrong code that HumanEval passed, "reducing the pass@k by up-to 19.3-28.9%".
| Attribute | HumanEval | HumanEval+ (v0.1.10) |
|---|---|---|
| Problems | 164 | The same 164; only the HumanEval/115 prompt text differs |
| Test inputs per problem | Mean 9.6, median 7 | Mean 757.6, median 980.5 |
| Fewest and most | 1 to 105 | 12 to 1,100 |
| Expected outputs | Hand-written assert statements | Computed by running a reference solution on each input |
| Reference solutions | Original, with defects | Corrected, plus input contracts |
| License | MIT | Apache-2.0 |
| Smaller variant | None | HumanEval+-mini, for fast runs |
The counts in the table are the script's output for the v0.1.10 file; the evalplus/humanevalplus dataset card, updated the same day as that release, lists the Apache-2.0 license. The HumanEval figures (mean 9.6, range 1 to 105) match Table 2 of the NeurIPS 2023 version of the EvalPlus paper, which gives a mean of 764.1 for the HumanEval+ build the paper used, a little above the 757.6 counted in v0.1.10.
- Differential testing - in the paper's words, "We use differential testing ... as the oracle to cross-check the output of the ground-truth and LLM-generated solution."
- Input contracts - each HumanEval+ problem carries assertions describing valid inputs, so generated inputs stay inside what the docstring allows.
- Cost of the extra tests - in the v0.1.10 file, the script counted 124,253 HumanEval+ test inputs against 1,570 base inputs taken from HumanEval's own tests, and every model completion has to run through all of them.
- Which to report - quote both. A model whose HumanEval+ score drops far below its HumanEval score solves fewer problems than its HumanEval number suggests.
Published HumanEval and HumanEval+ Scores With Settings and Error Margins
The HumanEval rows below come from the simple-evals README, whose July 2025 note says "simple-evals will no longer be updated for new models or benchmark results". Its HumanEval script asks the model to "fully implement the function described" and averages 5 samples per problem, with no tools enabled for o3 or o4-mini. The Codex-S row is the 2021 baseline from the Codex paper cited in the scoring section.
The HumanEval+ rows come from the EvalPlus leaderboard, which uses HumanEval+ version 0.1.10 and ranks "according to pass@1 using greedy decoding"; the page draws its scores from a results.json data file that, when read on 2026-10-19, was served with a Last-Modified date of 26 December 2024. The five HumanEval+ rows are a selection from the 125 models in that file, not its top five: O1 Mini ties O1 Preview at 89.0%, and GPT-4-Turbo (April 2024) ties DeepSeek-V3 at 86.6%. The same file lists GPT-4o (August 2024) at 92.7% on HumanEval, while simple-evals lists gpt-4o-2024-08-06 at 90.2%, so two harnesses put the same model 2.5 points apart.
| Suite | Model | pass@1 | Setting and source | Read | 95% interval |
|---|---|---|---|---|---|
| HumanEval | o4-mini-high | 99.3% | Chat instruction, 5 samples, no tools; simple-evals | 2026-10-19 | 96.5 to 99.9 |
| HumanEval | o3-mini-high | 97.6% | Chat instruction, 5 samples; simple-evals | 2026-10-19 | 94.0 to 99.1 |
| HumanEval | gpt-4.1-2025-04-14 | 94.5% | Assistant system message, 5 samples; simple-evals | 2026-10-19 | 89.9 to 97.1 |
| HumanEval | gpt-4o-2024-08-06 | 90.2% | Assistant system message, 5 samples; simple-evals | 2026-10-19 | 84.7 to 93.9 |
| HumanEval | Codex-S (2021) | 37.7% | Single sample; Codex paper | 2026-10-19 | 30.6 to 45.3 |
| HumanEval+ | O1 Preview (Sept 2024) | 89.0% | Greedy, chat setting, v0.1.10; EvalPlus leaderboard | 2026-10-19 | 83.3 to 92.9 |
| HumanEval+ | GPT 4o (Aug 2024) | 87.2% | Greedy, chat setting, v0.1.10; EvalPlus leaderboard | 2026-10-19 | 81.2 to 91.5 |
| HumanEval+ | Qwen2.5-Coder-32B-Instruct | 87.2% | Greedy, chat setting, v0.1.10; EvalPlus leaderboard | 2026-10-19 | 81.2 to 91.5 |
| HumanEval+ | DeepSeek-V3 (Nov 2024) | 86.6% | Greedy, chat setting, v0.1.10; EvalPlus leaderboard | 2026-10-19 | 80.5 to 91.0 |
| HumanEval+ | Claude Sonnet 3.5 (June 2024) | 81.7% | Greedy, chat setting, v0.1.10; EvalPlus leaderboard | 2026-10-19 | 75.1 to 86.9 |
The interval column is a 95% Wilson score interval for a proportion over 164 problems, the method the NIST/SEMATECH e-Handbook lists for binomial confidence limits; for the simple-evals rows, which average 5 samples per problem, it is an approximation. A third script, step3_margins.py, computed it; part of its output:
One problem on HumanEval = 0.61 points
pass@1 solved 95% interval (n=164)
37.7% 61.8 30.6 to 45.3 (-7.1 / +7.6)
81.7% 134.0 75.1 to 86.9 (-6.6 / +5.2)
90.2% 147.9 84.7 to 93.9 (-5.5 / +3.7)
94.5% 155.0 89.9 to 97.1 (-4.6 / +2.6)
99.3% 162.9 96.5 to 99.9 (-2.8 / +0.6)- Overlapping intervals - the four HumanEval+ models from 86.6% to 89.0% all overlap, so the EvalPlus leaderboard order among them is not settled by the benchmark.
- Non-integer solves - in the script's output, o4-mini-high's 99.3% comes to 162.9 of 164 problems, and no whole number fits, since 162 solved is 98.8% and 163 is 99.4%. That matches the 5 samples per problem the simple-evals script averages; a greedy score is always a whole number of problems.
- Model picks - for choosing a model for real coding work by task type, see best LLM for coding.
Is HumanEval Saturated, and When Is It Still Worth Running?
Yes, HumanEval is saturated for frontier models: four of the five HumanEval rows in the table above are 90% or more, and the top one leaves about one problem unsolved. Its tests are also public and old, and Quantifying Contamination in Evaluating Code Generation Capabilities of Language Models (Riddell, Ni and Cohan, 2024) reports that "18.9% have been seen by models trained on the Stack".
- Frozen reporting - simple-evals stopped adding models in July 2025, and the EvalPlus leaderboard data has not changed since December 2024.
- Coding reports moved on - Anthropic's Claude Opus 4.5 announcement of 24 November 2025 reports SWE-bench Verified and Terminal Bench and does not list HumanEval at all.
- Narrow scope - one self-contained function per problem, with no repository, no files to edit, no tools and no multi-step task. The GDPval benchmark sits at the other extreme, asking for whole work deliverables such as a spreadsheet or legal memo, which occupation experts grade.
- Cross-benchmark view - how repository-level and terminal benchmarks score coding work, and how to read any benchmark number, is covered in LLM benchmarks.
HumanEval still earns a run in a few places, as long as HumanEval+ runs beside it:
- Small and local models - in the EvalPlus results file on GitHub, models of 1B to 2B parameters score from 2.4% (zyte-1B) to 65.9% (DeepSeek-Coder-1.3B-instruct) greedy pass@1 on HumanEval, far below the ceiling and well spread out.
- Harness checks - running the canonical solutions confirms a new evaluation pipeline in minutes, before any model output runs.
- Before and after a change - quantizing or fine-tuning a small model can change which problems pass, and pairing the two runs problem by problem shows which ones.
- Teaching - the five-field format is the simplest way to show how execution-based grading works.
Beyond HumanEval's Unit Tests: Checking a Coding Agent's File Changes and Tool Calls
A HumanEval pass means one function returned the expected value for the inputs someone wrote down, and the faulty variants above show how little that can be. A coding agent does more than return a value: it edits files, runs commands, calls tools and then summarizes its own work, and a green test run is silent about a file written outside the task or a forbidden tool that got called anyway.
For a coding agent, TestMu AI's Agent Assurance checks, before release, what a HumanEval check function never sees: what the run changed in the repository and which tools it touched on the way. The Rook CLI that runs these checks is at the pre-alpha stage, and two commands install it from npm and print its version:
npm install -g @testmuai/rook
rook --versionSupported systems are macOS and Linux, and 64-bit Windows through npm or WSL, and the npm package expects Node.js 20 or newer. To run Rook CLI from inside Claude Code, the Claude Code setup guide adds the skill installer, which needs Node.js 22 or newer.
- Scenarios read from the repository - Rook CLI reads the coding agent's source or its spec, including declared tools, subagents and MCP configuration, and writes scenarios with acceptance criteria; the default mix is functional plus adversarial, with non-functional checks added only on request.
- Changed files as evidence - every file a run changed under the paths its profile declares is recorded, so a write that falls inside those paths but outside what the task asked for shows up in the evidence.
- Tool calls against the agent's definition - each call observed in the run is compared with the tools listed in the agent's own definition, and a scenario can list tools the run must never call.
- A report of passing tests is not evidence - a coding agent's own statement that every test passed decides no criterion, and model judges that score some criteria never count a claimed action as proof; the Agent Assurance overview docs explain why the agent's own reply carries the least weight.
- Three verdicts per criterion - a criterion such as "the changed module gained a test file" is marked Pass, Fail or Unable to Verify, and results in the third group are reported on their own and do not count toward the pass rate.
Give the agent a disposable clone of the repository or a CI runner you can throw away, because whatever it writes during a run stays written. Most eval and observability tools judge an agent by what it replied and logged; Agent Assurance looks at what a run changed in files and tool calls, and names the criteria it had no way to check.
Checklist Before Comparing Two HumanEval Scores
Before you compare two HumanEval numbers, write down the suite, the setting and the source of each, then work through these checks:
- Suite and version - HumanEval or HumanEval+, and which HumanEval+ release.
- Setting - greedy or sampled pass@1, how many samples, which prompt and which harness.
- Interval - put the 95% interval for 164 problems next to each score; gaps inside it are ties.
- Your own tasks - score shortlisted models on tasks from your codebase, kept in a golden dataset that never enters a prompt.
- Coding agents - if the model will drive a coding agent, test the agent's file changes and tool calls before release; the Agent Assurance CI/CD guide shows how to run Rook CLI in a pipeline.
Author
Anubhav Singhmaar is an AI Product Manager at TestMu AI driving Kane CLI, the command-line tool that brings browser automation to the terminal, turning natural-language flows into runs in a real Chrome browser that return pass or fail with shareable proof. He owns the roadmap and prioritization and works with engineering to ship developer-facing features. Before TestMu AI, he spent over four years at Sprinklr owning enterprise voice AI across APAC and EMEA. A mechanical engineer turned product manager, he grounds guidance in real QA workflows.
Reviewer
Samyak Goyal is a Senior Member of Technical Staff at TestMu AI engineering Kane CLI, the command-line tool that runs browser automation from the terminal, where a flow described in natural language executes in a real Chrome browser and returns pass or fail with shareable proof. He is a backend engineer with 4+ years of experience, previously an SDE at Innovaccer, where he built APIs, introduced Kafka, and cut deployment from weeks to hours. Samyak also builds multi-agent systems, skill-orchestration frameworks, and a personal copilot that indexes 200+ microservice repositories.
HumanEval Benchmark FAQs
Did you find this page helpful?
More Related Learning Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance
- Advanced access controls
- Advanced data retention rules
- Advanced Local Testing
- Premium Support options
- Early access to beta features
- Private Slack Channel
- Unlimited Manual Accessibility DevTools Tests





