Onboarding

What we need from you.

Most teams get everything ready in an afternoon. Below is exactly what to prepare, why each item matters, and how the project runs from start to finish.

You GL
  • ✓ Sign-up & login
  • ✓ Checkout with PayFast
  • ✓ Admin can refund orders
your-company / web-app
Add collaborator greenlight-e2e Invited
e2e/setup ← tests are written here
PR #1 Add Playwright E2E suite
🔒https://qa.your-app.co.za
QA / staging ✓ Production ✗
admin qa-admin@yourco.co.za ••••••••••••
customer qa-customer@yourco.co.za ••••••••••••
🔒 Locked · do not change
REC
Add to cart Checkout Pay R450

“…now I click Pay. I should see the order confirmation and get an email.”

  • auth › signs up & logs in
  • checkout › pays with PayFast
  • admin › refunds an order
  • roles › customer can’t see /admin
PR #1 merged · E2E suite live in CI
1/6 A free 30-minute call. We pick the flows where a bug would hurt most.
The list

Eight things to prepare.

Required

Access to your codebase

  • An invite to your repo on GitHub, GitLab, Bitbucket or Azure DevOps
  • Permission to push a branch and open pull requests
  • You review and merge. We never push to main

WhyTests are code. Keeping them next to your app means they are versioned, reviewed and run alongside it.

Required

A stable QA or staging environment

  • A URL that is up during working hours
  • The same features as production, with any feature flags noted
  • VPN or IP-allowlist access for us and your CI runners, if it is private

WhyTests need a predictable place to run. Production has real customers and real data, so the tests never run there.

Critical

Dedicated test accounts that never change

  • One account for every role in scope (e.g. admin, customer, manager)
  • Email + password for each, on addresses your company controls
  • Created only for testing, never used by a real person

WhyEvery test starts by logging in. The rules for these accounts are further down this page.

Read the credential rules →
Required

A screen recording of each flow

  • Loom, Teams, Zoom, or your phone pointed at the screen. All fine
  • Talk through what you click and what you expect to happen
  • 2–5 minutes per flow is typical

WhyA short video shows us in minutes what a spec document takes days to explain, including the edge cases only your team knows about.

Required

A technical point of contact

  • A developer who can answer questions and merge the PR
  • About 1 hour a week, mostly async on Slack, Teams or WhatsApp
  • Someone to confirm when behaviour is a bug and when it is intended

WhyQuestions always come up. Quick answers keep the delivery date on track.

Usually

CI/CD access

  • Permission to add a workflow file (GitHub Actions, GitLab CI, etc.)
  • Someone who can add the test credentials as encrypted secrets
  • A Slack or Teams webhook for failure alerts (optional)

WhySo the tests run automatically on every pull request, not just on our machines.

If applicable

Test data & third-party sandboxes

  • Payment sandbox keys: PayFast, Paystack, Peach Payments, Ozow, Stripe…
  • A test inbox for emails, and an SMS OTP bypass on QA
  • Seed scripts, or an API that can create and clean up test data

WhyReal payment and SMS providers can’t be used in automated tests. Sandboxes make checkout and OTP flows testable.

Nice to have

OK to add data-testid attributes

  • Small, invisible attributes on key buttons and inputs
  • We add them in the same PR and your team reviews them
  • No visual or behavioural change to your app

WhyStable hooks mean the tests don’t break when you change copy or styling.

Important

The rules for test accounts.

This is the one thing that makes or breaks a test suite. The accounts we test with have to stay exactly as they were set up, for as long as the tests exist.

What happens if one changes?

  1. Someone updates qa-admin’s password
  2. Every admin test fails at the login step
  3. CI goes red on every pull request
  4. The team learns to ignore red builds
  5. A real bug slips through, unnoticed
  1. 01

    Never change the password, email or username.

    Not even “just quickly to test something”. Changing any of these breaks every test that uses the account.

  2. 02

    Never change the account’s role or permissions.

    The tests expect exactly what each role can and can’t see.

  3. 03

    Don’t delete or deactivate them.

    This includes database clean-ups and QA refreshes. If QA is restored from a snapshot, re-create the accounts afterwards.

  4. 04

    Exempt them from expiry and lockout policies.

    No 90-day password expiry, forced resets or lockouts after failed attempts.

  5. 05

    Handle MFA and CAPTCHA on QA.

    Either turn MFA off for these accounts on QA, or share the TOTP secret so the tests can generate codes. Disable CAPTCHA on QA or use the provider’s test keys.

  6. 06

    No humans allowed.

    Nobody on your team logs in with them. People testing by hand use their own accounts.

  7. 07

    Warn us before auth changes.

    New SSO provider, a redesigned login page or new password rules: tell us first and we’ll update the tests before they go red.

  8. 08

    Share them securely.

    Use a password manager (1Password, Bitwarden) or put them straight into CI secrets. Never send them in plain email or WhatsApp.

The video

How to record your flows.

No editing and no script needed. Just use the product the way a customer would and talk while you do it.

  • Record one video per flow and name the file after the flow.
  • Start logged out, from the page a real user would start on.
  • Say out loud: “I click X, and I expect to see Y.”
  • Show the happy path first, then the most common error (wrong password, declined card).
  • Mention what must not happen, e.g. “a customer must never see the Admin menu”.
  • Point out anything that changes every time: dates, order numbers, emails.
Example: checkout-with-promo.mp4

0:00 “I’m logged out on the homepage. I search for ‘running shoes’ and add the first one to the cart.”

0:24 “In the cart I enter promo code SAVE50. The total should drop from R500 to R450.”

0:41 “If I type an expired code like OLD10, I should see ‘This code has expired’ and the total stays the same.”

1:05 “I pay with the PayFast sandbox card. I land on the confirmation page with an order number, and a confirmation email arrives.”

1:32 “A customer should never see the ‘Refund’ button. Only admins can refund.”

The process

What each week looks like.

Shown for a Core Coverage project. A Smoke Suite takes about half as long.

  1. Before we start
    • Free discovery call
    • Written scope & fixed quote
    • NDA signed, 50% deposit
  2. Week 1
    • Everything on the checklist below
    • Framework & CI set up
    • First test (login) running in your CI
  3. Weeks 2 – 3
    • Flows built in priority order
    • Friday demo of new tests passing
    • Any real bugs found are reported to you straight away
  4. Final week
    • Suite run 20× in a row: it must pass every time
    • Alerts, README & recorded walkthrough
    • Live handover, PR merged, access removed

NDA first

Signed before we see a single line of code.

Only the access we need

We never need admin rights to your org or any access to production.

POPIA-friendly

Test accounts use fake data. No real customer personal information is used or stored.

Clean exit

At handover we remove our access and confirm it in writing. You rotate the secrets if you want to.

Your checklist

Tick it off as you go.

Your progress is saved in this browser. Use “Copy as text” to paste the list into Slack, Teams or Jira for your team.

0 / 15 ready

Access
Environment
Test accounts
Knowledge
Next step

Ready to start, or have questions?

Book a free call and we’ll go through this list with you and your developer.