The Agile Testing Quadrant: A Practical Guide for QA Teams
The Agile Testing Quadrant is a useful model. But like most testing frameworks, it's described in abstract terms that don't immediately translate to Monday morning decisions. This guide makes it concrete: how QA teams actually use the quadrant in sprint planning, what they do in each quadrant each week, and the mistakes to avoid.
Quick Recap: The Four Quadrants
Business-facing
Q2 Q3
Acceptance tests Exploratory testing
Story tests Usability testing
BDD scenarios UAT, demos
Guiding ──────────── Critiquing
Q1 Q4
Unit tests Performance testing
Integration tests Security testing
Component tests Load testing
Technology-facing- Q1 (Technology, Guiding): Developer-written, automated, guide development
- Q2 (Business, Guiding): Collaboration between devs and testers, automated acceptance
- Q3 (Business, Critiquing): Human testers, exploratory, user-focused
- Q4 (Technology, Critiquing): Specialized, performance and security
How to Use the Quadrant in Sprint Planning
Step 1: Map the sprint work to quadrants
At sprint planning, QA's job is to identify what testing activities each story needs, across all four quadrants.
For a story: "As a user, I can export my order history as CSV"
| Quadrant | Activity |
|---|---|
| Q1 | Dev writes unit tests for CSV serialization logic |
| Q2 | Tester writes acceptance test: "User clicks Export → receives CSV with all orders" |
| Q3 | Exploratory: What happens with 10,000 orders? Special characters in product names? |
| Q4 | Performance: Does export complete in < 2s for large accounts? |
This mapping makes testing visible and negotiable. If the sprint is overloaded, Q4 work can be deferred—but it's tracked as a known gap, not forgotten.
Step 2: Estimate testing effort by quadrant
Q1 effort is usually owned by developers. Q2 effort is shared. Q3 and Q4 are primarily QA.
Explicitly budgeting quadrant effort prevents the common problem where "testing" is assumed to be done but only Q1 was covered.
Step 3: Define done criteria per quadrant
A story is done when:
- Q1: Unit and integration tests written and green
- Q2: Acceptance scenarios automated and passing
- Q3: Exploratory session completed, bugs filed
- Q4: Performance threshold met (or explicitly deferred)
Q1 in Practice: Developer Tests
QA's role in Q1 isn't to write the tests—it's to ensure they exist and to review coverage.
What QA does in Q1:
- Review unit test coverage for critical business logic
- Identify missing edge cases (what about empty inputs? concurrent calls? large datasets?)
- Confirm integration tests cover the actual integration points
Common mistake: Treating Q1 as "developer territory, not my problem." QA should know what Q1 covers and what it doesn't—Q3 exploratory testing often reveals Q1 gaps.
Q2 in Practice: Acceptance Tests
Q2 is where QA and development collaborate most directly. Well-written Q2 tests prevent the "it passes unit tests but fails acceptance" problem.
Gherkin-style acceptance test:
Feature: CSV Export
Scenario: User exports order history
Given I am logged in as "alice@example.com"
And I have 3 completed orders
When I click "Export as CSV"
Then a CSV file is downloaded
And the CSV contains 3 rows
And each row includes: order_id, date, amount, status
Scenario: Empty order history
Given I am logged in as "newuser@example.com"
And I have no orders
When I click "Export as CSV"
Then I see the message "No orders to export"
And no file is downloadedWhat QA does in Q2:
- Write acceptance scenarios before development starts (ATDD)
- Automate scenarios that will be run repeatedly
- Collaborate with PO to ensure scenarios reflect real requirements
- Keep scenarios at the feature level, not the implementation level
Common mistake: Writing Q2 tests after development and making them pass by adjusting the test rather than the code. Q2 tests written first are specification; Q2 tests written after are documentation.
Q3 in Practice: Exploratory Testing
Q3 is where experienced testers add irreplaceable value. Structured exploration, not random clicking.
Session-based exploratory testing:
Charter: Explore the CSV export feature
Time box: 45 minutes
Focus areas:
- Boundary conditions (max orders, special characters)
- Error scenarios (network failure mid-export, session timeout)
- Cross-browser behavior
- Concurrent exports from same account
Notes during session:
10:05 - Exported 1000 orders: 12s, acceptable
10:18 - Product name with commas breaks CSV parsing → BUG
10:31 - Double-clicking Export creates two downloads → BUG
10:44 - Session timeout mid-export shows white screen, no message → BUGWhat QA does in Q3:
- Use test charters to focus sessions without over-scripting
- Note bugs immediately with reproduction steps
- Look for usability issues that tests don't capture ("the loading spinner overlaps the button")
- Collect questions for the PO ("should exports include cancelled orders?")
Common mistake: Treating Q3 as the backup when Q2 tests fail. Q3 should run regardless—it finds what Q2 scripted tests can't.
Q4 in Practice: Non-Functional Testing
Q4 is often deferred because it feels expensive and specialized. The cost of deferring too long is production incidents.
Lightweight Q4 integration in sprints:
Don't try to run full load tests in every sprint. Instead:
- Define thresholds upfront. "Export must complete in < 3s for accounts with < 5000 orders." Treat this as a Q2 acceptance criterion.
- Schedule full load tests. Monthly or pre-release, run comprehensive Q4 suites against a production-like environment.
- Track baseline over time. Compare each run to the previous one—performance regressions are often gradual.
Smoke test performance in CI. Run a lightweight performance check on every build:
k6 run --duration 30s --vus 10 export-smoke-test.js
# Fail if p95 > 3000msWhat QA does in Q4:
- Define non-functional acceptance criteria early
- Integrate lightweight smoke tests in CI
- Coordinate with DevOps for environment and data setup
- Run and interpret full load/security tests pre-release
Tracking Coverage Across Quadrants
A simple coverage matrix per sprint:
| Story | Q1 | Q2 | Q3 | Q4 | Status |
|---|---|---|---|---|---|
| CSV Export | ✓ | ✓ | Partial | Deferred | In Progress |
| User Settings | ✓ | ✓ | ✓ | — | Done |
| Payment Retry | ✓ | In Progress | — | — | Blocked |
This makes gaps visible. "Payment Retry has no Q3 or Q4 coverage" is a risk statement, not an accident.
Team Collaboration Patterns
Developer-tester pairing on Q2:
- Tester writes acceptance scenarios in Gherkin
- Developer automates them as part of the story
- Both review the scenarios before and after implementation
QA review of Q1:
- QA reviews pull requests for test coverage
- Flags missing edge cases before merge
- Adds integration test requirements to the definition of done
PO involvement in Q3:
- Invite PO to observe exploratory sessions occasionally
- Share Q3 session notes in sprint reviews
- Convert Q3 findings into Q2 acceptance criteria for future stories
Common Mistakes
Using the quadrant as a checklist, not a thinking tool. "We did Q1, Q2, Q3, Q4 → done." If Q3 was a 5-minute click-through and Q4 was "opened a browser and loaded the page," you've checked boxes, not tested.
Treating Q3 as an afterthought. Q3 is scheduled, time-boxed, and purposeful—not "whatever testers do when they have time."
Ignoring Q4 until a production incident. Performance and security testing after a production failure is damage control. Build lightweight Q4 into the normal cycle.
Expecting developers to own Q2. Q2 automation requires understanding both the technical automation layer and the business requirements. Testers bridge that gap.
HelpMeTest in the Quadrant
HelpMeTest operates in Q2 and Q3. Write test scenarios in plain English, run them automatically against your real application.
- Q2 use case: Automate acceptance tests without code. "When user clicks Export → CSV downloads with correct data." No Gherkin, no Selenium setup—just describe the scenario.
- Q3 use case: Run exploratory-style checks 24/7. HelpMeTest monitors your application continuously, catching regressions between your manual Q3 sessions.
HelpMeTest bridges the gap between Q2 (automated acceptance) and Q3 (continuous monitoring) without requiring developers to own the automation.
Summary
Applied practically, the Agile Testing Quadrant means:
- Q1: Developers own automated technical tests; QA reviews coverage
- Q2: QA writes acceptance scenarios; both teams automate them
- Q3: QA runs chartered exploratory sessions; tracks bugs and findings
- Q4: Define performance/security thresholds in Q2; integrate smoke tests in CI; run full tests pre-release
The quadrant isn't a bureaucratic checklist—it's a way to make testing conversations precise. When a team says "we need more testing," the quadrant asks: which kind, for what purpose, who does it? That precision is the value.