<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gururaj</title>
    <description>The latest articles on DEV Community by Gururaj (@gururajhm).</description>
    <link>https://dev.to/gururajhm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F374242%2F1c6c165a-1e00-4ed5-965a-26c8204d281d.png</url>
      <title>DEV Community: Gururaj</title>
      <link>https://dev.to/gururajhm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gururajhm"/>
    <language>en</language>
    <item>
      <title>Why AI-generated tests are only half the problem — verification and evidence matter more</title>
      <dc:creator>Gururaj</dc:creator>
      <pubDate>Sun, 18 Oct 2026 12:32:35 +0000</pubDate>
      <link>https://dev.to/gururajhm/why-ai-generated-tests-are-only-half-the-problem-verification-and-evidence-matter-more-1ln4</link>
      <guid>https://dev.to/gururajhm/why-ai-generated-tests-are-only-half-the-problem-verification-and-evidence-matter-more-1ln4</guid>
      <description>&lt;p&gt;I've spent more than 23 years in software engineering, quality engineering, automation, and delivery.&lt;/p&gt;

&lt;p&gt;I've watched testing move from manual cases to automation, CI/CD, cloud, and now AI-powered testing.&lt;/p&gt;

&lt;p&gt;Something has changed fundamentally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For years the model was simple:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Human thinks&lt;br&gt;
Human defines the test&lt;br&gt;
Machine executes&lt;br&gt;
Human evaluates the result&lt;br&gt;
Now we're moving toward:&lt;/p&gt;

&lt;p&gt;AI thinks&lt;br&gt;
AI creates the test&lt;br&gt;
AI executes&lt;br&gt;
AI evaluates&lt;br&gt;
AI reports: PASS&lt;br&gt;
And that creates a problem we don't talk about enough:&lt;/p&gt;

&lt;p&gt;If the AI performs the test and then tells us it passed, who verifies the AI?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That question is one of the reasons I started building TestNeo.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI can already write tests&lt;br&gt;
Ask an assistant: "Create a Playwright test for the login flow."&lt;br&gt;
In seconds you get something reasonable — cases, code, API checks, selectors, retries, even error analysis.&lt;/p&gt;

&lt;p&gt;The productivity gain is real.&lt;/p&gt;

&lt;p&gt;But generating a test is not the same as proving the application works.&lt;/p&gt;

&lt;p&gt;Then we started letting AI execute&lt;br&gt;
Instead of code, we say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Login as an administrator, create a customer, open the dashboard, and verify the customer appears."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An agent can click through that path. It looks great — until you ask:&lt;/p&gt;

&lt;p&gt;Did the customer actually get created?&lt;br&gt;
The agent says yes. That's still a claim.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The problem with letting the agent grade itself&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;UI shows success → backend failed → agent still reports PASS&lt;br&gt;
Checkout “completed” → payment failed → page transition counted as success&lt;/p&gt;

&lt;p&gt;“Test passed” → agent reached a page but never verified the expected state&lt;/p&gt;

&lt;p&gt;An agent can take the right-looking path and reach the wrong conclusion — or the right answer via the wrong path.&lt;/p&gt;

&lt;p&gt;As AI moves from generating things to doing things, claimed success without independent proof becomes a release risk.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Claimed → Observed → Verified → Evidence → Learn&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;While building TestNeo we separated:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcaywi8x6017sy42vku6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcaywi8x6017sy42vku6l.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The important word is Verified. A PASS without evidence is just another statement.&lt;/p&gt;

&lt;p&gt;Verification needs context — not only a green bar&lt;br&gt;
A trustworthy result isn't only screenshots and assertions. It needs situation:&lt;br&gt;
&lt;code&gt;&lt;br&gt;
What code / PR changed?&lt;br&gt;
What does the product context say (flows, APIs, domain map — the knowledge we keep about the system)?&lt;br&gt;
Have we seen this failure before (bugs, RCAs, past runs)?&lt;br&gt;
Which checks matter for this risk — functional, API, visual, performance, agent behavior?&lt;br&gt;
What should we remember so we don't relearn the same incident?&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That's why TestNeo is built around more than “run NLP in a browser”:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fowdjl6a01sx7njkjupht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fowdjl6a01sx7njkjupht.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The goal isn't more results. It's results you can defend when someone asks: should we ship?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Volume isn't confidence&lt;br&gt;
AI generates 1,000 tests. Impressive — until many are redundant, weak, flaky, or obsolete.&lt;/p&gt;

&lt;p&gt;Better questions:&lt;/p&gt;

&lt;p&gt;Given what changed, what should we verify?&lt;br&gt;
What evidence do we have?&lt;br&gt;
What risk remains?&lt;br&gt;
That shifts the work from test generation to risk-based verification.&lt;/p&gt;

&lt;p&gt;Agents raise the bar again&lt;br&gt;
With classic automation, intent is mostly fixed.&lt;br&gt;
With an autonomous agent, the agent may choose path, tools, retries, and whether it believes it succeeded.&lt;/p&gt;

&lt;p&gt;So we need to evaluate not only the application — but the behavior of the AI operating on it.&lt;/p&gt;

&lt;p&gt;We brought natural-language intent into Chrome for that reason. The interesting part isn't “AI can control a browser.” We already crossed that line.&lt;/p&gt;

&lt;p&gt;The interesting question is: how do we know the agent achieved what we asked?&lt;/p&gt;

&lt;p&gt;From a single run to a release decision&lt;br&gt;
A modern release mixes code changes, web, APIs, agents, visuals, performance, security signals, and years of run history.&lt;/p&gt;

&lt;p&gt;A giant PASS/FAIL list is not a decision.&lt;/p&gt;

&lt;p&gt;What changed?&lt;br&gt;
→ What matters? (context + risk)&lt;br&gt;
→ What did we verify?&lt;br&gt;
→ What does memory say we've seen before?&lt;br&gt;
→ What evidence do we have?&lt;br&gt;
→ What risk remains?&lt;br&gt;
→ Should we ship? (PASS / WARN / BLOCK)&lt;br&gt;
That's the direction of TestNeo Release Intelligence:&lt;br&gt;
intent → execution → observation → verification → evidence → memory → PR/release gate.&lt;/p&gt;

&lt;p&gt;We haven't “solved” this&lt;br&gt;
We're still experimenting — agents surprise us; some checks need a human in the loop.&lt;/p&gt;

&lt;p&gt;Hard questions remain:&lt;/p&gt;

&lt;p&gt;How much independent evidence before we trust an agent?&lt;br&gt;
When AI thinks, acts, and grades itself, where must the human stay?&lt;br&gt;
I don't have a final answer. After two decades in this field, I believe this much:&lt;/p&gt;

&lt;p&gt;AI making testing faster is inevitable.&lt;br&gt;
Making results trustworthy enough to act on is the harder problem.&lt;/p&gt;

&lt;p&gt;That's what we're trying to build with TestNeo.&lt;/p&gt;

&lt;p&gt;One line I keep&lt;br&gt;
AI can perform the work. Performance isn't proof.&lt;/p&gt;

&lt;p&gt;Claimed → Observed → Verified → Evidence → Learn.&lt;/p&gt;

&lt;p&gt;If you're putting AI agents into engineering workflows, I'd like to hear from you:&lt;br&gt;
Where do you draw the line between an agent's claim and evidence you actually trust?&lt;/p&gt;

&lt;p&gt;About TestNeo&lt;br&gt;
We're building toward evidence-based verification and release confidence — NLP execution, product context, engineering memory, risk-aware regression, and PR-level PASS/WARN/BLOCK — not generation alone. Still evolving; learning in public.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>automaton</category>
    </item>
    <item>
      <title>Why Testing Still Feels Broken (Even with AI &amp; MCP Tools)</title>
      <dc:creator>Gururaj</dc:creator>
      <pubDate>Mon, 30 Mar 2026 14:35:48 +0000</pubDate>
      <link>https://dev.to/gururajhm/why-testing-still-feels-broken-even-with-ai-mcp-tools-5ab5</link>
      <guid>https://dev.to/gururajhm/why-testing-still-feels-broken-even-with-ai-mcp-tools-5ab5</guid>
      <description>&lt;h2&gt;
  
  
  Why Testing Still Feels Broken (Even with AI &amp;amp; MCP Tools)
&lt;/h2&gt;

&lt;p&gt;We have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selenium
&lt;/li&gt;
&lt;li&gt;Playwright
&lt;/li&gt;
&lt;li&gt;Cypress
&lt;/li&gt;
&lt;li&gt;AI-powered test generators
&lt;/li&gt;
&lt;li&gt;MCP / autonomous testing tools
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yet…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing still feels painful.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 The Real Problem
&lt;/h2&gt;

&lt;p&gt;We’ve improved &lt;em&gt;how tests are created&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But not how they are &lt;strong&gt;understood&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;Today, even with AI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tools generate scripts
&lt;/li&gt;
&lt;li&gt;Tools execute tests
&lt;/li&gt;
&lt;li&gt;Tools give logs
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But when a test fails…&lt;/p&gt;

&lt;p&gt;👉 We’re back to the same loop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open logs
&lt;/li&gt;
&lt;li&gt;Check screenshots
&lt;/li&gt;
&lt;li&gt;Replay videos
&lt;/li&gt;
&lt;li&gt;Try to reproduce
&lt;/li&gt;
&lt;li&gt;Guess
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  😤 What AI Didn’t Fix
&lt;/h2&gt;

&lt;p&gt;AI helped us write tests faster.&lt;/p&gt;

&lt;p&gt;But it didn’t solve:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why did the test fail?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question still takes the most time.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⏱️ The Hidden Cost
&lt;/h2&gt;

&lt;p&gt;A failed test is not just a failure.&lt;/p&gt;

&lt;p&gt;It’s:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;15–30 minutes of debugging
&lt;/li&gt;
&lt;li&gt;Multiple tools involved
&lt;/li&gt;
&lt;li&gt;Context switching between dev &amp;amp; QA
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And sometimes…&lt;/p&gt;

&lt;p&gt;👉 It’s not even a real issue (just flaky behavior)&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What’s Actually Missing
&lt;/h2&gt;

&lt;p&gt;We don’t need more test generation.&lt;/p&gt;

&lt;p&gt;We need:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Test Intelligence&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Systems that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explain failures in plain English
&lt;/li&gt;
&lt;li&gt;Detect flaky patterns across runs
&lt;/li&gt;
&lt;li&gt;Connect failures to code changes
&lt;/li&gt;
&lt;li&gt;Recommend what to test next
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔄 A Different Way to Think About Testing
&lt;/h2&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Generate → Run → Debug manually  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What if it became:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Generate → Run → &lt;strong&gt;Understand instantly&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚙️ Example
&lt;/h2&gt;

&lt;p&gt;Instead of this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Element not found”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Imagine seeing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Login button moved due to layout shift in header component after recent CSS change”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s the difference between:&lt;/p&gt;

&lt;p&gt;❌ Data&lt;br&gt;&lt;br&gt;
✅ Understanding  &lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ What This Means Practically
&lt;/h2&gt;

&lt;p&gt;If you're working with modern testing stacks today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You're not struggling with writing tests anymore
&lt;/li&gt;
&lt;li&gt;You're struggling with understanding failures
&lt;/li&gt;
&lt;li&gt;Most debugging still happens outside your main workflow
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  This is where most teams lose time — not execution, but investigation.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🧠 Key Insight
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Testing isn’t broken because of lack of automation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
It’s broken because of lack of insight.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚀 Where This Is Going
&lt;/h2&gt;

&lt;p&gt;The next phase of testing won’t be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More frameworks
&lt;/li&gt;
&lt;li&gt;More scripts
&lt;/li&gt;
&lt;li&gt;More AI-generated code
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It will be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Systems that &lt;strong&gt;explain&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Systems that &lt;strong&gt;learn from failures&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Systems that &lt;strong&gt;guide testing decisions&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;We’ve been exploring this direction while building TestNeo:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://testneo.ai" rel="noopener noreferrer"&gt;https://testneo.ai&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Still early — would genuinely love feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Curious to hear from you
&lt;/h2&gt;

&lt;p&gt;What takes more time in your workflow — writing tests or debugging them?&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuwxwcq6t9nihy7ehu46n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuwxwcq6t9nihy7ehu46n.png" alt="Debugging a failed test using logs, screenshots, and multiple tools" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmaioz5935k8kfwgoghz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmaioz5935k8kfwgoghz.png" alt="AI explaining root cause of test failure with clear insights and recommendations" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tags:
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;testing&lt;/code&gt; &lt;code&gt;qa&lt;/code&gt; &lt;code&gt;automation&lt;/code&gt; &lt;code&gt;ai&lt;/code&gt; &lt;code&gt;devtools&lt;/code&gt; &lt;code&gt;softwareengineering&lt;/code&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
