When the tests run
Pick the timing that matches where the new code is reachable. These are two options, not two steps.Before merge
Preview environment. The review runs against that request’s own deployment,
before the code reaches your main branch.
After merge
No preview environment. Run the review after the merge lands and the deploy
finishes. The agent tests the merged diff against staging or production.
On a preview environment, before merge
QA.tech gets the target from one of these:- A deployment your Git host reports, including GitHub Deployments created from Actions
- A preview URL in a
@qa.techcomment on the request - For a mobile app, the build you upload for that pull request. Mobile reviews use the binary, not a preview URL.
- For an API application, the preview base URL
After merge, when you have no preview environment
Run the review after the merge lands and the deploy finishes. The agent reads the merged diff and tests against staging or production. The result is posted on the merged request.A post-merge change review tests the merged code. The post-merge
agent is a later step on GitHub: it can
promote tests from that review into your regression suite. It does not replace
the review.
How it works in practice
Here’s what happens when you open a PR that changes your checkout flow: 1. Automatic DetectionHow a review works
This applies to every CI. The CI guides below cover only how the review starts.What a review does
How a review runs
- Verdict: Pass/fail/unable to verify
- What was tested: Description of coverage
- Results summary: Patterns and themes
- Test details: Table with individual test results
Test selection and creation
How tests are selected
The agent uses AI to semantically match PR changes to test goals - not keyword matching. Example: PR changes checkout payment flow- Selects tests that exercise the changed behavior and affected adjacent flows
- Prefers active tests, but can run relevant draft tests
- Adds existing smoke coverage for affected user journeys when test risk is high
- Does not run unrelated tests just because they belong to the same application
How blast radius sets test depth
QA.tech does not use the same test count for every request. After mapping the change to user flows and existing coverage, the agent assesses how much runtime verification the change warrants. This is a test-risk assessment, not a code-quality score. The agent first inventories the user-observable paths the change could break. Depending on the change, these can include:- The intended success path
- Empty, invalid, denied, and error states
- Interactions with existing filters, sorting, tabs, or pagination
- State that should persist after reload or navigation
- Adjacent flows, user roles, and repeated surfaces that share the changed behavior
The resulting risk level changes the review depth:
Every user-facing functional change still gets direct success-path coverage.
Diff size alone does not determine risk. A small change to checkout can be high
risk because it affects a central flow, while a larger change to an isolated,
well-covered settings page can be low risk. A shared authentication change has
a wide blast radius when sign-in, sign-up, and account recovery all depend on
it, so the agent covers each reachable flow.
The review reports its risk level and rationale under the result headline. Risk
controls coverage depth; it does not change the pass, fail, or unable-to-verify
rules.
When tests are created
Tests are created only when coverage gaps exist, such as when you’re developing a new feature not yet covered by your testing suite. The number of new tests depends on the uncovered breakable paths and the test risk. A narrow, well-covered change may need no new tests. A central change with a wide blast radius can require several new tests and existing smoke tests. Example: PR adds Apple Pay to checkout- Stay in your suite labeled ‘ephemeral’
- Available for future PRs
- Manage in Settings → Test Cases (filter by ‘ephemeral’ to find them)
Common questions
Will generated tests clutter my test suite? No. The agent only creates tests for coverage gaps. Most bug fixes and refactors create none, and a large feature usually adds a few focused tests. Better coverage means fewer gaps, so fewer tests are generated over time. The agent created tests I don’t need. What can I do?- Add review context with specific guidelines in the integration settings.
- Update existing tests so they cover the functionality.
- The agent follows the patterns in your existing tests.
Pick your CI
Each guide is only the pull request setup. The same CI names under Regression Testing run a test plan instead.GitHub
App, Change Review Action, after merge, or mobile.
GitLab
Merge request reviews on deploy, comment, CI, or API.
Bitrise
Review the mobile build Bitrise produced.
Envoyer
Not supported. See what to use instead.
API
Bitbucket, Jenkins, CircleCI, or any HTTP client.
Writing PR descriptions
Give the review the context it needs.