Most people picture QA as the person who opens the app the day before launch, clicks through a few screens, and says "looks good." If that's what you think you're renting from us, you'll be underwhelmed, and you'll also be underusing the most leveraged seat on the pod. A good QA engineer is a specialist who does deliberate, repeatable work that neither your unit test suite nor your coding model produces. Let us walk you through what that person actually does when they're on your team, using a real release we ran.
The job starts before there's anything to click
When we drop a QA onto a pod, the first artifact they produce isn't a bug. It's a test plan. On a recent build, a scheduling feature for a home-services client, our QA read the ticket, read the acceptance criteria, and then wrote down the things the ticket didn't say: what happens when a booking spans midnight, what happens across a daylight-saving boundary, what happens when a customer in Phoenix (no DST) books a provider in Los Angeles (DST). She built an edge-case matrix โ timezone times booking-length times device-locale โ that came out to 40-odd cases. None of those were in the acceptance criteria. Two of them were live bugs.
That matrix is the deliverable. It's the thing you can hand to the next engineer, run again next quarter, and point to when a customer asks "did you test X." AI will happily generate test cases if you ask, but it won't sit with your specific product and ask "what did the PM forget," because it doesn't know what your customers actually do. Ours does, because she's the one who read the support tickets.
Exploratory testing is not "clicking around" โ it's a skill
There's a category of testing that has no script, and it's the one people most often confuse with random poking. Exploratory testing is structured improvisation: the tester forms a hypothesis about where the software is weak, then goes hunting. On that same scheduling feature, our QA noticed the reschedule flow reused the same form component as new-booking. Her hypothesis: state from the first booking leaks into the second. She created a booking, started a reschedule, hit back, started a different reschedule โ and the provider's availability from booking one was still cached in the dropdown. Nobody scripts that path. You find it by understanding how the thing is built and being suspicious in the right place.
This is the part that's genuinely hard to hire for and genuinely hard to automate. It's why we treat it as its own line item, not a bonus.
Real devices, real networks, real data โ because your CI runs on none of them
Your test suite runs in a clean container on a fast connection with seed data that's three rows deep. Your users are on a four-year-old Android over one bar of LTE with 900 contacts and an address that has an apostrophe in it. We keep a device bench in Vietnam for exactly this reason. On the scheduling build, everything passed on the simulator and on the team's iPhones. On a physical mid-tier Android with a throttled connection, the confirmation spinner never resolved โ the request completed but a race between the response and a navigation event left the user staring at a wheel. Green CI, broken product.
Real data matters just as much. We seed test accounts with names like "O'Brien" and "ๆ" and phone numbers in E.164 and local formats, because the apostrophe broke a SQL-adjacent string escape and the non-Latin name broke a PDF export. Nobody's synthetic `test@test.com` account ever finds those.
A bug report is a piece of engineering, not a complaint
Half the value of a QA is how they hand a defect to a developer. A bad bug report โ "reschedule is broken sometimes" โ costs an engineer an hour of reproduction before they can even start fixing. Our QA files reports that lead with exact repro steps, the environment (device, OS, build hash, network condition), the expected versus actual, a video, and, when she can, the narrowed-down trigger. On the state-leak bug she'd already isolated it to the back-button path and noted the component was shared. The fix took the engineer twenty minutes because the diagnosis was done. That's not admin work; that's the tester doing the first half of debugging.
Regression passes and release sign-off are someone's actual job
Every release, something that worked last month can quietly break. Owning the regression pass โ running the known-good paths before every ship and confirming the last three bug fixes didn't regress โ is a real responsibility that needs a single accountable person. When our QA signs off on a release, that means a specific human ran a specific checklist and is putting her name on it. That's a very different thing from "the tests passed." Tests passing tells you the code does what the code said it does. Sign-off tells you the product does what the customer needs, on the hardware they own.
The checklist your unit tests will never run
Here's a slice of what she runs that no automated suite in that codebase covered: keyboard-only navigation through the booking flow; screen-reader labels on the date picker (the calendar was a div soup with zero announced state); color contrast on the "unavailable" slots (failed WCAG AA, invisible to a good chunk of users); the app in the OS's largest font size (the confirm button pushed off-screen); pasting an address with a newline in it; rotating the device mid-form; a booking exactly at the DST spring-forward hour that doesn't exist. Seven checks, seven findings, zero of them expressible as a unit test without first knowing to look.
What you're actually buying
You're buying a person who turns "it seems to work" into "here is exactly what works, what doesn't, and on which devices." You're buying test plans and edge-case matrices you get to keep, exploratory testing that finds the bugs scripts can't, real-device coverage, bug reports that cut developer time, and a name on the release. That's a discipline, not an afterthought.
If your pod is shipping software that real people touch, put a human QA on it before the next release, not after the next incident. We'll embed one this week and you'll see the first test plan in days. Tell us what you're building and we'll scope it with you.