payments-qa-framework
×

QA · Test Automation

Payments QA Framework

An end-to-end automation suite for a fintech payments platform. It drives the app, checks the screen, and verifies the ledger of record.

Playwright Cucumber BDD Cypress Selenium TypeScript CI green ✓

Watch a test drive the app

Pick a scenario and hit Run. The test fills the form, sends the payment, and checks the screen and the database as it goes.

Ledgerline · Alice Rahman
Accounts
New payment
From
To
Amount
Reference
History

features/payment_transfer.feature

Worth saying: this page runs an in-browser twin of the app so the tests can play out in front of you. The real suite drives Chromium through Playwright against an Express + SQLite backend. The CI below is the proof, not this animation.

The real run

One command boots the app, runs every scenario headless, and tears it down.

$ npm test Booting Ledgerline · launching Chromium · reseeding ledger per scenario… ................................................................ 15 scenarios (15 passed) 64 steps (64 passed)
GitHub Actions · every push & PR BDD (UI · API · DB) Cypress smoke Selenium smoke

How it's built

A test pyramid: many fast checks low down, a few real browser journeys on top. On a payments system the database is the tie-breaker.

UI · browserPlaywright journeys: sign-in, transfers, validation
API · HTTPStatus & error codes, pinned as a contract
DB · ledgerBalances + the "total money never changes" invariant
ToolWhere it lives
Playwrightsrc/pages, src/api, src/support
Cucumber (BDD)features/*.feature + step definitions
Cypresscypress/e2e/smoke.cy.js
Seleniumselenium/smoke.test.js
CI.github/workflows/ci.yml, typecheck + all suites
Databasesrc/db/LedgerDb.ts, read-only ledger assertions

Page Objects, a custom Cucumber World, per-scenario isolation, multi-environment config, screenshot on failure.