<?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: keyur shah</title>
    <description>The latest articles on DEV Community by keyur shah (@keyur_shah_f3f68b0d63db96).</description>
    <link>https://dev.to/keyur_shah_f3f68b0d63db96</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%2F4142215%2F2b8b6228-3989-4692-be41-76d712788785.png</url>
      <title>DEV Community: keyur shah</title>
      <link>https://dev.to/keyur_shah_f3f68b0d63db96</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keyur_shah_f3f68b0d63db96"/>
    <language>en</language>
    <item>
      <title>Definition of Ready vs Done: The checklists that keep your sprint clean</title>
      <dc:creator>keyur shah</dc:creator>
      <pubDate>Mon, 05 Oct 2026 04:57:34 +0000</pubDate>
      <link>https://dev.to/keyur_shah_f3f68b0d63db96/definition-of-ready-vs-done-the-checklists-that-keep-your-sprint-clean-4626</link>
      <guid>https://dev.to/keyur_shah_f3f68b0d63db96/definition-of-ready-vs-done-the-checklists-that-keep-your-sprint-clean-4626</guid>
      <description>&lt;p&gt;In agile teams the terms “Definition of Ready” (DoR) and “Definition of Done” (DoD) are often mentioned together, but they serve distinct purposes. DoR is the gate that lets a story into a sprint; DoD is the gate that lets a story out. Treating them as separate, well‑maintained checklists prevents half‑baked work from contaminating the flow and keeps quality predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Definition of Ready
&lt;/h2&gt;

&lt;p&gt;A story is &lt;strong&gt;estimable&lt;/strong&gt; when the team understands the scope well enough to size it. This means the description is clear, dependencies are identified, and any required designs or data are available. Without this clarity, the team spends sprint time debating what the work actually entails.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Acceptance criteria set&lt;/strong&gt; means that the product owner has written clear, testable conditions that define when the story is complete. These criteria act as the contract between the PO and the development team and give the QA group a concrete basis for verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  Definition of Done
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Code reviewed &amp;amp; merged&lt;/strong&gt; ensures that every change meets the team’s quality bar. A peer review catches defects early, enforces coding standards, and guarantees that the code is integrated into the main branch without conflicts.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tested and demo‑ready&lt;/strong&gt; requires that QA has passed all acceptance tests and that the increment can be deployed to a staging environment for a stakeholder demo. This eliminates the “it works on my machine” problem and guarantees that the story can be shown to the PO at sprint review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Owns What
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Product Owner owns Ready&lt;/strong&gt;. The PO is responsible for backlog refinement, ensuring that items meet the DoR before sprint planning. This ownership gives the PO authority to pull items back for clarification rather than forcing them into a sprint.  &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Team owns Done&lt;/strong&gt;. The development team collectively agrees on a DoD that applies to every story. This shared agreement avoids the “done” meaning different things to developers, testers, and the PO.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fewer mid‑sprint surprises&lt;/strong&gt;: A solid DoR stops ambiguous or incomplete stories from entering the sprint, reducing the need for re‑planning or emergency clarification.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consistent quality bar&lt;/strong&gt;: A shared DoD ensures that “done” has a single definition across the team, preventing the delivery of work that still needs rework after the sprint ends.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do / Avoid
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review both checklists during the retrospective, not just once at planning.
&lt;/li&gt;
&lt;li&gt;Keep DoR light; it is a gate, not an essay.
&lt;/li&gt;
&lt;li&gt;Make DoD visible on the board so everyone can see the quality expectations at a glance.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Avoid&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t let the PO and developers disagree on “done” mid‑sprint. Resolve differences before the sprint starts.
&lt;/li&gt;
&lt;li&gt;Don’t skip DoR to meet sprint‑planning deadlines; a rushed entry creates hidden work later.
&lt;/li&gt;
&lt;li&gt;Don’t treat DoD as fixed forever; revisit it when the team’s capabilities or product needs change.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A clear, shared understanding of Ready and Done keeps the sprint predictable, the backlog healthy, and the product moving forward.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://topmate.io/keyshah" rel="noopener noreferrer"&gt;Book a call&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agile</category>
      <category>scrum</category>
      <category>projectmanagement</category>
      <category>testing</category>
    </item>
    <item>
      <title>Equivalence Partitioning &amp; Boundary Value Analysis: Cutting Test Cases Without Cutting Coverage</title>
      <dc:creator>keyur shah</dc:creator>
      <pubDate>Sun, 04 Oct 2026 06:54:25 +0000</pubDate>
      <link>https://dev.to/keyur_shah_f3f68b0d63db96/equivalence-partitioning-boundary-value-analysis-cutting-test-cases-without-cutting-coverage-38cb</link>
      <guid>https://dev.to/keyur_shah_f3f68b0d63db96/equivalence-partitioning-boundary-value-analysis-cutting-test-cases-without-cutting-coverage-38cb</guid>
      <description>&lt;p&gt;Testing teams often drown in an ocean of possible inputs. Two classic techniques—Equivalence Partitioning (EP) and Boundary Value Analysis (BVA)—let you pick representative values that still exercise every logical path. Below is a quick guide to applying them together, with a concrete example and practical do‑and‑avoid tips.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is EP
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Split input into classes&lt;/strong&gt; – Group inputs that should behave the same way. For a numeric field, any value below the lower limit, any value inside the allowed range, and any value above the upper limit form separate equivalence classes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test one value per class&lt;/strong&gt; – One representative value stands in for the whole group. If the class is “valid”, any value inside it should pass; if the class is “invalid”, any value should trigger the same error handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is BVA
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Test the edges&lt;/strong&gt; – Bugs tend to cluster at boundaries rather than in the middle of a range. Checking the limits reveals off‑by‑one errors, rounding problems, and incorrect comparison operators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Min, min+1, max, max‑1&lt;/strong&gt; – The four values that catch most boundary defects. For an inclusive range &lt;code&gt;[min, max]&lt;/code&gt;, test the exact limits and the values just inside the limits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Worked Example
&lt;/h2&gt;

&lt;p&gt;Imagine a form field that accepts ages from 18 to 60 inclusive.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Equivalence class&lt;/th&gt;
&lt;th&gt;Representative test value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;&amp;lt; 18&lt;/code&gt; (invalid)&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;18–60&lt;/code&gt; (valid)&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;&amp;gt; 60&lt;/code&gt; (invalid)&lt;/td&gt;
&lt;td&gt;61&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Applying BVA adds the four boundary values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Min&lt;/strong&gt;: 18 – should be accepted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Min + 1&lt;/strong&gt;: 19 – also accepted, confirming the lower edge works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max&lt;/strong&gt;: 60 – should be accepted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max ‑ 1&lt;/strong&gt;: 59 – accepted, confirming the upper edge works.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, the test set becomes {17, 18, 19, 30, 59, 60, 61}. It covers all valid and invalid partitions while focusing on the most error‑prone points.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where It Fits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use during test design&lt;/strong&gt; – Apply EP and BVA while you are writing test cases, before any code is executed. This front‑loading reduces the number of tests you need to create later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pairs with decision tables&lt;/strong&gt; – When inputs involve combined conditions (e.g., age and membership level), EP defines the partitions for each dimension, and decision tables help you map the cross‑product of those partitions into a manageable set of test scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Do / Avoid
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Document which class each test case represents, so reviewers can see the rationale behind every value.&lt;/li&gt;
&lt;li&gt;Combine EP with BVA for tighter coverage; the boundary tests are simply the edge members of each equivalence class.&lt;/li&gt;
&lt;li&gt;Apply the techniques to both valid and invalid input ranges to verify positive and negative paths.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Avoid&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t test every value in a class; one well‑chosen representative is enough.&lt;/li&gt;
&lt;li&gt;Don’t skip invalid partitions; they are essential for confirming robust error handling.&lt;/li&gt;
&lt;li&gt;Don’t treat boundaries as optional edge cases; they are the most likely places for defects.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Use EP to slice the input space and BVA to probe its edges—together they give you maximum confidence with minimal test effort.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;a href="https://topmate.io/keyshah" rel="noopener noreferrer"&gt;Book a call&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>agile</category>
      <category>projectmanagement</category>
    </item>
    <item>
      <title>The three hidden pitfalls that sabotage every API test 🧠</title>
      <dc:creator>keyur shah</dc:creator>
      <pubDate>Fri, 25 Sep 2026 16:33:47 +0000</pubDate>
      <link>https://dev.to/keyur_shah_f3f68b0d63db96/the-three-hidden-pitfalls-that-sabotage-every-api-test-35ao</link>
      <guid>https://dev.to/keyur_shah_f3f68b0d63db96/the-three-hidden-pitfalls-that-sabotage-every-api-test-35ao</guid>
      <description>&lt;p&gt;The three hidden pitfalls that sabotage every API test 🧠&lt;/p&gt;

&lt;p&gt;Mastering contract validation, data hygiene, and flexible environments eliminates flaky tests and uncovers silent bugs&lt;/p&gt;

&lt;p&gt;→ Validate contract before any functional test&lt;br&gt;&lt;br&gt;
→ Use environment variables to switch endpoints&lt;/p&gt;

&lt;p&gt;❗ A solid API test foundation saves weeks of debugging later.&lt;/p&gt;

&lt;p&gt;❓ Do you lock contracts in your test suite, yes or no?&lt;/p&gt;

&lt;p&gt;🔖 Save this one — you’ll want it again next time this comes up.&lt;/p&gt;

&lt;h1&gt;
  
  
  Agile #Scrum #ProjectManagement #Testing #APITesting
&lt;/h1&gt;

&lt;p&gt;Keyur Shah (Project Manager | Scrum Master (CSM, PSM) | Agile Delivery | EX QA LEAD and AI &amp;amp; Automation Enthusiast)&lt;/p&gt;

</description>
      <category>agile</category>
      <category>scrum</category>
      <category>projectmanagement</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
