<?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: César Beas Suárez</title>
    <description>The latest articles on DEV Community by César Beas Suárez (@cesarbeassuarez).</description>
    <link>https://dev.to/cesarbeassuarez</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%2F3681892%2F97a2b6f1-9dcc-4f8b-b364-d5c5f4ce4ca5.jpeg</url>
      <title>DEV Community: César Beas Suárez</title>
      <link>https://dev.to/cesarbeassuarez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cesarbeassuarez"/>
    <language>en</language>
    <item>
      <title>How I reported 37% of my team's bugs over 4 years in ERP QA Automation (it wasn't luck)</title>
      <dc:creator>César Beas Suárez</dc:creator>
      <pubDate>Thu, 19 Feb 2026 17:50:08 +0000</pubDate>
      <link>https://dev.to/cesarbeassuarez/how-i-reported-37-of-my-teams-bugs-over-4-years-in-erp-qa-automation-it-wasnt-luck-1i1b</link>
      <guid>https://dev.to/cesarbeassuarez/how-i-reported-37-of-my-teams-bugs-over-4-years-in-erp-qa-automation-it-wasnt-luck-1i1b</guid>
      <description>&lt;p&gt;In 4 years doing QA Automation for an enterprise ERP, I reported approximately +450 bugs — roughly &lt;strong&gt;37% of all bugs&lt;/strong&gt; found by a team of 4-5 people.&lt;/p&gt;

&lt;p&gt;It wasn't talent. It was a system.&lt;/p&gt;

&lt;p&gt;Here's the approach I used, with concrete technical examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  The context: an ERP where bugs cost real money
&lt;/h2&gt;

&lt;p&gt;This isn't a web app with a "deploy and fix" cycle. An ERP handles invoicing, purchases, stock, accounting — operations that affect real businesses with real money. A bug in an invoice calculation can mean fiscal problems for a client. A stock bug can mean wrong inventory for months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The cost of a missed bug here isn't a bad UX — it's a financial loss for the end user.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This changes how you think about testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The mindset shift: hunter, not executor
&lt;/h2&gt;

&lt;p&gt;Most QA engineers run tests. They follow happy paths, mark them green, and move on. I decided to think differently:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of asking "does this feature work?", I started asking "where is this most likely to break, and what's the business cost if it does?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This led me to three key decisions:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Prioritize by business risk, not by module assignment
&lt;/h3&gt;

&lt;p&gt;While others distributed work evenly across modules, I focused on the highest-risk areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Invoicing&lt;/strong&gt; (electronic invoicing, credit invoices, fiscal validation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sales circuits&lt;/strong&gt; (quotes → orders → delivery notes → invoices)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purchase circuits&lt;/strong&gt; (purchase orders → receipts → purchase invoices)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accounting operations&lt;/strong&gt; (current accounts, payment plans)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These modules have the highest density of business rules and the most complex edge cases. One bug here equals ten bugs in a settings screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Design edge cases, not just happy paths
&lt;/h3&gt;

&lt;p&gt;For every feature, I asked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What happens with &lt;strong&gt;negative quantities&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;What happens when a &lt;strong&gt;referenced document is deleted&lt;/strong&gt; mid-process?&lt;/li&gt;
&lt;li&gt;What if the user changes the &lt;strong&gt;tax condition&lt;/strong&gt; after creating a document?&lt;/li&gt;
&lt;li&gt;What happens with &lt;strong&gt;rounding&lt;/strong&gt; on multi-line invoices with mixed tax rates?&lt;/li&gt;
&lt;li&gt;What if the &lt;strong&gt;date crosses midnight&lt;/strong&gt; during an automated test run?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: I discovered that our automated tests were producing false negatives because execution started before midnight and finished after — the system date changed mid-run, causing date validation failures. The fix: calculating expected execution time and scheduling runs to avoid the boundary.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Optimize the framework, not just the tests
&lt;/h3&gt;

&lt;p&gt;I didn't just write tests — I improved the infrastructure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Optimized &lt;code&gt;Fn_ValidarGrilla&lt;/code&gt;&lt;/strong&gt; (grid validation function): reduced execution from 6 to 4 hours (33% improvement) by fixing how it iterated through grid cells&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Created &lt;code&gt;Fn_BuscarEnCombo&lt;/code&gt;&lt;/strong&gt;: a universal function to search combo boxes that replaced dozens of module-specific implementations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built a shared repository&lt;/strong&gt; for validation Excel files — eliminating manual sync errors that caused false failures across test machines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implemented QRes.exe&lt;/strong&gt; for standardized screen resolution — test machines had different resolutions causing element location failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these wasn't just a "nice to have" — they unblocked the entire team.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable truth: 21% cancellation rate
&lt;/h2&gt;

&lt;p&gt;Not everything was perfect. Approximately &lt;strong&gt;21% of my reported bugs were cancelled&lt;/strong&gt; — meaning they weren't actually bugs, or couldn't be reproduced, or were duplicates.&lt;/p&gt;

&lt;p&gt;But here's what matters: &lt;strong&gt;each cancellation taught me something&lt;/strong&gt;. Every cancelled bug meant I needed to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve my test data&lt;/li&gt;
&lt;li&gt;Refine my expected results&lt;/li&gt;
&lt;li&gt;Add better validations to the framework&lt;/li&gt;
&lt;li&gt;Understand the business rule more deeply&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cancellation rate went down over time as my system improved.&lt;/p&gt;

&lt;h2&gt;
  
  
  When I stopped automating (on purpose)
&lt;/h2&gt;

&lt;p&gt;One of my most impactful decisions was &lt;strong&gt;choosing to test manually&lt;/strong&gt; during critical release periods.&lt;/p&gt;

&lt;p&gt;When the team was pushing a major version and development velocity was high, automated tests couldn't keep up with the changes. Instead of fighting the tool, I switched to exploratory manual testing for 2.5 weeks, reporting 3-4 urgent bugs daily that were reaching clients.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowing when to drop the tool is as important as knowing how to use it.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The system, summarized
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. PRIORITIZE   → Target high-risk business modules
2. THINK        → Design edge cases before writing any test
3. OPTIMIZE     → Fix infrastructure problems that multiply impact
4. ADAPT        → Switch methods when the context demands it
5. LEARN        → Use every failure (cancelled bugs, false negatives) 
                   as feedback to improve the system
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;The real impact wasn't the number. It was &lt;strong&gt;reducing the bugs that reached clients&lt;/strong&gt;. Every bug caught in QA is a bug that doesn't become a support ticket, a fiscal problem, or a broken business process.&lt;/p&gt;

&lt;p&gt;Quality testing isn't about finding bugs. It's about thinking strategically about &lt;strong&gt;where to look&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I wrote a more detailed version (in Spanish) on my blog: &lt;a href="https://cesarbeassuarez.dev/qa-automation-erp-impacto-sistema/" rel="noopener noreferrer"&gt;cesarbeassuarez.dev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm building my QA automation lab in public — frameworks, decisions, and learnings documented as they happen. Follow the process if you're interested.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your QA strategy is based on coverage percentages instead of business risk, you're optimizing the wrong metric.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>testing</category>
      <category>automation</category>
      <category>qa</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Building my QA automation lab in public</title>
      <dc:creator>César Beas Suárez</dc:creator>
      <pubDate>Tue, 06 Jan 2026 22:22:48 +0000</pubDate>
      <link>https://dev.to/cesarbeassuarez/building-my-qa-automation-lab-in-public-4f8g</link>
      <guid>https://dev.to/cesarbeassuarez/building-my-qa-automation-lab-in-public-4f8g</guid>
      <description>&lt;p&gt;I’m a QA Automation Engineer from Argentina.&lt;/p&gt;

&lt;p&gt;I started building a personal QA automation lab and decided to document the process in public.&lt;/p&gt;

&lt;p&gt;I’m writing short logs about automation, testing, and building things slowly.&lt;/p&gt;

&lt;p&gt;Full notes and context live here:&lt;br&gt;
&lt;a href="https://cesarbeassuarez.dev" rel="noopener noreferrer"&gt;https://cesarbeassuarez.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>automation</category>
      <category>qa</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
