Hero Background

Power Your Software Testing with AI Agents and Cloud

The Native AI-Agentic Cloud Platform to Supercharge Quality Engineering. Test Intelligently and Ship Faster.

Thought Leadership

What Agile Testing Actually Is and How It Works

Agile testing means testing runs in parallel with coding inside the same iteration, instead of waiting in a separate QA column after development ends.

Last Updated on:

Agile testing is testing that runs in parallel with programming inside the same iteration, instead of waiting for a separate stage after development ends.

An agile task board carries only To Do, In Progress and Done columns, so risk analysis, code review and exploratory testing sit beside implementation as cards on the same feature.

This guide explains why teams still keep a separate testing stage, which testing tasks replace the QA column, and how AI coding agents change agile testing.

Key Takeaways

  • Agile testing means testing runs in parallel with programming inside the same iteration, instead of starting after development is finished.
  • A task board with only To Do, In Progress and Done columns marks an agile team, because a middle column named QA describes a type of task while the other columns describe status.
  • When testing runs alongside programming, testers hand problems to programmers during the same iteration, so most are fixed on the spot and never reach a defect tracking tool.
  • Removing a QA column takes three agreements: acceptance criteria written as concrete examples during refinement, a definition of done that names the testing work, and a work in progress limit on the In Progress column.
  • The agile testing quadrants sort testing work on two axes, business-facing against technology-facing and supporting the team against critiquing the product, which produces four named tasks a team can run at the same time.
  • Teams drafting code with AI assistants still need testing during implementation, because a generated change can reach the branch in minutes and generated tests are claims to check rather than proof that the feature works.

Why is that?

Well, basically because most people still believe that software testing is limited to verifying that something does what it is expected to do, and, to make matters worse, that it can be performed only once the feature or system in question has been completely built. Those two beliefs are the misconceptions I covered in the first part of this article, on what agile testing is not.

In other words, they are not familiar with challenging assumptions (requirements, software design, people's beliefs, etc.) while, or even before, implementing a feature/system.

And also because they are too often not aware of the power of exploring a system regardless of its status of readiness. And yes, software testing (and especially exploratory testing) can be performed at any stage.

So, back to the most Agile environment I've been part of, our board had just three columns, under which we could see a lot of simultaneous tasks related to a given feature (risk analysis, implementation, code review, exploratory testing, writing test cases, executing test cases, etc.(2)).

At the beginning of each iteration, under the To Do column, we would see the features we were about to work on.(3)

During the iteration, most of the features would appear under the In Progress column, and they wouldn't reach the last (Done) column until all the corresponding tasks were completed.

Can you see the difference between this (ideal) set-up and the (unfortunately too common) scenario where testing duties (if any) start only after programming activities have (allegedly) finished?

In that ideal (yet real) work environment, the potential problems spotted by the testers would be immediately shown to the programmers who would usually fix them as soon as possible through the same iteration.

By the way, there was no need to add them to the onerous defect management system: most of the time, a note for the programmers would be enough.(4)

And since we all were working on the same things at the same time, we were a lot more efficient than before (when we used to follow a traditional waterfall process), basically because during an iteration:

  • nobody got distracted (to fix something, for example) while already working on something else, since we were still working on the same thing(s);
  • nobody could forget what they implemented, tested or fixed, or how they do that, since we were still working on it;
  • last but not least, everybody had a better understanding of what we were doing and why.

Removing that column takes more than deleting it from the board. Replace the handover with three agreements: acceptance criteria written as concrete examples during refinement, a definition of done that names the testing work such as risk analysis and exploratory charters, and a work in progress limit on the In Progress column. The limit matters most, because it forces the team to finish one feature together before pulling the next one.

The same point applies to teams that now draft code with AI assistants. A generated change can reach the branch in minutes, so a testing stage that starts only after implementation falls behind on every story. Test the assumptions while the code is written instead: review the acceptance criteria with the person driving the assistant, explore the running build while the branch is still open, and treat generated tests as claims to check rather than proof that the feature works.

Key Takeaway: Teams keep a separate testing stage because they assume a feature must be finished before testing can start, yet risk analysis, code review and exploratory testing can run against software at any stage of readiness.

Which Testing Tasks Replace the QA Column?

The agile testing quadrants name them. The model sorts testing work on two axes: business-facing against technology-facing, and tests that support the team against tests that critique the product. Brian Marick built the original matrix. Lisa Crispin and Janet Gregory adapted it with his permission for their book Agile Testing, and Crispin describes that adaptation as the heart of the book.

Quadrant one holds technology-facing tests that support the team, such as unit testing and component tests. Quadrant two holds business-facing tests that support the team, meaning the acceptance tests and worked examples taken from a user story. Quadrant three holds business-facing tests that critique the product, including exploratory testing, usability testing and user acceptance testing. Quadrant four holds technology-facing tests that critique the product, such as performance, load and security testing.

Two details make the model useful at the board. The numbering carries no order. Crispin states that the numbering does not imply any order and that you do not work through the quadrants from one to four in a waterfall style, so a team can run quadrant three exploration against a branch while quadrant one unit tests are still being written. The quadrants also differ in how the work is carried out, because the labels at the quadrant corners mark whether that quadrant generally needs automation, manual testing or specialized tools. Crispin adds that manual does not mean unskilled, since exploratory testing is largely manual and still requires expertise. Write those four groups onto cards and you have named, parallel tasks sitting under In Progress. A single QA column replaces all four of them with one word.

Key Takeaway: The agile testing quadrants name four groups of testing work, unit and component tests, acceptance examples, exploratory and usability testing, and performance, load and security testing, and the quadrant numbering implies no order of execution.

How Do AI Coding Agents Change Agile Testing?

They shorten the gap between a written requirement and a candidate change, which makes a separate testing stage even harder to defend. GitHub documents that its Copilot coding agent researches a repository, plans, and makes changes on a branch inside an ephemeral environment powered by GitHub Actions, where it can run automated tests and linters before it opens a pull request.

The documented limits are as useful to a tester as the capabilities. That same page states the agent works in one repository at a time, on one branch at a time, opens exactly one pull request per task, and stops at a maximum session length of 59 minutes. So the unit of work arriving at the board is a single pull request whose reasoning nobody on the team watched, carrying tests the agent wrote against its own reading of the requirement.

That is a testing problem, not a review problem, and it belongs in the same iteration. Three things work in practice. Agree the acceptance criteria as concrete examples with the person who is going to drive the agent, before the task is handed over, because the prompt is now the requirement. Explore the running build while the branch is still open, since quadrant three exploratory testing does not need a finished feature. Treat generated tests as claims to check rather than evidence, and read what they actually assert, because a test that passes against a wrong understanding of the requirement still passes.

None of this is a new column on the board. It is the same parallel work, pulled earlier.

Key Takeaway: An AI coding agent delivers a finished pull request with tests it wrote itself, so the testing work moves to agreeing the acceptance criteria before the task starts and exploring the open branch, not to a stage after implementation.

To sum up, as I see it, Agile is mainly about simultaneity or efficiently doing things as much in parallel as possible.

As a consequence, to me, Agile Testing is essentially what you do when you don't have that inconsistent and disturbing QA column within your board.

So, how about trying to get rid of it once and for all?

Test across 3000+ browser and OS environments with TestMu AI

Footnotes

1- For the purpose of this paper, it doesn't really matter if they call it Kanban board, Scrum board, or in whatever other way. What matters is how it looks.

2- Yes, since it was a regulated environment, we had to do that too, which didn't prevent us from performing a lot of exploratory testing, though.

3- It is worth mentioning that, at this point, we would have already analyzed and talked together about these features during the corresponding refinement session(s), usually a few days/weeks before.

4- Only if the bug could not be fixed during the same iteration, we would need to resort to the red tape (that is to say, to the tedious defect tracking tool).

Author

...

Ileana Belfiore

Blogs: 2

  • Linkedin

Ileana Belfiore is a hands-on software testing specialist and Agile consultant with over a decade of experience in software quality. She began her career as a CRM analyst and programmer before moving into software testing across medical devices, financial software, and mobile applications, and she now works as a freelance test strategist delivering exploratory and regression testing. On TestMu AI (formerly LambdaTest), she authored articles on Agile testing, and she holds a Professional Scrum Master I (PSM I) certification.

Add to Google preferred sources

Summarise with AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Agile Testing FAQs

Did you find this page helpful?

More Related Blogs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests