Skip to Content
Tech debtTesting

Testing & QA Debt

Coverage reality vs the targets in Testing & QA. Back to register.

Coverage reality vs targets (TD-02)

The testing doc states targets of Prediction 90%+, Finance 80%+, all modules 70%+. Measured test-file counts in the active codebase (2026-06-03) tell a different story:

ModuleTest .kt filesSource .kt filesNotes
server53468Only meaningfully tested layer (routes, DB, services)
shared4491Near-zero — most prediction/finance/business logic lives here now
core231Minimal
composeApp0287No UI/integration tests
androidApp02Thin host; little to test

The headline coverage targets are aspirational, not met on the client side. Because feature logic was consolidated into shared/, the 4-file shared test suite is the most important gap.

Test infrastructure rebuild (TD-02)

  • The test-core module (Hilt-based test activity, TestTasksDataModule) was removed with the rest of the old Android stack. Any tests that depended on it must be re-authored against koin-test.
  • No Compose Multiplatform UI tests; compose-ui-test is declared (1.7.8) but unused at the app level.

E2E / integration (from the testing doc)

  • E2E: “limited coverage” — only ad-hoc manual testing of critical workflows.
  • Client integration: essentially none; integration tests exist server-side (Ktor Test Host + Exposed, Postgres localhost:5431/testdb).

Target state

  1. Restore a shared/commonTest suite covering prediction engine, finance calculations, and the consolidated view models (priority order matches the old targets: prediction → finance → rest).
  2. Re-establish a koin-test base to replace test-core.
  3. Add a thin layer of Compose UI / navigation tests for the shared screens exercised during migration step S6.
  4. Wire jacocoTestReport/Kover into CI and track the actual numbers against the 70/80/90 targets (today they are unmeasured).