Testing in Agile Sprints: How to Stop Testing Being the Bottleneck
In most teams, testing is the last step before release and always the bottleneck when time is short. It doesn't have to be. Here's how to integrate testing throughout the sprint so it never becomes the blocker.
On this page
- The Root Cause: Sequential Handoffs
- Step 1: Write Acceptance Criteria in Sprint Planning
- Step 2: "Three Amigos" Before Development Starts
- Step 3: Test as Stories Are Completed
- Step 4: Bug Turnaround Same Day
- Step 5: Don't Allow "QA Debt"
- Estimating Testing Time
- Sprint Retrospective: QA Metrics
- The Embedded QA Model
- Takeaways
Testing is a bottleneck because it's treated as a separate phase that happens after development. Developers code for two weeks, hand off to QA on the last two days, QA finds issues, development reopens, time runs out, release is rushed or delayed.
This is the waterfall cycle hiding inside an agile sprint. Here's how to break it.
The Root Cause: Sequential Handoffs
The traditional sprint flow:
Plan → Design → Develop → QA → Release
↑
Everything piles up hereThe better flow:
Plan (with criteria)
↓
Design (QA reviews requirements)
↓
Develop + Test (concurrent, feature by feature)
↓
Release (low risk — already tested throughout)The difference is continuous testing, not batch testing at the end.
Step 1: Write Acceptance Criteria in Sprint Planning
Every user story should have testable acceptance criteria before the sprint starts. Not during development. Not in QA.
If the team can't write clear acceptance criteria during planning, the story isn't ready. This isn't a QA problem — it's a clarity problem that QA can help solve.
QA's role in sprint planning:
- Flag stories that lack testable criteria
- Ask "what does done look like?" for each story
- Identify dependencies and integration risks
- Estimate testing complexity (so it's in the sprint capacity, not an afterthought)
Step 2: "Three Amigos" Before Development Starts
The three amigos is a short meeting (30-60 min) with the developer, QA engineer, and product owner before a feature is coded:
- Product explains what the feature should do
- QA asks "what if X happens?" edge case questions
- Dev raises technical constraints and questions
This is where ambiguity is resolved cheaply. An ambiguity resolved in a 30-minute meeting costs less than an ambiguity discovered in QA after two days of development.
[!TIP] You don't need a formal meeting for the three amigos. A 10-minute async Slack thread with the three questions — "what's the happy path?", "what are the edge cases?", "what are the technical constraints?" — achieves the same goal.
Step 3: Test as Stories Are Completed
Don't wait for all stories to be complete before testing begins. Test each story as it's "done" by development.
Define "done" clearly:
- Unit tests pass
- Feature works in development environment
- Code reviewed and merged
When a story meets "done," QA starts testing immediately — not at the end of the sprint.
Practical setup:
- Development branch: feature in progress
- QA environment: auto-deploys from branchcode
develop - QA tests stories as they land on develop
Step 4: Bug Turnaround Same Day
When QA finds a bug on Tuesday, it should be fixed and re-tested Tuesday or Wednesday — not Friday.
This requires:
- Developers not being fully booked with new stories while old ones are in QA
- A process for prioritizing bug fixes over new feature work
- A defined SLA: critical bugs fixed within hours, major bugs within 1 day
When bugs are fixed in the same sprint they're found, the sprint doesn't derail.
Step 5: Don't Allow "QA Debt"
QA debt is stories that are technically "developed" but not tested, carried forward into the next sprint for testing. This is how testing becomes a permanent backlog.
The rule: stories don't get sprint velocity credit until they're tested and accepted.
If a story isn't tested by end of sprint, it either:
- Gets carried over as incomplete (not done)
- Gets reduced in scope so it can be tested in the sprint
This puts pressure on realistic sprint planning — not on QA to skip testing.
Estimating Testing Time
Testing is work. It should be in the estimate. For each story, estimate:
- Happy path testing: usually 20-30% of development time
- Edge case and negative path testing: add 50-100% for complex business logic
- Integration testing with other stories: variable
A story estimated at 3 story points that takes 2 days to develop should have 0.5-1 day of testing in the estimate. If it doesn't, testing is invisible in planning and becomes a "surprise" at the end.
Sprint Retrospective: QA Metrics
Every retrospective should include:
- Bugs found in QA vs bugs found in production
- How late in the sprint testing started
- Which stories required multiple QA cycles
- Were acceptance criteria clear enough to test against?
If bugs are consistently found in production that should have been found in QA, the sprint process needs adjustment — earlier testing, better criteria, or more QA capacity.
The Embedded QA Model
The most effective model: one QA engineer per feature team, embedded — not in a separate QA pool shared across teams.
An embedded QA:
- Attends sprint planning and three amigos
- Reviews PRs for testability
- Tests features as they're completed, not at the end
- Writes automation for stable features during the sprint
- Has context about the sprint goals, not just ticket descriptions
If you don't have a dedicated QA engineer, the developer owns testing. The same principles apply — write tests first, verify against criteria, don't defer testing to the end.
Takeaways
- Testing at the end of the sprint is waterfall in disguise — integrate it throughout
- Acceptance criteria written during planning make QA possible (not post-hoc rationalization)
- Three amigos sessions resolve ambiguity before it becomes expensive
- QA debt (untested stories) is real debt — don't allow it
- Testing time belongs in the estimate — if it's not visible, it's being cut
Sudarshan Chaudhari
AI Systems Builder / Product Engineer
Bangkok, Thailand
Solo Android developer with 13+ years in QA, building Android apps, AI automation systems, and developer tools at SudarshanTechLabs.
Related Posts
Building something? Available for Android dev and QA consulting.
Work with meComments — powered by Giscus
