QA & test automation

A suite you trust enough to deploy on — not one people re-run until it happens to go green.

  • Playwright
  • Cypress
  • pytest
  • Vitest
  • k6
  • Appium
  • BrowserStack

A flaky test suite is worse than no suite. It costs the same to run, it trains everyone to hit retry, and it hides the failure that was real. Testing work usually has to start with fixing trust, not adding coverage.

We build end-to-end coverage on the handful of journeys that actually matter — sign up, pay, the core loop — and keep it fast enough to gate every pull request. Below that sits the unit and integration layer, where most assertions belong and where they cost least to run.

Flake gets a policy rather than a shrug: quarantined immediately, tracked with an owner, fixed or deleted within a fortnight. And test data gets designed, because most end-to-end suites are unreliable for the boring reason that they share mutable state.

What you get

  • End-to-end suite on the journeys that would cost you money if they broke
  • Flake quarantine policy with owners and a fortnight deadline
  • Test data strategy and disposable environments per run
  • PR gates with an agreed runtime budget, plus a fuller nightly suite

Common questions

Can you add tests to a codebase written without them?
Yes. We start at the boundary — end-to-end and API-level tests that pin current behaviour — so refactoring underneath becomes safe. Reaching for unit tests first in an untested codebase mostly documents the bugs.
Do you do manual and exploratory QA?
Exploratory testing around a release, yes, and it catches things automation never will. A permanent manual QA function is not what we are for; if that is what you need, we will say so.
Our suite is flaky and nobody trusts it. Is that fixable?
Usually, and faster than expected. The causes are a short list: shared mutable test data, timing assumptions instead of waiting on state, and environments that differ between runs. We fix the causes rather than adding retries.

Next step

Tell us what has to ship, and by when.

One call, no deck. If we are not the right team for it we will say so, and usually point you at who is.

Start a conversation branislav@thrivee.io

Typical reply within one business day · CET / CEST (UTC+1 / UTC+2)