Work · Automation, QA & immersive

Testing money-moving features

Release validation for a fintech app, and a sample suite that checks the rules a bank cannot break.

Organisation
Waya Bank, Lagos
My role
AI & QA Engineer
When
2026
Stack
Python, Test design, Property-based testing, Concurrency testing

Problem statement

Every release of a banking app can break something that costs real money: a fee posted twice, a retry that sends money twice, a race that overdraws an account.

Objectives & goals

  • Validate workflows and data across releases
  • Find reliability defects before customers do
  • Escalate with evidence engineers can act on

Process

  1. DiscoverLearned the transfer, limit and reversal rules.
  2. DefineA test matrix of what could go wrong and what should happen.
  3. BuildExample tests, concurrency tests and randomised invariant tests.
  4. ProveReported defects with reproduction steps.

Who it's for

Customers

Expect their balance to be right, always.

Engineers

Need clear, reproducible defect reports.

Challenges

  • Retries after timeouts
  • Many transfers at the same instant
  • Edge cases nobody thought to write down

What I built

Test matrix

Ten cases from happy path to reversals.

Concurrency test

50 transfers fired at once never overdraw.

Property test

2,000 random transfers: total money never changes.

Clear error codes

Every rejection has a code a tester can assert on.

Flow

  1. Read the rules
  2. Write the matrix
  3. Example tests
  4. Concurrency tests
  5. Property tests
  6. Report defects

Results

10test cases in the sample matrix
2,000random transfers per property run

Tools & languages

  • Python
  • Test design
  • Property-based testing
  • Concurrency testing

The code

An invented wallet service as the system under test, with the full matrix. 10 tests.

The repository is private. I'm happy to share it with a hiring team or walk you through it on a call.

Request a code walkthrough

Samples are written with synthetic data. No client code or client data is used.