Quality Assurance
Production-grade quality discipline
Every feature is tested before it reaches your device. The full Zovia codebase carries over 9,700 automated tests across 36 packages and 8 apps. We catch bugs so you do not have to.
9,700+
Automated tests
36 + 8
Packages and apps
Local
Pre-push test gate
Every line of code passes through multiple layers of automated testing before it reaches production.
Every piece of code is tested in isolation. When we change a payment flow or update authentication, hundreds of automated tests verify that everything still works exactly as it should.
We test how different parts of our apps work together. Our IntegrationTestHarness provides timing control, navigation tracking, and snackbar verification for realistic async testing scenarios.
Real user flows tested automatically. Sign in, create a counter, schedule a reminder, sign out: we simulate actual usage patterns to catch issues before you ever see them.
Tests run locally before every push, no exceptions. CI workflows are available on demand for full-suite runs and platform builds. The discipline lives with the developer, not in a YAML file that can be skipped.
The discipline is local. The infrastructure is available when needed.
Every push
Developer runs flutter test (and cd zovia-cloud-code && npm run validate:schema for cloud changes) before every git push. The 'stone it' command bundles tests, commit, and push into one motion that fails fast on regressions.
On demand
A complete test suite across all 36 packages can be triggered from the GitHub Actions UI when needed: before a release, during an investigation, or to seed a coverage report.
On demand
Full integration testing using our IntegrationTestHarness, catches bugs that unit tests miss: widget disposal during async, callback errors, double-tap prevention.
Tiered, honest, and visible. These are the live numbers, not aspirations.
Tiered Coverage
85-95%
Critical packages like zovia_auth, zovia_sync, zovia_init, zovia_core_base, zovia_test_utils, and z_design carry 85 to 95 percent line coverage. UI surfaces and game-only packages run lower by design.
Cloud Coverage
Improving
Cloud function coverage is the active improvement front. Critical auth, IAP, and privacy flows are covered first. Less critical jobs are being brought up over time.
Test Execution Speed
Fast
Unit tests run quickly so the pre-push gate stays painless. Slow tests get refactored rather than skipped.
Regression Detection
Pre-push
The pre-push gate catches regressions before code leaves the developer's laptop. CI is the safety net, not the primary signal.
Counts measured from the source tree on the most recent release. Coverage figures are from the most recent measured run; individual packages drift between formal coverage audits.
Tested Packages
Quality is not negotiable. Every feature is tested before you see it. Every update is verified before it ships. The discipline lives in the developer's workflow, not in a YAML file.
Test before you push, every time
No feature ships without comprehensive tests
Local gate first, CI as the safety net
Continuous improvement, coverage goals raised quarterly
Transparency, the numbers above are measured, not aspirational