Back to home

Quality, in numbers.

Every number on this page is counted from the real repository it names, and the "not tested yet" lists are kept on purpose: a tester who hides gaps is not a tester you want.

Test coverage per project

unitAPI / contractend to endmanual

APEX F1

101 unit / 19 API / contract / 10 end to end

Every push in GitHub Actions (lint, typecheck, unit, contract, e2e)

Not tested yet: Push notification delivery on real devices; Rate-limit behaviour under live provider throttling.

Worlds 2026 Live

48 unit / 6 end to end

Every push in GitHub Actions (lint, typecheck, unit, build), then 6 Playwright flows against the live deployment

Not tested yet: Push delivery end to end.

Worlds 2026 QA suite

19 API / contract / 98 end to end

Last run 28 Oct 2026: 120 runs against the live site (API, desktop and mobile Chrome), 115 passed and 5 known-defect runs failed as expected. Five open defects are documented with reproduction steps. Runs on push and pull request in GitHub Actions.

Test plan ↗Case table ↗Bug log ↗Repository ↗

Not tested yet: Live-match states; Admin panel and push delivery; Browsers other than Chromium.

KARHUTLA Watch

21 unit / 11 end to end

Unit tests plus end-to-end tests against the deployed app, every push in GitHub Actions

Not tested yet: The live FIRMS path with a real API key.

QuakeWatch

11 end to end

Every push in GitHub Actions, against the deployed app, including mocked provider failures and the alert sound

Not tested yet: No unit tests yet.

RiskLens

31 unit / 17 end to end

Every push in GitHub Actions: 22 backend and 9 frontend unit tests, lint, typecheck and build, then 17 Playwright scenarios against the full 13.3M-row warehouse

Not tested yet: Parallel load on the full dataset.

ShelfSeeker

39 end to end

In the ShelfSeeker E2E repo, desktop and mobile emulation, every push

Not tested yet: PWA install and offline update flows on real devices; Barcode scanner on real devices.

F1 public APIs (Postman)

13 API / contract

Newman in GitHub Actions, 41 assertions across 13 requests

Not tested yet: Load and rate-limit behaviour.

Dewa Management App

6 unit

flutter analyze and 6 login-page widget tests in GitHub Actions on every push; Maestro smoke flows run locally against a device

Not tested yet: Most UI flows; Maestro flows in CI (they need an emulator or device).

php2shell-check

41 unit

Every push and pull request in GitHub Actions, on Python 3.9 and 3.12

Not tested yet: Real PHP/FPM, container and non-Ubuntu deployments end to end.

SauceDemo (manual sample)

24 manual

24 designed cases; 11 re-executed live on 18 Oct 2026, 4 bugs filed

Live API checks

The same style of assertions I write in Postman, executed right now from your browser against the public USGS earthquake feed that powers QuakeWatch. Nothing here is cached or staged.

GET https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson

Trigger a real CI run

Run the QuakeWatch test suite, for real

This triggers the actual GitHub Actions workflow: 6 Playwright tests against the deployed app, browser install included, usually 3 to 6 minutes. The status below is polled from the public GitHub API while you wait.

Bugs I found and fixed in my own projects

A tester's own code should not get a free pass. Each entry links the real fix commit.

Audit could clear a server that was never patched

php2shell-check · 22 Oct 2026

The scanner credited any installed php* package as a fix, so a host running a self-compiled PHP could be reported patched when it was not, the worst verdict a security tool can give. The probe now tracks which package owns each binary, an incomplete inventory can never produce an overall patched verdict, and redirects, timeouts and empty logs fail safe. Verified with 41 tests.

Fix commit 977d19f

Production crash on the FIRMS proxy

karhutla-watch · 16 Oct 2026

The province-boundary import worked locally but crashed the deployed serverless function with FUNCTION_INVOCATION_FAILED. Found it by hitting the live endpoint, fixed by inlining the geometry.

Fix commit 263a536

Push notifications silently never worked

apex-f1 · 18 Oct 2026

The env parsing read the wrong variable names, so the VAPID keys were always undefined and every push setup quietly failed. Found while wiring the notification flow, fixed at the parser.

Fix commit a0ea183

Team badges invisible in light theme

apex-f1 · 18 Oct 2026

White-on-transparent badge artwork disappeared on the light background. Rendered them on a dark plate instead of recolouring the artwork.

Fix commit 9b8b6c9

Push reminders fired for unchanged matches

worlds-2026-live · 17 Oct 2026

Every sync tick reminded subscribers about matches that had not changed. Reminders now only consider real changes, and the sync endpoint is idempotent.

Fix commit c41c38d

Team rosters silently corrupted by a parser change

worlds-2026-live · 17 Oct 2026

The Liquipedia scraper misread Person templates, dropping players from team pages. Fixed the parsing and added a refetch when a roster is missing.

Fix commit 6982e87

Published test report broke on every run

ShelfSeeker-e2e · 16 Oct 2026

node_modules leaked into the gh-pages branch and broke the Pages build. The publish step now cleans untracked files before adding the report.

Fix commit 9b99367