<?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: Liudas</title>
    <description>The latest articles on DEV Community by Liudas (@liudasjan).</description>
    <link>https://dev.to/liudasjan</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%2F3690294%2F310fa4b4-8338-49ee-9a08-c9cd4beff0e8.jpg</url>
      <title>DEV Community: Liudas</title>
      <link>https://dev.to/liudasjan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/liudasjan"/>
    <language>en</language>
    <item>
      <title>Tusk Drift vs Rentgen: Traffic Replay vs Early API Discovery</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Tue, 04 Aug 2026 06:00:59 +0000</pubDate>
      <link>https://dev.to/liudasjan/tusk-drift-vs-rentgen-traffic-replay-vs-early-api-discovery-iol</link>
      <guid>https://dev.to/liudasjan/tusk-drift-vs-rentgen-traffic-replay-vs-early-api-discovery-iol</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6j7gi51nh0zkbwjxhqug.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6j7gi51nh0zkbwjxhqug.jpeg" alt=" " width="799" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;API quality is improving rapidly, but different tools solve different problems.&lt;/p&gt;

&lt;p&gt;Recently I looked at Tusk Drift, and I think it introduces an interesting idea: recording real production traffic and replaying it as regression tests. At first glance it may seem similar to Rentgen, but after looking closer, the two tools actually sit at different stages of the API lifecycle.&lt;/p&gt;

&lt;p&gt;They complement each other rather than compete.&lt;br&gt;
Tusk Drift starts with production traffic&lt;br&gt;
Tusk Drift records real API requests generated by users or integrations and later replays them as regression tests.&lt;br&gt;
The goal is straightforward: Did today’s code change break behavior that already existed yesterday?&lt;br&gt;
This is extremely valuable because production traffic often exercises scenarios nobody thought to automate manually. Instead of maintaining hundreds of regression tests yourself, you can reuse what users are already doing.&lt;br&gt;
For mature systems, that’s a powerful safety net.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rentgen starts with a single request
&lt;/h2&gt;

&lt;p&gt;Rentgen works much earlier.&lt;br&gt;
It doesn’t need production traffic.&lt;br&gt;
It doesn’t need historical traces.&lt;br&gt;
It doesn’t even need an existing test suite.&lt;br&gt;
It starts from one working cURL request (or a request imported from Postman, Swagger, logs, or another client).&lt;br&gt;
From there Rentgen automatically generates hundreds of API checks by mutating that request:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing fields&lt;/li&gt;
&lt;li&gt;invalid data types&lt;/li&gt;
&lt;li&gt;boundary values&lt;/li&gt;
&lt;li&gt;oversized payloads&lt;/li&gt;
&lt;li&gt;malformed JSON&lt;/li&gt;
&lt;li&gt;unsupported HTTP methods&lt;/li&gt;
&lt;li&gt;invalid enums&lt;/li&gt;
&lt;li&gt;whitespace problems&lt;/li&gt;
&lt;li&gt;authentication scenarios&lt;/li&gt;
&lt;li&gt;protocol validation
The question Rentgen asks is completely different: How does this endpoint behave when the input stops being clean?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Different questions
&lt;/h2&gt;

&lt;p&gt;Tusk Drift asks: Has behavior changed?&lt;br&gt;
Rentgen asks: Is behavior robust?&lt;br&gt;
Those are not the same thing.&lt;br&gt;
An API can replay production traffic perfectly while still crashing on unexpected input.&lt;br&gt;
Likewise, an API may survive every malformed request Rentgen generates but still introduce regressions after future code changes.&lt;br&gt;
Both are important.&lt;/p&gt;

&lt;h2&gt;
  
  
  Different timing
&lt;/h2&gt;

&lt;p&gt;This is probably the biggest distinction.&lt;br&gt;
Tusk Drift&lt;br&gt;
Works best when:&lt;br&gt;
the service already has users&lt;br&gt;
production traffic exists&lt;br&gt;
behavior is worth protecting&lt;br&gt;
Rentgen&lt;br&gt;
Works even if:&lt;br&gt;
the endpoint was created five minutes ago&lt;br&gt;
there are no users&lt;br&gt;
there is no production traffic&lt;br&gt;
there is no regression suite&lt;br&gt;
One working request is enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical workflow
&lt;/h2&gt;

&lt;p&gt;These tools actually fit together quite naturally.&lt;br&gt;
Build a new endpoint.&lt;br&gt;
Run Rentgen locally from a single cURL request.&lt;br&gt;
Fix validation gaps, unexpected 500 errors, inconsistent responses, and weak input handling.&lt;br&gt;
Deploy.&lt;br&gt;
Let users generate real traffic.&lt;br&gt;
Use Tusk Drift to replay that traffic as regression tests.&lt;br&gt;
One discovers problems before release.&lt;br&gt;
The other makes sure they never silently return.&lt;/p&gt;

&lt;h2&gt;
  
  
  No replacement story
&lt;/h2&gt;

&lt;p&gt;I don’t see these tools replacing each other.&lt;br&gt;
Tusk Drift is not trying to be an API mutation engine.&lt;br&gt;
Rentgen is not trying to record and replay production traffic.&lt;br&gt;
They’re solving different problems at different moments in the software lifecycle.&lt;br&gt;
That’s why comparing them is interesting. Not because one wins. Because together they cover more of the API quality journey.&lt;/p&gt;

&lt;p&gt;The complete comparison, including diagrams and examples, is available here: &lt;a href="https://rentgen.io/api-stories/Tusk-Drift-and-Rentgen-replaying-real-traffic-vs-breaking-one-request-early.html" rel="noopener noreferrer"&gt;https://rentgen.io/api-stories/Tusk-Drift-and-Rentgen-replaying-real-traffic-vs-breaking-one-request-early.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rentgen</category>
      <category>tuskdrift</category>
      <category>apitesting</category>
      <category>api</category>
    </item>
    <item>
      <title>Apigee and Rentgen: API Management Is Not API Testing</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Wed, 29 Jul 2026 17:41:25 +0000</pubDate>
      <link>https://dev.to/liudasjan/apigee-and-rentgen-api-management-is-not-api-testing-3p54</link>
      <guid>https://dev.to/liudasjan/apigee-and-rentgen-api-management-is-not-api-testing-3p54</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6x6ybzlo62tcd2r2od3.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6x6ybzlo62tcd2r2od3.jpg" alt=" " width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you work with APIs, you've probably heard of Apigee. You may also have come across Rentgen. Since both tools operate in the API space, it's easy to assume they solve similar problems. They don't.&lt;/p&gt;

&lt;p&gt;They work at different layers of the API lifecycle.&lt;/p&gt;

&lt;p&gt;Apigee manages APIs. Apigee is an API management platform. It helps organisations expose, secure, monitor and govern APIs at scale.&lt;/p&gt;

&lt;p&gt;Typical responsibilities include:&lt;/p&gt;

&lt;p&gt;API Gateway&lt;br&gt;
Authentication &amp;amp; Authorization&lt;br&gt;
Rate limiting&lt;br&gt;
Traffic management&lt;br&gt;
Policies&lt;br&gt;
Analytics&lt;br&gt;
Developer portal&lt;br&gt;
API product management&lt;/p&gt;

&lt;p&gt;When your APIs become products consumed by customers, partners or internal teams, this layer becomes essential.&lt;/p&gt;

&lt;p&gt;Rentgen tests API behaviour. Rentgen starts with a single working cURL request. Instead of managing traffic, it asks a different question: How does this endpoint behave when the input is no longer perfect?&lt;/p&gt;

&lt;p&gt;It automatically generates request variations such as:&lt;/p&gt;

&lt;p&gt;Missing required fields&lt;br&gt;
Invalid data types&lt;br&gt;
Boundary values&lt;br&gt;
Empty strings&lt;br&gt;
Malformed JSON&lt;br&gt;
Unsupported HTTP methods&lt;br&gt;
Invalid headers&lt;/p&gt;

&lt;p&gt;The goal isn't automation. The goal is understanding endpoint behaviour before automation begins. Different layers.&lt;/p&gt;

&lt;p&gt;One of the biggest misconceptions is believing that an API gateway somehow guarantees API quality. It doesn't.&lt;/p&gt;

&lt;p&gt;A gateway can enforce authentication, quotas and routing, while the backend may still:&lt;/p&gt;

&lt;p&gt;return unexpected 500 errors&lt;br&gt;
accept invalid values&lt;br&gt;
expose inconsistent validation&lt;br&gt;
produce confusing error responses&lt;/p&gt;

&lt;p&gt;These are implementation problems, not infrastructure problems. That's where endpoint-level testing becomes valuable.&lt;/p&gt;

&lt;p&gt;Rather than choosing one tool over the other, they fit naturally into different stages of API development.&lt;/p&gt;

&lt;p&gt;Build the endpoint.&lt;br&gt;
Test its behaviour with Rentgen.&lt;br&gt;
Fix validation and reliability issues.&lt;br&gt;
Publish and manage the API with Apigee.&lt;/p&gt;

&lt;p&gt;One focuses on implementation quality. The other focuses on operating APIs at scale. Both are important.&lt;/p&gt;

&lt;p&gt;If you'd like the full comparison with more examples and discussion, you can read the original article here: &lt;a href="https://rentgen.io/api-stories/Apigee-and-Rentgen-managing-API-traffic-is-not-same-as-testing-API-behavior.html" rel="noopener noreferrer"&gt;https://rentgen.io/api-stories/Apigee-and-Rentgen-managing-API-traffic-is-not-same-as-testing-API-behavior.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>rentgen</category>
      <category>aba</category>
      <category>qa</category>
    </item>
    <item>
      <title>API testing starts too late</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Tue, 28 Jul 2026 04:01:29 +0000</pubDate>
      <link>https://dev.to/liudasjan/api-testing-starts-too-late-5al9</link>
      <guid>https://dev.to/liudasjan/api-testing-starts-too-late-5al9</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frh4553atjjmpl0c5puau.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frh4553atjjmpl0c5puau.jpeg" alt=" " width="799" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A lot of API testing still begins the same way: send one valid request, get a 200 back, and move on. The problem is that a single successful response proves almost nothing about how the API behaves when its assumptions are disturbed.&lt;/p&gt;

&lt;p&gt;It does not tell you what happens with malformed input, boundary values, missing authentication, oversized payloads, unsupported methods, or inconsistent protocol behavior. And by the time these things are checked properly, teams are often already deep into writing and maintaining full automation suites.&lt;/p&gt;

&lt;p&gt;That gap is what I call &lt;strong&gt;Automation Before Automation (ABA)&lt;/strong&gt;: an early discovery phase that happens after a request first works, but before a maintainable regression model exists.&lt;/p&gt;

&lt;p&gt;For APIs, this means taking one known-good request and systematically challenging it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;invalid values&lt;/li&gt;
&lt;li&gt;boundary conditions&lt;/li&gt;
&lt;li&gt;missing fields&lt;/li&gt;
&lt;li&gt;malformed structures&lt;/li&gt;
&lt;li&gt;protocol edge cases&lt;/li&gt;
&lt;li&gt;security hygiene checks&lt;/li&gt;
&lt;li&gt;early performance signals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to replace proper automation. The goal is to generate &lt;strong&gt;broad, reviewable evidence&lt;/strong&gt; quickly enough to show how the API actually behaves before you invest in long-term tests.&lt;/p&gt;

&lt;p&gt;That is the idea behind &lt;strong&gt;Rentgen&lt;/strong&gt;: a deterministic, local-first API testing tool that expands one working request into structured mutations and protocol checks, then records what the system really does.&lt;/p&gt;

&lt;p&gt;It is not meant to prove business correctness or replace domain-specific tests. It is meant to expose validation gaps, protocol inconsistencies, weak error handling, and other early signals that teams often discover too late.&lt;/p&gt;

&lt;p&gt;If that idea resonates, I wrote a full white paper on it here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RENTGEN: Behavior-First API Testing Before Automation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://qaontime.com/research/rentgen-white-paper.html" rel="noopener noreferrer"&gt;https://qaontime.com/research/rentgen-white-paper.html&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>REST-assured and Rentgen: Different Tools, Different Jobs</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Sun, 26 Jul 2026 13:16:06 +0000</pubDate>
      <link>https://dev.to/liudasjan/rest-assured-and-rentgen-different-tools-different-jobs-ok0</link>
      <guid>https://dev.to/liudasjan/rest-assured-and-rentgen-different-tools-different-jobs-ok0</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flab4h3qcvy9oigmj53r8.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flab4h3qcvy9oigmj53r8.jpg" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;People often compare REST-assured and Rentgen, but they solve different problems.&lt;/p&gt;

&lt;p&gt;REST-assured is a Java library for building reliable API regression tests. You already know what the API should do, and you automate those expectations.&lt;/p&gt;

&lt;p&gt;Rentgen starts earlier.&lt;/p&gt;

&lt;p&gt;Give it one working cURL request and it explores how the API behaves with missing fields, invalid values, malformed payloads, authentication edge cases, unsupported methods, and more. The goal isn't to replace coded automation, but to discover what is actually worth automating.&lt;/p&gt;

&lt;p&gt;A workflow that makes sense:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build the endpoint.&lt;/li&gt;
&lt;li&gt;Run it through Rentgen to understand its real behaviour.&lt;/li&gt;
&lt;li&gt;Fix the obvious issues.&lt;/li&gt;
&lt;li&gt;Capture the important scenarios with REST-assured.&lt;/li&gt;
&lt;li&gt;Run everything in CI/CD.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Discovery first. Regression second.&lt;/p&gt;

&lt;p&gt;Both tools belong in the same API testing workflow—they just solve different problems at different stages.&lt;/p&gt;

&lt;p&gt;You can find the full story here: &lt;a href="https://rentgen.io/api-stories/REST-assured-and-Rentgen-coded-API-tests-and-eality-check-before-them.html" rel="noopener noreferrer"&gt;https://rentgen.io/api-stories/REST-assured-and-Rentgen-coded-API-tests-and-eality-check-before-them.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>restassured</category>
      <category>rentgen</category>
      <category>aba</category>
      <category>api</category>
    </item>
    <item>
      <title>Swagger and Rentgen: Different Tools for Different Questions</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Wed, 15 Jul 2026 03:52:16 +0000</pubDate>
      <link>https://dev.to/liudasjan/swagger-and-rentgen-different-tools-for-different-questions-25ml</link>
      <guid>https://dev.to/liudasjan/swagger-and-rentgen-different-tools-for-different-questions-25ml</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwigkw8m51gu7e46ojf16.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwigkw8m51gu7e46ojf16.jpeg" alt=" " width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;People occasionally ask me whether Rentgen is trying to replace Swagger. &lt;strong&gt;The short answer is no.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In fact, I think Swagger is one of the best things that happened to API development. Without it, many modern APIs would be painful to build and even harder to consume. OpenAPI gives teams a common language. Developers know what they’re building, frontend developers know what to expect, and third parties know how to integrate with the API.&lt;/p&gt;

&lt;p&gt;The problem starts when we assume that because the specification is correct, the implementation must also be correct. Those are two completely different things.&lt;/p&gt;

&lt;p&gt;Swagger describes how the API should behave. The backend is still just code written by humans, and humans make mistakes. A required field might accidentally become optional. Validation might stop working after a refactoring. Invalid JSON might return a 500 instead of a 400. A payload that should be rejected might quietly pass through. None of that makes Swagger bad. It simply isn’t trying to solve that problem.&lt;/p&gt;

&lt;p&gt;This is exactly why I built Rentgen. Rentgen doesn’t read your OpenAPI specification. It doesn’t try to understand your intentions. It starts with a real request, usually copied as cURL from Swagger UI, browser DevTools, Postman, or logs, and asks a different question: &lt;strong&gt;“What happens if this request isn’t perfect?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of sending only the happy path, it starts changing things. Fields disappear. Values become too long. Types become invalid. Payloads become malformed. Authentication changes. Headers disappear. Then it watches how the backend responds. Sometimes nothing interesting happens. Sometimes you discover that the API happily accepts data it shouldn’t. Sometimes you discover that one missing quote crashes an endpoint with a 500.&lt;/p&gt;

&lt;p&gt;Those are not theoretical problems. They’re exactly the kind of bugs I kept finding while testing production systems.&lt;/p&gt;

&lt;p&gt;Over the last twenty years, I’ve noticed something else. Most teams start automation surprisingly late in the process. They write Postman collections, Playwright tests, REST Assured suites, or CI pipelines before they’ve really explored how the API behaves outside the documented scenario.&lt;/p&gt;

&lt;p&gt;That’s the idea behind Automation Before Automation (ABA). Before investing hours or days into automated tests, spend a few minutes understanding the real behaviour of the API. Find the obvious validation problems. Fix them. Then automate.&lt;/p&gt;

&lt;p&gt;The automation you build afterwards is usually better because it’s based on reality instead of assumptions.&lt;/p&gt;

&lt;p&gt;For me, Swagger and Rentgen fit naturally into the same workflow. Swagger helps me understand the contract. I copy a request from Swagger UI, paste it into Rentgen, and let it explore the implementation. Only after that do I start writing long-term automated tests.&lt;/p&gt;

&lt;p&gt;I don’t see these tools competing with each other. Swagger answers, &lt;strong&gt;“What should this API do?”&lt;/strong&gt; Rentgen answers, &lt;strong&gt;“What does this API actually do?”&lt;/strong&gt;&lt;br&gt;
Those are different questions, and both deserve an answer.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Automation Before Automation (ABA) — A Missing Phase in Modern Testing?</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Tue, 16 Jun 2026 05:13:19 +0000</pubDate>
      <link>https://dev.to/liudasjan/automation-before-automation-aba-a-missing-phase-in-modern-testing-34g5</link>
      <guid>https://dev.to/liudasjan/automation-before-automation-aba-a-missing-phase-in-modern-testing-34g5</guid>
      <description>&lt;p&gt;Software testing is usually described in two large categories: exploratory testing and automated testing. Exploratory testing is about investigation and discovery. Automated testing is about repeatable verification and regression protection. Both are well established, well documented, and widely practiced.&lt;/p&gt;

&lt;p&gt;In real projects, however, the workflow is rarely that clean.&lt;/p&gt;

&lt;p&gt;After implementing a new endpoint or modifying existing functionality, teams do not immediately start by building a long-term automated regression suite. First, they try to understand how the system actually behaves. They vary inputs, test boundary conditions, send invalid data, alter payload structures, observe status codes, and look for unstable behavior. Increasingly, this is not done purely manually. Teams use fuzzers, mutation tools, schema-driven generators, and AI-assisted test generation to execute hundreds of variations in minutes.&lt;/p&gt;

&lt;p&gt;The purpose of this activity is not regression protection. The generated tests are often temporary and disposable. Their value lies in the information they reveal quickly: weak validation, inconsistent error handling, unexpected 500 responses, protocol inconsistencies, or fragile assumptions in the backend.&lt;/p&gt;

&lt;p&gt;Despite being common, this phase has no widely accepted name. It is often grouped under exploratory testing, even though it involves automated generation and execution. It is also sometimes confused with traditional test automation, even though it does not produce long-term maintainable suites integrated into CI/CD.&lt;/p&gt;

&lt;p&gt;This intermediate layer deserves clearer definition.&lt;/p&gt;

&lt;p&gt;In a recent white paper, I propose the term Automation Before Automation (ABA) to describe this activity. ABA refers to the practice of automatically generating and executing exploratory, validation, robustness, and protocol-level tests before creating and maintaining traditional automated test suites. In short, it is automated exploration before automated verification.&lt;/p&gt;

&lt;p&gt;The distinction matters because the goals are different. Traditional automated testing answers the question: how do we ensure this does not break again? ABA answers a different question: what do we not yet understand about this implementation?&lt;/p&gt;

&lt;p&gt;Automation focuses on protecting known expectations. ABA focuses on exposing unknown behavior. Automation produces confidence over time. ABA produces information quickly.&lt;/p&gt;

&lt;p&gt;With the rise of fuzzing technologies, property-based testing, AI-assisted generation, and automated protocol exploration tools, this intermediate phase is becoming more visible in practice. Yet without a shared vocabulary, it is often undervalued or performed informally. In some cases, teams automate too early, locking in happy-path assumptions before seriously challenging how the system behaves under imperfect input.&lt;/p&gt;

&lt;p&gt;The white paper does not introduce a new testing technique. It attempts to formalize and characterize a testing activity that many teams already perform but rarely define explicitly. By naming and structuring it, we can reason more clearly about when it should happen, what tools belong to it, and how it complements rather than replaces traditional automation.&lt;/p&gt;

&lt;p&gt;If this resonates with how your team works in practice, you may find the full paper useful.&lt;/p&gt;

&lt;p&gt;Automation Before Automation (ABA): An Intermediate Phase in Modern Software Testing - &lt;a href="https://qaontime.com/research/automation-before-automation.html" rel="noopener noreferrer"&gt;https://qaontime.com/research/automation-before-automation.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Zenodo DOI: &lt;a href="https://doi.org/10.5281/zenodo.20720442" rel="noopener noreferrer"&gt;https://doi.org/10.5281/zenodo.20720442&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am particularly interested in perspectives from teams using fuzzing, property-based testing, schema-driven generators, or AI-assisted test generation in early development stages. Is this truly a distinct phase, or simply a reframing of existing practices?&lt;/p&gt;

</description>
      <category>aba</category>
      <category>automationbeforeautomation</category>
      <category>qa</category>
      <category>testing</category>
    </item>
    <item>
      <title>Is the QA profession really disappearing?</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Fri, 12 Jun 2026 12:43:03 +0000</pubDate>
      <link>https://dev.to/liudasjan/is-the-qa-profession-really-disappearing-5gl0</link>
      <guid>https://dev.to/liudasjan/is-the-qa-profession-really-disappearing-5gl0</guid>
      <description>&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%2F6mavwcum732spy2dxwe8.png" 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%2F6mavwcum732spy2dxwe8.png" alt=" " width="800" height="874"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first time I heard that testers would soon become unnecessary was around 2008, when Selenium RC started gaining popularity. The narrative back then was simple: everything will be automated. We will only need people who can write automation. Manual testing would disappear.Eighteen years later, QA is still here.&lt;/p&gt;

&lt;p&gt;Today the conversation has shifted. With the AI boom, the focus is no longer on testers — it is on developers. We are told that programmers will soon be unnecessary because AI can write code. Everyone can now generate software. Within two or three years, most engineering jobs will disappear. After that, humanoid robots will replace the rest.&lt;br&gt;
If that were true, QA would logically disappear even faster. If AI writes the code, surely it can test it too.&lt;/p&gt;

&lt;p&gt;So I asked LinkedIn a simple question: When will AI replace most QA Engineers?&lt;/p&gt;

&lt;p&gt;More than 3,000 people saw the poll. 233 voted. The results were interesting: 68% chose “Never.” Seven percent said within 10 years. Five percent said within 5 years. Ten percent said within 2 years. Three percent believed most QA would be replaced by 2026. I intentionally did not define what “Never” means. Predicting what happens in 1,000 years is pointless. I interpret “Never” as within our professional lifetime — the next 50 to 70 years.&lt;/p&gt;

&lt;p&gt;Now let’s get to the core question.&lt;/p&gt;

&lt;p&gt;Is it theoretically possible for AI to test a product completely autonomously? Let’s imagine we reach superintelligence, and it decides not to eliminate us. It builds products, writes code, and executes tests. Do we still need human testers?&lt;/p&gt;

&lt;p&gt;If we build products for humans, then humans must ultimately evaluate their quality. It really is that simple.&lt;/p&gt;

&lt;p&gt;AI can accelerate testing. It can generate test cases, simulate edge conditions, analyze logs, and improve coverage. It can automate enormous parts of the process. But quality is not only about assertions and passing checks. Quality is about usability, clarity, expectations, frustration, trust, and real-world experience.&lt;/p&gt;

&lt;p&gt;If a system is built for another system, AI can evaluate AI. But if a product is built for people, human judgment remains essential.&lt;/p&gt;

&lt;p&gt;And this leads to a bigger issue.&lt;/p&gt;

&lt;p&gt;For the past four years, we have been told that AI will replace 95% of jobs within two or three years. This prediction has been repeated constantly since 2022. Every year, the same timeline: two or three more years. But four years have already passed.&lt;/p&gt;

&lt;p&gt;If such a massive replacement was truly imminent, we would already see undeniable structural changes: entire professions collapsing, universities shutting down programs, mass technological unemployment driven directly by AI-native systems. Instead, what we mostly see is optimization.&lt;/p&gt;

&lt;p&gt;Developers still develop — just faster. Designers still design — with generative assistance. Content creators still create — with AI drafts. Students still search for information — now through chat interfaces instead of Google.&lt;/p&gt;

&lt;p&gt;The behavior model remains the same. The workflow is accelerated. That is optimization, not transformation.&lt;/p&gt;

&lt;p&gt;When PayPal appeared, it changed how we send money. Gmail changed expectations about storage overnight. Facebook changed social interaction. YouTube changed media consumption. Shopify changed online commerce. The iPhone reshaped the entire mobile ecosystem. Netflix transformed distribution. Airbnb changed travel. Uber changed transportation behavior so deeply that children today cannot imagine calling a taxi by phone. Instagram reshaped visual sharing. Ethereum created a new financial layer. TikTok reinvented content discovery. Each of these products changed how people behave at scale.&lt;/p&gt;

&lt;p&gt;Now it is 2026. ChatGPT launched in 2022 and triggered the modern AI wave. So here is the honest question: What product have we created with AI help in the last four years that has fundamentally changed human behavior at that level? None.&lt;/p&gt;

&lt;p&gt;AI is clearly powerful. It is a horizontal layer across industries. It accelerates, enhances, and automates. But has it produced a new behavioral infrastructure comparable to the smartphone, ride-sharing, or algorithmic short-form media? So far, what we mostly see are optimizations built on top of existing models.&lt;/p&gt;

&lt;p&gt;This does not mean AI is insignificant. It is extremely important. But there is a difference between a productivity multiplier and a civilization-level behavioral shift.&lt;/p&gt;

&lt;p&gt;QA is not disappearing. The same applies to development. The stronger claim — that most jobs will vanish within two or three years — has been repeated for four years without materializing.&lt;/p&gt;

&lt;p&gt;Maybe a true AI-native behavioral revolution is still ahead of us. But if the timeline is always “two or three years away,” then perhaps the prediction deserves more scrutiny than applause.&lt;/p&gt;

&lt;p&gt;Daugiau apie testuotojo specialybę rašau savo knygoje &lt;a href="https://itknyga.lt" rel="noopener noreferrer"&gt;https://itknyga.lt&lt;/a&gt; lietuvių kalba.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>qa</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>API testing has no shortage of great tools</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Tue, 09 Jun 2026 06:21:38 +0000</pubDate>
      <link>https://dev.to/liudasjan/api-testing-has-no-shortage-of-great-tools-2l85</link>
      <guid>https://dev.to/liudasjan/api-testing-has-no-shortage-of-great-tools-2l85</guid>
      <description>&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%2Fdai1f6v6vzqnwa7q9miw.jpeg" 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%2Fdai1f6v6vzqnwa7q9miw.jpeg" alt=" " width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Postman made API development mainstream.&lt;br&gt;
Schemathesis pushed specification-based testing forward.&lt;br&gt;
ReadyAPI is packed with enterprise features.&lt;br&gt;
OWASP ZAP and Burp Suite are essential for security testing.&lt;br&gt;
Tusk Drift takes a completely different traffic-driven approach.&lt;/p&gt;

&lt;p&gt;The problem is that they solve different problems.&lt;/p&gt;

&lt;p&gt;We kept running into a simple situation:&lt;/p&gt;

&lt;p&gt;“I have one API request. I don’t have a specification. I don’t have production traffic. I don’t want to spend hours configuring tools. I just want a quick reality check.”&lt;/p&gt;

&lt;p&gt;That’s the gap Rentgen was built for.&lt;/p&gt;

&lt;p&gt;Not to replace existing tools. Not to compete with everything. Just to make it ridiculously easy to find issues early, when all you have is a single request and a few seconds.&lt;/p&gt;

&lt;p&gt;Sometimes the hardest part isn’t writing tests.&lt;/p&gt;

&lt;p&gt;It’s figuring out what should be tested in the first place. 🎯&lt;/p&gt;

&lt;p&gt;Automation before automation: Rentgen.io&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The ChatGPT That Appeared in 2005 Destroyed the Programming Industry — But You Didn’t Notice</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Wed, 20 May 2026 06:03:23 +0000</pubDate>
      <link>https://dev.to/liudasjan/the-chatgpt-that-appeared-in-2005-destroyed-the-programming-industry-but-you-didnt-notice-4agj</link>
      <guid>https://dev.to/liudasjan/the-chatgpt-that-appeared-in-2005-destroyed-the-programming-industry-but-you-didnt-notice-4agj</guid>
      <description>&lt;p&gt;This is how Facebook was introduced in 2004 — or sometime around then.&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%2Frj8de279nm8mem8cpk7n.png" 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%2Frj8de279nm8mem8cpk7n.png" alt=" " width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Look at the design. Look at the UX decisions. Or better yet, look at the technical choices. The front end was built with HTML, CSS, and JavaScript; the back end ran on PHP; the database was MySQL; everything was served on an Apache server — and all of it was built in just one or two weeks of work.&lt;/p&gt;

&lt;p&gt;Today it looks primitive. But at the time, it was modern. It was cutting edge. It was a product that changed the world.&lt;/p&gt;

&lt;p&gt;Around the same years, Amazon’s user interface was significantly redesigned, simplifying navigation down to a few essential choices, and it looked roughly like this:&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%2Fdwkynic1e1k529q43j53.png" 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%2Fdwkynic1e1k529q43j53.png" alt=" " width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nothing impressive by today’s standards, but at the time it was a massive system with complex infrastructure, supported by thousands of servers and millions of users.&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%2Fwnnioqhaotcept5163sr.png" 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%2Fwnnioqhaotcept5163sr.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And it was a revolution in the world of email. The storage offered: 1000MB. At the time, Hotmail or Yahoo offered 2–6MB. The difference was not in percentages, but in multiples. JavaScript + AJAX solutions made it possible not to refresh the page every time you opened an email, and it felt like the future, like something that would rewrite the rules.&lt;/p&gt;

&lt;p&gt;Also around 2004, eBay was already an infrastructure giant with a product like this:&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%2Fswgusjxr0oxc0kcktpcb.png" 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%2Fswgusjxr0oxc0kcktpcb.png" alt=" " width="736" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Millions of auctions, real-time bidding, a global audience, PayPal as the most advanced payment solution — and it was the highest-quality technology available on the market.&lt;/p&gt;

&lt;p&gt;All of these products were modern and technologically cutting-edge at the time. I used them myself, and I didn’t have even the slightest doubt that this was the pinnacle of quality, engineering excellence, and ingenuity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now let’s imagine a fiction.&lt;/strong&gt;&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%2F1qsfp1wng62mpl9w9o19.png" 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%2F1qsfp1wng62mpl9w9o19.png" alt=" " width="800" height="641"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the end of 2005, ChatGPT appears. It is trained on all these cutting-edge systems — Facebook, Amazon, Gmail, eBay. It sees PHP, MySQL, Apache, Oracle, C++, AJAX. It sees the best architectural solutions that existed at the time. It sees what is the technological peak of the world.&lt;/p&gt;

&lt;p&gt;And the same thing begins that is happening today.&lt;/p&gt;

&lt;p&gt;Everyone explains that programmers will no longer be needed. That creating a new eBay is a matter of minutes. That it’s enough to write a prompt and the system will generate the entire application. Everyone builds applications, everyone generates code, everyone combines what already exists. Everything looks advanced. Everything looks like it’s changing the rules of the game.&lt;/p&gt;

&lt;p&gt;But what does that 2005 ChatGPT actually create?&lt;/p&gt;

&lt;p&gt;It optimizes PHP. It generates better MySQL query templates. It makes nicer HTML. It combines AJAX with what already exists. It creates combinations from what it sees around it. It does not cross the boundaries of its era, because those boundaries do not yet exist in its training data.&lt;/p&gt;

&lt;p&gt;And then, somewhere in parallel, people begin working on Go and present it publicly in 2009. A language that changes thinking and simplicity in infrastructure code. In 2009, Node.js and npm appear, changing the server-side JavaScript model. In 2009, MongoDB appears, questioning the dominance of relational databases. In 2013, Kubernetes appears, fundamentally changing how we manage containers and distributed systems. In 2015 — React Native, and so on, and so forth.&lt;/p&gt;

&lt;p&gt;Now let’s think critically.&lt;/p&gt;

&lt;p&gt;In 2005, with ChatGPT available, would Kubernetes have appeared? Would the Go language have appeared? Would a document-oriented NoSQL database have appeared if the model had been trained only on the dominance of relational systems? Would a new asynchronous server model have appeared if the standard at the time had been completely different?&lt;/p&gt;

&lt;p&gt;The answer is very simple. AI would not have created it. A human would.&lt;/p&gt;

&lt;p&gt;Because it does not yet exist in its training data. It cannot generate what the world has not yet invented. It can combine, optimize, accelerate — but it cannot create an architectural breakthrough out of nothing if there are no precedents for that breakthrough.&lt;/p&gt;

&lt;p&gt;Yes, it is a fact that with AI some technologies would have appeared faster. But they would not have appeared because AI invented them. They would have appeared because humans questioned what at the time seemed self-evident.&lt;/p&gt;

&lt;p&gt;And now let’s look at today. Everything that today seems modern, advanced, intelligent, and inevitable will, in 20 years, look just as simple and even slightly amusing as the 2004 eBay homepage looks today — even though it was the flagship of technology. And perhaps in 20 years someone will say: “Can you imagine, they seriously believed that prompts could replace all of engineering.”&lt;/p&gt;

&lt;p&gt;Technologies change. Tools change. AI will also change. But architectural breakthroughs are still created by people who begin to think differently than the data of their time allows. And here the question is not whether AI will replace programmers. The question is who will create the next Kubernetes.&lt;/p&gt;

&lt;p&gt;chatGPT of 2005 - &lt;a href="https://itknyga.lt/2005-chatgpt/" rel="noopener noreferrer"&gt;https://itknyga.lt/2005-chatgpt/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>ai</category>
      <category>techtalks</category>
      <category>webdev</category>
    </item>
    <item>
      <title>API reality checks from your terminal</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Fri, 15 May 2026 09:16:12 +0000</pubDate>
      <link>https://dev.to/liudasjan/api-reality-checks-from-your-terminal-3jen</link>
      <guid>https://dev.to/liudasjan/api-reality-checks-from-your-terminal-3jen</guid>
      <description>&lt;p&gt;Soon&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%2Fv4rsvb422unhjqypa2vt.jpg" 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%2Fv4rsvb422unhjqypa2vt.jpg" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Export a .rentgen project once, then run Rentgen from the terminal, Docker or CI/CD pipelines. No cloud runner. No hosted sync. No extra scripting layer. Just the same local-first checks that expose fragile API behavior before automation becomes expensive.&lt;/p&gt;

&lt;p&gt;Read more: &lt;a href="https://rentgen.io/cli" rel="noopener noreferrer"&gt;https://rentgen.io/cli&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Thunder Client vs Rentgen — one checks if the API works, the other checks how it breaks</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Thu, 14 May 2026 17:22:21 +0000</pubDate>
      <link>https://dev.to/liudasjan/thunder-client-vs-rentgen-one-checks-if-the-api-works-the-other-checks-how-it-breaks-5d6i</link>
      <guid>https://dev.to/liudasjan/thunder-client-vs-rentgen-one-checks-if-the-api-works-the-other-checks-how-it-breaks-5d6i</guid>
      <description>&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%2Fvjn3jc1ueg3ancpmgs3v.png" 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%2Fvjn3jc1ueg3ancpmgs3v.png" alt=" " width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern API development has become slightly absurd. A developer sends one request from inside VS Code, gets a beautiful green &lt;code&gt;200 OK&lt;/code&gt;, leans back in the chair like a Formula 1 engineer after a flawless pit stop, and declares: “Yep. Works.”&lt;/p&gt;

&lt;p&gt;Except… no. It doesn’t. It means one request worked once.&lt;/p&gt;

&lt;p&gt;And this is exactly where Thunder Client and Rentgen stop being competitors and start becoming two completely different tools living in different parts of the API lifecycle.&lt;/p&gt;

&lt;p&gt;Thunder Client is excellent at what it was built for. It keeps API requests inside the editor, close to the code, without forcing developers to open another giant platform with seventeen tabs, sync popups, team workspaces, cloud agents, and whatever else modern software companies now consider “essential productivity”.&lt;/p&gt;

&lt;p&gt;You change an endpoint. You send a request. You inspect the response. You tweak headers. You debug quickly. Perfectly reasonable workflow.&lt;/p&gt;

&lt;p&gt;But then reality arrives.&lt;/p&gt;

&lt;p&gt;Because production systems are not attacked by perfectly formatted JSON created by calm developers drinking oat milk lattes at 2 PM. Production gets malformed payloads, oversized bodies, missing fields, broken enums, invalid types, whitespace disasters, incorrect casing, expired tokens, and integrations written by someone who clearly hates humanity.&lt;/p&gt;

&lt;p&gt;And that is the gap Rentgen was built for.&lt;/p&gt;

&lt;p&gt;Rentgen takes the request that already “works” and immediately starts behaving like the worst possible API consumer imaginable. Missing required fields? Good. Wrong data types? Excellent. Malformed JSON? Fantastic. Status code inconsistencies? Even better.&lt;/p&gt;

&lt;p&gt;Not because chaos is fun, but because these are the exact bugs teams somehow keep discovering in production after proudly announcing the endpoint was “tested”.&lt;/p&gt;

&lt;p&gt;Thunder Client helps you build and debug APIs. Rentgen helps you discover whether the API behaves like an adult once the input becomes messy.&lt;/p&gt;

&lt;p&gt;Different jobs. Different pressure. Different moment in the workflow.&lt;/p&gt;

&lt;p&gt;One is an API client.&lt;/p&gt;

&lt;p&gt;The other is an API hygiene scanner.&lt;/p&gt;

&lt;p&gt;And pretending they compete directly makes about as much sense as comparing a torque wrench to an X-ray machine.&lt;/p&gt;

&lt;p&gt;Full original article:&lt;br&gt;
&lt;a href="https://rentgen.io/api-stories/Thunder-Client-and-Rentgen-testing-inside-editor-reality-checking-outside-happy-path.html" rel="noopener noreferrer"&gt;https://rentgen.io/api-stories/Thunder-Client-and-Rentgen-testing-inside-editor-reality-checking-outside-happy-path.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rentgen</category>
      <category>api</category>
      <category>rest</category>
      <category>testapi</category>
    </item>
    <item>
      <title>ReadyAPI vs Rentgen: One Builds Enterprise Confidence. The Other Checks If the API Falls Apart Before That.</title>
      <dc:creator>Liudas</dc:creator>
      <pubDate>Wed, 06 May 2026 18:51:14 +0000</pubDate>
      <link>https://dev.to/liudasjan/readyapi-vs-rentgen-one-builds-enterprise-confidence-the-other-checks-if-the-api-falls-apart-2fo6</link>
      <guid>https://dev.to/liudasjan/readyapi-vs-rentgen-one-builds-enterprise-confidence-the-other-checks-if-the-api-falls-apart-2fo6</guid>
      <description>&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%2Fmw8lquk4sxdte2djllqb.png" 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%2Fmw8lquk4sxdte2djllqb.png" alt=" " width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There’s a funny moment in API development that almost nobody talks about.&lt;/p&gt;

&lt;p&gt;A developer finishes an endpoint, sends one request, gets a beautiful 200 OK back, and suddenly the room behaves like the API survived Normandy.&lt;/p&gt;

&lt;p&gt;Then somebody opens ReadyAPI, starts building proper test suites, adds assertions, environments, CI integration, performance checks, maybe even security testing. Serious enterprise stuff. And to be fair, ReadyAPI absolutely deserves its reputation. SoapUI evolved into one of the biggest API testing platforms for a reason. Banks, telecoms, healthcare systems — this is the territory where structured testing matters and auditors enjoy PowerPoint presentations about “quality gates”.&lt;/p&gt;

&lt;p&gt;But there’s a problem hiding before all of that.&lt;/p&gt;

&lt;p&gt;What if the endpoint was already fragile before the first test suite even existed?&lt;/p&gt;

&lt;p&gt;That’s the gap Rentgen focuses on.&lt;/p&gt;

&lt;p&gt;Not enterprise automation. Not giant regression packs. Just the uncomfortable two-minute reality check right after “it works”.&lt;/p&gt;

&lt;p&gt;Take one working cURL request and start making it slightly annoying. Remove fields. Break types. Add whitespace. Push boundaries. Send malformed payloads. Suddenly APIs that looked very confident five minutes ago begin returning strange status codes, inconsistent validation, or the occasional glorious 500 error.&lt;/p&gt;

&lt;p&gt;And honestly, that’s useful.&lt;/p&gt;

&lt;p&gt;Because building beautiful automation around assumptions is still building automation around assumptions.&lt;/p&gt;

&lt;p&gt;ReadyAPI helps teams define and enforce correctness over time. Rentgen helps expose weird backend behavior before those definitions even exist. Different stage. Different responsibility. No reason they can’t work together.&lt;/p&gt;

&lt;p&gt;Full article:&lt;br&gt;
&lt;a href="https://rentgen.io/api-stories/ReadyAPI-and-Rentgen-enterprise-test-suites-and-step-before-them.html" rel="noopener noreferrer"&gt;https://rentgen.io/api-stories/ReadyAPI-and-Rentgen-enterprise-test-suites-and-step-before-them.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rentgen</category>
      <category>readyapi</category>
      <category>api</category>
      <category>restapi</category>
    </item>
  </channel>
</rss>
