<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:admin="http://webns.net/mvcb/"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>Latest News &#45; National and International News &#45; Showbiz News &#45; Arjun Sharma</title>
<link>https://news.bangboxonline.com/rss/author/arjun-sharma</link>
<description>Latest News &#45; National and International News &#45; Showbiz News &#45; Arjun Sharma</description>
<dc:language>en</dc:language>
<dc:rights>Copyright 2026 Bang Box online &#45; All Rights Reserved.</dc:rights>

<item>
<title>AI&#45;Driven Quality Engineering Services: Why Generated Tests Don&amp;apos;t Last</title>
<link>https://news.bangboxonline.com/ai-driven-quality-engineering-services-why-generated-tests-dont-last</link>
<guid>https://news.bangboxonline.com/ai-driven-quality-engineering-services-why-generated-tests-dont-last</guid>
<description><![CDATA[ AI-driven quality engineering improves test automation, but generated tests often fail over time due to maintenance challenges, changing requirements, and unstable test frameworks. ]]></description>
<enclosure url="" length="49398" type="image/jpeg"/>
<pubDate>Wed, 14 Oct 2026 19:15:24 +0500</pubDate>
<dc:creator>Arjun Sharma</dc:creator>
<media:keywords>AI-Driven Quality Engineering, quality engineering services, AI-Driven Quality Engineering</media:keywords>
<content:encoded><![CDATA[<p dir="ltr"><span>Picture a QA lead asking a general-purpose AI model for Playwright tests that cover checkout. Twenty tests arrive within a minute, and because they read well and pass, the pull request is approved.</span></p>
<p dir="ltr"><span>Three months later, a redesign of the cart page breaks fourteen of them. Each test carried its own copy of the cart selectors and login steps, even though the team already had shared versions of both, so the fix takes days instead of minutes.</span></p>
<p dir="ltr"><span><a href="https://www.qasource.com/managed-quality-engineering" title="AI-driven quality engineering services" target="_blank" rel="noopener">AI-driven quality engineering services</a> are testing services that use AI to design, write, and maintain software tests. Teams also do this work themselves, with commercial tools or general-purpose models.</span></p>
<p dir="ltr"><span>Whichever route a team takes, generating tests is fast. Whether those tests still work, and still make sense, a year later depends on how well they fit the codebase they land in. This article covers why generated tests drift out of fit, how to spot it, what it costs, why migrations raise the stakes, what to ask before relying on any AI approach, and the tradeoffs involved.</span></p>
<h2 dir="ltr"><span>Why Do AI-Generated Tests Stop Fitting?</span></h2>
<p dir="ltr"><span>A mature test suite is more than a pile of tests, because over the years teams build shared parts that every new test is supposed to use.</span></p>
<p dir="ltr"><span>Two of the most common are fixtures and page objects. A fixture is shared setup, such as a logged-in user or a seeded database, that many tests reuse. A page object is shared test code for one screen of the app. It holds the selectors, the instructions a test uses to find buttons and fields, so each test can simply say "add an item to the cart" instead of spelling out where every button sits. <span>Playwright's documentation</span></span><span> presents page objects as a way to reduce duplication and make tests easier to update when the interface changes.</span></p>
<p dir="ltr"><span>A general-purpose model sees none of this unless you show it. It also doesn't know which flows have broken before, which naming rules the team follows, or which selectors are stable. So it fills the gaps with reasonable guesses: inline selectors, fresh login steps, and fixed waits. Each guess is harmless on its own, but together they create a second, parallel way of writing tests inside the same repository.</span></p>
<p dir="ltr"><span>Review rarely catches this, because reviewers ask whether a test makes sense, not whether a helper for the same job already exists three folders away.</span></p>
<h2 dir="ltr"><span>How Can You Spot Generated Tests That Won't Last?</span></h2>
<p dir="ltr"><span>Poor fit shows up in pull requests long before it shows up in a broken build, usually as one of these patterns.</span></p>
<ul>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>New Helpers That Copy Old Ones.</span><span> A pull request adds its own "log in as an admin" steps when the suite already has shared setup for that.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Selectors Tied To Layout.</span><span> A test finds a button by its position on the page, such as "the button inside the third box," so it breaks as soon as a designer moves things around. Playwright's locator guidance</span><span> recommends finding elements the way a user would, by their role or label, instead.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Fixed Waits.</span><span> A test pauses for a set time, such as three seconds, and hopes the page is ready, which makes it slow and still unreliable. Modern frameworks wait for elements automatically </span><span>before acting on them.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Early Retries And Skips.</span><span> A generated test that picks up a retry setting or a skip within weeks of merging is a strong sign of poor fit.</span></p>
</li>
</ul>
<p dir="ltr"><span>A useful measure is the share of generated tests that needed edits, retries, or skips within two months of merging.</span></p>
<h2 dir="ltr"><span>What Does Poor Fit Cost?</span></h2>
<p dir="ltr"><span>The first cost is maintenance that grows with every copy. When cart selectors live in one page object, a redesign means one fix; when they live in twenty tests, it means twenty. For an engineering leader, that shows up as release time spent repairing tests instead of adding coverage.</span></p>
<p dir="ltr"><span>The second is flakiness, meaning a test that passes and fails on the same code. <span>Google reported </span></span><span>that about 1.5% of its test runs produced flaky results and that almost 16% of its tests showed some level of flakiness. An <span>empirical study of flaky tests</span></span><span> found that asynchronous waiting was the most common root cause, which is exactly the weakness fixed waits and fragile selectors invite.</span></p>
<p dir="ltr"><span>The third is trust. Once red builds are often noise, people rerun failures instead of reading them, and real defects slip through.</span></p>
<p dir="ltr"><span>Poor fit also makes later change harder. A framework upgrade or migration has to deal with every one-off pattern the suite has collected.</span></p>
<h2 dir="ltr"><span>What Changes During a Framework Migration?</span></h2>
<p dir="ltr"><span>Context matters most when a suite moves between frameworks, such as from Selenium to Playwright. A line-by-line translation copies old habits, including fixed waits the new framework no longer needs.</span></p>
<p dir="ltr"><span>A safer order is to map the old helpers and page objects to new ones first, then migrate tests onto that shared layer. Run old and new suites side by side for a few release cycles, and retire the old one only when the new one catches the same failures.</span></p>
<h2 dir="ltr"><span>How Should You Evaluate AI-Driven Quality Engineering Services?</span></h2>
<p dir="ltr"><span>Whether the job is a migration or new coverage, the same questions apply when you weigh an outside provider, a commercial tool, or a model your own team runs.</span></p>
<ol>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>What context does generation see?</span><span> Find out whether it reads your existing helpers, fixtures, page objects, and conventions, or only the application and a prompt. If you run generation yourself, keep a short testing style guide and helper list in the repository and include both in every request.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Who checks fit before merge?</span><span> Generated tests need a reviewer who knows the suite and asks one standing question: does this reuse what we already have?</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Can automated checks catch the obvious problems?</span><span> Lint rules for tests, such as those in eslint-plugin-playwright</span><span>, can flag fixed waits and weak assertions before a person looks.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Are new tests run repeatedly before merge?</span><span> Running each new test several times, for example with Playwright's repeat option</span><span>, exposes flakiness while it is still cheap to fix.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>How is maintenance handled?</span><span> Ask who updates tests when the UI or an API changes, and who checks those updates.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Where does your code go?</span><span> Ask whether source code or test data is sent to external models, and whether it is used for training.</span></p>
</li>
<li dir="ltr" aria-level="1">
<p dir="ltr" role="presentation"><span>Who owns the output?</span><span> Tests should be committed to your repository, in your framework and language, so they keep running if the tool or provider changes.</span></p>
</li>
</ol>
<h2 dir="ltr"><span>What Are the Limits and Tradeoffs?</span></h2>
<p dir="ltr"><span>Giving generation enough context takes work, because someone has to write down the conventions and keep the helper list current.</span></p>
<p dir="ltr"><span>Fit is not the same as strength: a test can reuse every helper and still check the wrong thing, so review for intent stays necessary.</span></p>
<p dir="ltr"><span>Repeat runs and lint checks add pipeline time, so limit them to new and changed tests.</span></p>
<p dir="ltr"><span>Finally, generation copies the codebase it learns from, so if the existing framework is inconsistent, a well-informed model may spread that inconsistency faster. Sometimes the right first step is cleaning up the framework itself.</span></p>
<h2 dir="ltr"><span>How QASource Approaches This</span></h2>
<p dir="ltr"><span>Several checklist questions map to how QASource delivers this work. On context, test design, automation, and maintenance are generated by QASource's internal platform, which works from a client's requirements, code diffs, and defect history and matches the framework a team already uses. On review, a QASource engineer checks every generated case and script for correctness and intent before it is committed.</span></p>
<p dir="ltr"><span>On maintenance, affected scripts are updated and re-verified when UI or API drift is detected, and duplicate tests are consolidated. On data, no client data is used to train or prompt external models. On ownership, every script is committed to the client's repository. QASource also used this internal platform for its own Selenium to Playwright migration, and a scoped assessment </span><span>includes a generated-and-verified sample suite for one service.</span></p>]]> </content:encoded>
</item>

</channel>
</rss>