GetQA
Deliverables

See exactly what you get.

Every artifact below is a representative example of our engineers' output, in the format your team receives it.

01 / QA auditWhere is quality actually leaking today?

Before anyone writes a test, we spend a week inside your product and your pipeline. What comes out is one document: what we found, how we know, and what each gap is putting at risk.

Findings are ranked by what they endanger, not by how easy they are to fix. The report is yours whether you continue with us or not.

QA Audit22 findings
Scope
Web app, 3 environments, 6 weeks of releases
On site
5 working days
Delivered
Report + walkthrough call

Every release is tested by the engineers who wrote it, so the same assumptions guard the code twice. Coverage follows where the team feels risk, and stops where the product actually breaks: money paths, permissions, and data export.

3critical
Checkout, refunds
7major
Auth, exports, staging
12minor
Empty states, copy
Finding 01critical· Payments

The refund path has never been tested end to end

What we saw

No test case, no ticket and no release note mentions a refund since v3.0. The path crosses three services and one provider webhook, and each part is tested alone.

What to do

Cover it first. It is the shortest route to money leaving an account by mistake, and it is the one failure a customer reports to their bank rather than to you.

Finding 02major· Environments

Staging cannot reproduce a payment failure

What we saw

The staging host's outbound IP is not on the payment provider's allowlist, so every callback is rejected before it arrives. Three of the last five bugs closed as staging only were this.

What to do

Fix the allowlist before adding coverage. Until staging can fail the way production fails, a green run there tells you nothing.

Finding 03major· Process

Most defects never reach the tracker

What we saw

In the last sprint, 14 of 19 defects were reported in a Slack thread and closed there. Two were fixed twice by different engineers, and none of them are countable today.

What to do

One tracker, one format, no exceptions. The ticket shape in section 03 is what we file, and it is what makes an escape rate a number instead of a feeling.

02 / Test resultsHow do I know a test was actually run?

Every case we execute closes with a comment like this one: the steps exactly as they were performed, and what happened in plain language.

A pass tells you the behaviour held. A fail tells you what broke and hands you the recording, so your engineer does not have to reproduce it before starting.

webTest runs
Ahmet Sevinc@ahmetsevinccommented Apr 12, 11:04

Settings > Team: invite a member with the Viewer role

Passed
Steps as performed
  1. Sign in as an admin on the test environment.
  2. Open Settings > Team and invite [email protected] with the Viewer role.
  3. Accept the invitation from a second browser profile.
  4. Confirm the new member appears in the team list with Viewer permissions.
Result

The invitation arrived in eight seconds and the member appears in the team list with the Viewer role. Viewer restrictions hold: billing and team settings are hidden, and the two admin-only endpoints return 403 rather than rendering an empty page.

team-invite-viewer.mp40:47 · 3.1 MB

03 / Bug ticketsWill bugs arrive in a form my team can act on?

We file directly in your tracker, in your format. Expected against actual, numbered steps that reproduce on a stated host, and a screen recording attached to every report.

Each ticket also records which versions it affects and links back to the test case it came from, so nothing turns into a conversation about whether it is real.

webIssues

Dashboard > Widgets

Chart legend disappears after switching between date ranges QA-1142

OpenOpened Apr 14 byAhmet Sevinc
severity::major
Steps to reproduce
  1. Navigate to Dashboard.
  2. Locate the "Monthly Activity" chart.
  3. Select "Last 30 Days" from the date range dropdown.
  4. Select "Last 90 Days" from the same dropdown.
  5. Observe the legend is no longer displayed.
Expected result

The legend stays visible and updates every time a new date range is selected.

Actual result

The legend disappears after the second date range change and does not reappear until a full page reload.

chart-legend-repro.mp41:12 · 4.2 MB
Affected
2.4.0, 2.3.9
Browser
Chrome
Replicated on
192.168.1.50
caseTC-318

04 / Investigation notesDo you stop at “it’s broken”?

When a bug has a pattern behind it, our engineer keeps going and writes down what they found. Sometimes that is a root cause in your code; sometimes it is proof the code is fine and the environment is not.

This is the part that saves your team the most time, and the part you cannot buy from a click-through vendor.

webQA-1142
2 comments
Ahmet Sevinc@ahmetsevinccommented Apr 14, 10:42

Spent an hour narrowing this before filing. The legend is not being unmounted, it is being re-keyed. Every date range change re-issues the session token, and SessionTokenCache_v2 keys entries by user ID alone.

So on the second lookup the entry written for the previous region_scope comes back, and the widget renders against a scope it has no series data for. That is why the legend is empty rather than stale, and why a reload hides it again. Worth checking anywhere else that reads region_scope off the cached token.

Ahmet Sevinc@ahmetsevinccommented Apr 14, 11:20

Reproduced on 2.3.9 as well, so this is not new in 2.4.0. I have left the branch running on 192.168.1.50 if anyone wants to watch it happen live.

05 / Test casesWhat happens to this coverage if your engineer leaves?

Nothing. The coverage lives in a test management suite you own, written so a new person can run it on day one: pre-conditions, action, data, expected result.

It also gives your team something to point automation at later, instead of starting the specification from scratch.

Test casesTC-891

Storefront / Checkout / Payment

Checkout > Payment: apply a discount code and complete an order using a saved card

TypeManual
PriorityHigh
LayerE2E

Verifies that a returning customer can apply an active percentage discount code and complete checkout with a saved card, and that the discount is reflected in both the order total and the order history.

Pre-conditions
  • App version 4.2.0 deployed to the test environment.
  • A logged-in customer with a saved card and a default shipping address.
  • An active 15% discount code with no minimum spend.
Steps
  1. Add items to the cart.

    Input data

    Standard Notebook x2, Desk Lamp x1

    Expected result

    Both items are added and the cart icon shows 3.

  2. Open the cart and apply the discount code.

    Input data

    SAVE15

    Expected result

    A discount line appears and the subtotal drops from $78.00 to $66.30.

  3. Proceed to checkout and confirm the saved payment method.

    Input data

    Visa ending 4242

    Expected result

    The saved card is preselected and the default shipping address is prefilled.

  4. Place the order.

    Expected result

    The confirmation screen shows a total of $66.30 and an order number.

  5. Open Orders in the account area.

    Expected result

    The order is listed as Paid with the discount shown as a separate line.

Last run
Apr 12, v4.2.0
Result
Passed

06 / Reporting cadenceHow often will I hear from you?

Daily in writing, so you never have to ask what QA did today. Then a fuller picture at the two moments you make decisions: end of sprint and before a release goes out.

You get one named engineer, in your Slack, on your standup if you want them there.

dailyby 18:00 your time

A short written summary in Slack: what was tested, what broke, what is blocked. Plus the nightly regression run.

$ npm test -- --suite=regression
PASS checkout/payment.spec.ts (24)
PASS dashboard/widgets.spec.ts (11)
FAIL reports/export.spec.ts (1)

Tests: 118 passed, 1 failed, 119 total
Time:  4m 12s  ·  env 192.168.10.42
per sprintlast day of the sprint

A sprint report: cases added, bugs filed by severity, regression pass rate, and the areas we think are getting risky.

sprint-24-report.pdf· 6 pages
per releasebefore you ship

A release sign-off: full regression run, an explicit go or no-go, and a list of the open issues you are shipping with.

go · v4.2.0

The panels above show our output inside the tools teams already use. GitLab and Qase are trademarks of their respective owners; neither is affiliated with GetQA, and we work in whichever tracker and test management suite you already run.

See these artifacts against your own product.

Thirty minutes is enough to tell whether this fits. We look at how you release today, and show you a full week of work from a team about your size.

Chat on WhatsApp