Source: Preliminary findings from the JetBrains Developer Ecosystem Survey 2026 • 15,000+ developers worldwide

Mistake
Why it creates risk
Better approach
Validating only the final response
Can miss failures in planning, tool selection, and intermediate steps
Evaluate the full execution trace, not just the output
Ignoring tool execution traces
Hides incorrect tool calls and silent failures
Log and review every tool call and its actual result
Include ambiguous, invalid, and failure-mode test cases
Explicitly test boundaries, rejections, and post-denial behavior
Validate behavior, schema, and tool usage, not exact strings
Run the regression suite ahead of each release
Automate scenario tests, schema checks, and refusal verification
Verify actual execution results, not the agent's self-report
Production failures happen at edges and under unexpected inputs
Agent may perform restricted operations or bypass review steps
Whole categories of behavior go untested
Prompt or model changes silently break previously working behavior
Doesn't scale and misses regressions between releases
Agents sometimes report success when underlying calls failed
Testing only happy paths
Skipping permission and approval tests
Assuming non-deterministic outputs can't be tested
Not performing regression tests after updates
Relying only on manual review
Assuming tool calls succeeded
There's no fixed number; it depends on the agent's scope and risk profile. Cover every major workflow the agent handles, every failure boundary you have defined, and every external tool it calls, exercising each on its expected path and on the ways it can fail. Sized that way, the count falls out of the agent's surface area rather than a target picked in advance.
Run the full regression suite, then compare results against a golden baseline captured before the change rather than reading them in isolation. Any behavior that differs from the baseline is a regression until you confirm the change was intentional, which is the whole value of keeping one. Treat an unexplained shift in a high-risk workflow as a release blocker, not a curiosity for later.
Mock or sandbox the tool wherever you can. Where you can't, and plenty of third-party APIs have no test mode, record a real response once and replay it, keeping the few genuinely live tests behind a manual trigger rather than in the suite that runs on every change. Whichever approach you land on, one assertion matters most. The agent must not report success when the underlying call failed. Test that against errors, timeouts, and malformed responses.
Mostly, but the line moves as the agent's scope grows. Automation covers scenario tests, schema validation, tool-call verification, and regression suites, and its share should keep growing, because every failure mode you meet once becomes a regression case you never review by hand again. What stays human is the first encounter with a novel failure and any workflow whose blast radius you cannot undo, the same line published agent evaluation guidance draws. If manual review time isn't falling as the suite matures, the suite isn't absorbing what it learns.
Set a threshold instead of demanding one exact result, and derive it from observed behavior rather than a round number: Run the scenario enough times to see its real spread, then set the bar below that spread and above what you would tolerate in production. When runs fail intermittently, read the failing traces together. If they all break at the same step, you have a bug, not variance, and telling those apart is what keeps a behavioral suite from blocking every release or none.
Damaso Sanoja is an engineer who is passionate about helping others make data-driven decisions to achieve their goals. This has motivated him to write numerous articles on the most popular relational databases, customer relationship management systems, enterprise resource planning systems, master data management tools, and, more recently, data warehouse systems used for machine learning and AI projects. You can blame this fixation on data management on his first computer being a Commodore 64 without a floppy disk.
Explore JetBrains AI solutions that help you build, use, and scale AI agents across the software development lifecycle.
Run terminal agents through one JetBrains account, with access, models, and usage governed centrally.
Plan, code, debug, and automate tasks with a coding agent that works across your terminal, IDE, GitHub, and GitLab.
Orchestrate AI agents and verify their output directly in JetBrains IDEs, with full control over how changes are reviewed.
Automate software delivery workflows, coordinate agentic work across teams, identify bottlenecks affecting delivery.
Govern AI usage, models, policies, and costs across your organization, including JetBrains and third-party tools.
Give agents shared organizational memory and context that carries across tools, workflows, and execution environments.
An open system of AI products for developers, teams, and organizations – from coding with agents to automating workflows and governing AI at scale.
Continue Exploring the AI Agents for Developers Guide
Learn how to evaluate AI agents using practical metrics, benchmarks, testing strategies, and performance measurements for real-world applications.
Explains agentic workflows, how AI agents plan and execute multistep tasks, and the patterns that make autonomous workflows reliable and scalable.
Explains how AI agent loops work, why infinite loops occur, and practical techniques for preventing runaway execution in production systems.