<?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: devdev</title>
    <description>The latest articles on DEV Community by devdev (@devdev2413).</description>
    <link>https://dev.to/devdev2413</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3755056%2F3225846d-c850-41fe-92b6-9b58f62ef6bf.jpeg</url>
      <title>DEV Community: devdev</title>
      <link>https://dev.to/devdev2413</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devdev2413"/>
    <language>en</language>
    <item>
      <title>I got tired of writing E2E tests, so I built an AI that runs them for me</title>
      <dc:creator>devdev</dc:creator>
      <pubDate>Thu, 05 Feb 2026 16:00:17 +0000</pubDate>
      <link>https://dev.to/devdev2413/i-got-tired-of-writing-e2e-tests-so-i-built-an-ai-that-runs-them-for-me-4p32</link>
      <guid>https://dev.to/devdev2413/i-got-tired-of-writing-e2e-tests-so-i-built-an-ai-that-runs-them-for-me-4p32</guid>
      <description>&lt;h1&gt;
  
  
  I got tired of writing E2E tests, so I built an AI that runs them for me
&lt;/h1&gt;

&lt;h2&gt;
  
  
  QA is unavoidable… but painful
&lt;/h2&gt;

&lt;p&gt;Whether you’re building side projects or working professionally, one thing never goes away:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quality Assurance.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No matter how great your product is, users won’t trust it if it’s full of bugs.&lt;/p&gt;

&lt;p&gt;But here’s the reality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In &lt;strong&gt;side projects&lt;/strong&gt;, we barely have time to build features — QA gets skipped.&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;companies&lt;/strong&gt;, QA is mandatory — but it slows everything down.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cycle becomes:&lt;/p&gt;

&lt;p&gt;Fix → QA → Fix → Re-QA → Repeat forever&lt;/p&gt;

&lt;p&gt;At some point I started wondering:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is ensuring quality still so expensive?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why is QA still so manual?&lt;/p&gt;




&lt;h2&gt;
  
  
  The moment everything clicked
&lt;/h2&gt;

&lt;p&gt;While thinking about this problem, I discovered an open-source project called&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Browser Use&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It lets AI control a real browser.&lt;/p&gt;

&lt;p&gt;That’s when the idea hit me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if we could write tests in plain English and let AI do the QA?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Meet Test Pilot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://test-pilot.dev" rel="noopener noreferrer"&gt;https://test-pilot.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Test Pilot is an AI QA tool that runs browser tests for you.&lt;/p&gt;

&lt;p&gt;When you run a test, a real browser opens in the cloud (or locally) and the AI performs the QA automatically.&lt;/p&gt;

&lt;p&gt;Here’s what it looks like:&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%2F95bls8we5mmnzqna0lhw.gif" 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%2F95bls8we5mmnzqna0lhw.gif" alt=" " width="720" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of writing test code, you simply describe what you want to verify.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify that a user can log in&lt;/li&gt;
&lt;li&gt;Check that a product can be added to the cart&lt;/li&gt;
&lt;li&gt;Ensure the purchase completion screen appears&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;The AI performs the steps and verifies the results.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why natural language?
&lt;/h2&gt;

&lt;p&gt;Because &lt;strong&gt;writing tests is expensive&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Test code requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technical knowledge&lt;/li&gt;
&lt;li&gt;Maintenance&lt;/li&gt;
&lt;li&gt;Constant updates after UI changes&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Tests become the thing teams postpone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Natural language removes that barrier.&lt;/p&gt;

&lt;p&gt;You can write tests the same way you write product specs.&lt;/p&gt;

&lt;p&gt;This also makes tests accessible to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PMs
&lt;/li&gt;
&lt;li&gt;Designers
&lt;/li&gt;
&lt;li&gt;Non-engineers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now the whole team can understand &lt;strong&gt;what is being tested&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Record once, turn it into QA
&lt;/h2&gt;

&lt;p&gt;We also built a browser extension that records your actions.&lt;/p&gt;

&lt;p&gt;Instead of writing tests, you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your app
&lt;/li&gt;
&lt;li&gt;Click through a flow once
&lt;/li&gt;
&lt;li&gt;Save it as a test
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No code. No scripting.&lt;br&gt;&lt;br&gt;
Just record and run.&lt;/p&gt;

&lt;p&gt;This dramatically lowers the barrier to starting QA.&lt;/p&gt;




&lt;h2&gt;
  
  
  Run tests in the cloud or locally
&lt;/h2&gt;

&lt;p&gt;Tests can run in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud (quick and easy)
&lt;/li&gt;
&lt;li&gt;Local Runner (Mac)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local execution is especially useful when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need logged-in sessions
&lt;/li&gt;
&lt;li&gt;Your app is behind a firewall
&lt;/li&gt;
&lt;li&gt;You’re testing internal tools
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the tool usable from &lt;strong&gt;side projects to production teams&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;p&gt;Here’s the high-level stack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python / FastAPI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Browser Automation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser Use (Playwright-based)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cloud Execution&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Celery for async test runs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing magical — just technology chosen to reduce the barrier to QA.&lt;/p&gt;




&lt;h2&gt;
  
  
  The real goal
&lt;/h2&gt;

&lt;p&gt;This started as a tool I wanted for myself.&lt;/p&gt;

&lt;p&gt;But it grew into the largest product I’ve ever built.&lt;/p&gt;

&lt;p&gt;There’s still a lot to improve, and it’s far from perfect.&lt;/p&gt;

&lt;p&gt;But if you’ve ever felt that QA is heavy, slow, or constantly postponed…&lt;/p&gt;

&lt;p&gt;I hope this can help.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If this sounds interesting, I’d love your feedback.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://test-pilot.dev" rel="noopener noreferrer"&gt;https://test-pilot.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>ai</category>
      <category>playwright</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
