Skip to content
All posts
February 5, 20264 min read

Communication Gaps Between QA and Dev (And How to Close Them)

Most QA-dev friction isn't about skills or effort — it's about information not flowing when and where it's needed. Here's where the gaps are and how to close them.

TestingEngineeringTeam
Share:

QA and development interact constantly, yet communication failures between them are one of the most common sources of escaped bugs, missed deadlines, and team frustration. The gaps are usually not about bad intentions — they're about information flowing at the wrong time, in the wrong format, or to the wrong person.


Gap 1: Developers Don't Tell QA What Changed

The most critical information gap. A developer refactors the payment module, changes error handling in the authentication flow, and updates a library that affects network request behavior. None of this is in the ticket. The PR description says "improve code quality."

QA sees the ticket, doesn't know what actually changed, and tests based on what the feature is supposed to do — not what code was actually modified.

The bugs that live in the actual changes get missed. QA is testing the wrong area with the wrong focus.

Fix: Make change scope a required part of every PR. Not exhaustive, but directional:

code
Changed files: AuthViewModel.kt, SessionManager.kt
Risk areas: Session expiry handling, remember-me token refresh
Please focus testing on: Login with expired session, background/foreground transition during active session

This takes 3 minutes to write and saves QA 2 hours of testing the wrong things.


Gap 2: QA Doesn't Tell Dev What They're Not Testing

QA completes testing. The feature is approved. Nobody mentions that the edge case for 50+ items in the list was skipped because of time pressure.

Developer has false confidence. The edge case ships. Produces an OOM error when a power user loads 200 items.

Fix: QA should include a "not tested" section in sign-off comments for every feature:

code
Tested: standard load, empty state, error state, pagination (up to 50 items)
Not tested: 100+ items, offline mode, concurrent API calls

This makes coverage gaps explicit and allows an informed risk decision.


Gap 3: Bug Reports Without Context

"App crashes when loading." Filed. Assigned to developer.

Developer opens the ticket. Needs to know: which device? Which OS? When in the flow? What data? None of this is in the report.

Developer comments. QA responds the next day. One week and four comments later, the developer has enough context to investigate.

Fix: A bug report template that requires the critical context fields to be filled before the ticket can be submitted. The 10 minutes QA spends completing the template saves the developer hours of investigation.


Gap 4: Priority Misalignment

QA files a bug as "High." Developer sees it as "Low" because they know the code path is rarely hit. Neither has the full picture. The bug sits in triage limbo.

Fix: Regular joint triage sessions (15-30 minutes, weekly or bi-weekly) where QA and a developer representative discuss new bugs together. Both perspectives are present. Priority decisions are made with full information and committed to by both parties.


Gap 5: Implicit Assumptions About "Done"

Developer: "I'm done, it's in QA." QA: "It still needs the error state tested, the accessibility check, and the multi-device smoke." Developer: "That's all QA work. I'm done."

Both are right according to their definition of done. But the definitions differ.

Fix: An explicit, written Definition of Done that both QA and development agree to before a sprint starts. Not a document nobody reads — a short checklist that's referenced when "done" is claimed:

code
Developer done when:
☐ Feature implements acceptance criteria
☐ Unit tests written and passing
☐ Code reviewed
☐ Self-tested on at least 2 devices

QA done when:
☐ Acceptance criteria verified
☐ Edge cases from QA review covered
☐ Bug regression run
☐ Sign-off documented

[!TIP] The Definition of Done is most useful when it causes discomfort. If a developer can always mark things done without changing behavior, it's not specific enough. It should occasionally require them to do something they wouldn't have done otherwise.


The Meta-Fix: Regular Cross-Functional Sync

All of these gaps share a root cause: QA and development working in separate information silos. The fix isn't just individual communication improvements — it's regular structured exchange.

A 30-minute weekly sync between a QA lead and a development lead, covering: what's in testing, what's coming next week, what's risky, what's not tested yet — creates the information flow that prevents most of these gaps before they become problems.

Not a status meeting. An information exchange meeting. Short, specific, actionable.

Share:
S

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.

Stay updated

Get new posts on Android, Kotlin, and solo dev straight to your inbox.

Newsletter preferences

Building something? Available for Android dev and QA consulting.

Work with me

Comments — powered by Giscus