<?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: QA Debug Lab</title>
    <description>The latest articles on DEV Community by QA Debug Lab (@qadebuglab).</description>
    <link>https://dev.to/qadebuglab</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%2F4203209%2Fa7c4c53e-8f0c-4bce-8bfe-1f5977199f6a.png</url>
      <title>DEV Community: QA Debug Lab</title>
      <link>https://dev.to/qadebuglab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qadebuglab"/>
    <language>en</language>
    <item>
      <title>I turned the most common causes of flaky tests into 3 debugging exercises. Free sample inside.</title>
      <dc:creator>QA Debug Lab</dc:creator>
      <pubDate>Fri, 23 Oct 2026 18:13:13 +0000</pubDate>
      <link>https://dev.to/qadebuglab/i-turned-the-most-common-causes-of-flaky-tests-into-3-debugging-exercises-free-sample-inside-31aj</link>
      <guid>https://dev.to/qadebuglab/i-turned-the-most-common-causes-of-flaky-tests-into-3-debugging-exercises-free-sample-inside-31aj</guid>
      <description>&lt;p&gt;I've done a lot of QA automation interviews on both sides of the table. The best signal I ever got from a candidate was not a Q&amp;amp;A answer. It was watching them open a broken suite and work out why it was broken.&lt;/p&gt;

&lt;p&gt;So I built a few small practice projects for that. Each one is a tiny app plus a Playwright suite with several seeded problems. Some are test bugs, some are config bugs, and some are real bugs in the app that the tests were right about. Part of the exercise is deciding which is which.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few of the seeded problems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A test that passes forever because it calls &lt;code&gt;/account&lt;/code&gt; instead of &lt;code&gt;/accounts&lt;/code&gt; and asserts "status is not 200"&lt;/li&gt;
&lt;li&gt;A coupon test that passes every day until the coupon expires, then fails with no code change&lt;/li&gt;
&lt;li&gt;A date check that breaks every evening in New York, because the test uses local time and the API uses UTC&lt;/li&gt;
&lt;li&gt;A leftover &lt;code&gt;test.only&lt;/code&gt;, so CI is green and runs exactly one test&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;waitForResponse&lt;/code&gt; registered after the click, so the delete test races&lt;/li&gt;
&lt;li&gt;Two same-key requests that both move money, because the idempotency key is saved after the first &lt;code&gt;await&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this format
&lt;/h2&gt;

&lt;p&gt;Interview Q&amp;amp;A lists test recall. A broken suite tests judgment: reading a failure, forming a hypothesis, and proving it. A green test that cannot fail is worse than a red one, and spotting those is a skill you can practice.&lt;/p&gt;

&lt;p&gt;You can use these on your own, or as a take-home or live pairing exercise when you interview candidates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try the first one free
&lt;/h2&gt;

&lt;p&gt;Exercise 1 is free. It is a small task-manager app with a Playwright suite that has seeded problems. There is no answer key in the free pack, so you work it out yourself: &lt;a href="https://qadebuglab.gumroad.com/l/zmtsv" rel="noopener noreferrer"&gt;download the free sample&lt;/a&gt;. Gumroad asks for an email at checkout.&lt;/p&gt;

&lt;p&gt;I'd like to know if the difficulty is right.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two questions for you
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What's the nastiest seeded bug you've seen, or would put in an exercise like this?&lt;/li&gt;
&lt;li&gt;Would you want this for yourself, for interviewing candidates, or both?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I'm the author of these exercises, and the full set (3 projects, 24 bugs, solutions and rubrics) is a paid kit under the QA Debug Lab name.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>qa</category>
      <category>testing</category>
      <category>playwright</category>
      <category>career</category>
    </item>
  </channel>
</rss>
