Case StudiesCase study / QA & Testing

Testing a healthcare platform like every request is someone's enrollment

How we hold DIAREV's Cloud Run backend, Firestore database and messaging integrations to a production standard before anything ships.

Client
DIAREV
Industry
Healthcare
Services
QA & Testing, Cloud Infrastructure
Stack
Cloud Run, Firestore, k6
At a glance

Healthcare software doesn't get a "we'll patch it later."

DIAREV is a camp-based healthcare platform. Its backend handles live patient enrollment and support-plan data, runs on Cloud Run instances that scale to zero when idle, and sends messages through WhatsApp Business. In software like this, a failed request isn't a poor user experience. It's someone's enrollment that didn't go through. So we test the scenarios that actually break production, not just the happy path.

  • Live enrollment data
  • Scale-to-zero compute
  • Strict template approval
01 / The test suite

Six checks before anything ships

None of these are hypothetical edge cases. Each one maps to a real failure mode we've caught and fixed in production.

Infrastructure

Cold start & concurrency

Concurrent load is fired at a Cloud Run instance that has scaled to zero, the way a real enrollment rush would hit it.

Pass: no dropped connections

Database

Composite index coverage

Every production query pattern is checked against Firestore composite indexes, with parity confirmed across environments.

Pass: zero FAILED_PRECONDITION errors

Integrations

WhatsApp Business templates

Templates are screened before submission for emoji, marketing language and unrealistic sample values.

Pass: approved on first submission

Access control

Key provisioning

Concurrent key-provisioning requests are fired for the same user at the same moment.

Pass: exactly one key per user, no duplicates, no leaks

Performance

Load at peak concurrency

Scripted k6 runs hit production-equivalent traffic patterns at peak concurrency.

Pass: latency and error rate within threshold

Process

Standing pre-deploy checklist

Every check above is folded into one repeatable checklist that gates each release.

Pass: run on every deploy

Business value

A cold-start crash isn't a log entry. It's a caregiver's enrollment failing at the exact moment they try to sign up. Testing a scaled-to-zero instance under concurrent load is how we make sure that moment works.

02 / Results

What changed for DIAREV

Cold-start failures eliminated

Through min-instance and concurrency tuning.

Index gaps closed

No more 500s on enrollment and admin endpoints.

First-pass template approval

WhatsApp Business templates cleared on the first try.

One checklist, every release

A repeatable pre-deploy QA process.

03 / The platform we tested

Every check maps to a real screen a patient uses

DIAREV homepage hero with live reversal count
HomepageThe live reversal counter reads straight from the enrollment database this suite protects.
DIAREV OPD consultation booking page
OPD consultationOnline and in-person booking, backed by the key-provisioning checks above.
DIAREV three-tier program pricing page
ProgramsThree enrollment tiers, each hitting the same endpoints under concurrent load.
DIAREV Health Essentials shop page
ShopCheckout against Razorpay, with GST-inclusive pricing and tracked delivery.
About DIAREV page with patient and camp statistics
About DIAREVPatient and camp counts we cross-checked for consistency across environments.
04 / The full test suite

Every test case, step by step

DIAREV is a camp-based healthcare platform: real patients, real enrollment flows, real infrastructure running around the clock. When you're building for healthcare, "it works on my machine" isn't good enough. Every deploy has to survive concurrent traffic, cold starts, third-party API quirks, and the occasional silently-broken environment variable.

Below are a set of real test cases we run against DIAREV's stack (Next.js frontend, Cloud Run backend, Firestore, plus integrations like WhatsApp Business and OpenRouter). We're sharing them as a look into our QA process: the kind of rigor we bring to every client project.


Infrastructure & Deployment

ID Test Case Steps Expected Result
TC-01 Cold-start stability under concurrent load Trigger multiple admin dashboard API calls simultaneously against a scaled-to-zero Cloud Run instance Requests queue and resolve cleanly without container crashes or dropped connections
TC-02 IAM binding integrity post-deploy After a deploy or service account change, call every backend endpoint that depends on a bound role No permission-denied errors; all bindings resolve as expected
TC-03 Min-instance scaling behavior Drop traffic to zero, then send a burst of requests With min-instances=1 configured, first request responds without a cold-start penalty
TC-04 CPU throttling under sustained load Run a sustained request stream at expected peak concurrency (concurrency=80) Response latency stays within SLA; no throttling-induced timeouts

Database (Firestore)

ID Test Case Steps Expected Result
TC-05 Composite index coverage Run every production query pattern (support plan enrollment, admin endpoints) against a fresh index set No FAILED_PRECONDITION: index required errors; all queries return 200
TC-06 Index parity across environments Diff the test project's indexes against production's firestore.indexes.json Zero drift: every index in prod exists in test and vice versa

Frontend

ID Test Case Steps Expected Result
TC-07 Environment variable resolution Deploy frontend build and confirm every NEXT_PUBLIC_* variable resolves to a live, reachable domain No requests fail against unresolvable or stale hosting domains
TC-08 Visual regression after framework upgrade Compare key pages before/after a Tailwind major-version migration (e.g. v3 → v4) Spacing, color tokens, and responsive breakpoints match pre-migration design exactly

Third-Party Integrations

ID Test Case Steps Expected Result
TC-09 WhatsApp template compliance Submit a booking confirmation template for approval; check for disallowed emoji, marketing language, or unrealistic sample values Template is approved on submission without rejection cycles
TC-10 Concurrent key provisioning Fire simultaneous provisioning requests for the same user against the Lambda + DynamoDB key-issuance flow Exactly one key is generated per user: no duplicates, no leaked keys on refresh

Performance

ID Test Case Steps Expected Result
TC-11 Load test against production endpoints Run a scripted load test (e.g. via k6) ramping to expected peak concurrent users Error rate stays under threshold; p95 latency stays within target

Migration & Cutover

ID Test Case Steps Expected Result
TC-12 DNS cutover verification After repointing a domain's A/CNAME records to a new host, check propagation and SSL issuance Domain resolves to the new host globally within expected TTL; certificate is valid, no mixed-content warnings

Why this matters

None of these are hypothetical. Each one maps to a real class of issue we've caught and fixed on DIAREV: a cold-start race condition, a missing composite index, a WhatsApp template that got rejected for using an emoji. Healthcare platforms don't get a grace period for "we'll patch it later." Building the test case before the bug ships is what keeps enrollment flows and patient-facing features reliable.

This is the standard we hold every client build to at Rise Digital India.


Want a QA process built around your platform's actual failure modes, not a generic checklist? Get in touch with Rise Digital India.

Building something where reliability actually matters?

Rise Digital India · Let's talk

Get in touch