Ayodele AjimatiContact ↗
03 · QA & Testing← All projects

Physician Copilot — E2E, Smoke & Functional Testing

Full QA coverage of a healthcare SaaS — Playwright automation for the web interface, API validation, smoke testing per release, and functional testing of the iOS and Play Store apps.

GitHub repository ↗6 tools · 4 measured outcomes
Physician Copilot — E2E, Smoke & Functional Testing

Problem

Physician Copilot is a healthcare platform handling clinical workflows. It needed structured test plans across three surfaces (web, iOS, Android) with backend validation of CORS, auth flows, and data serialization — and a CI-integrated test suite that could gate every release.

Approach

  1. 01

    Designed test plans covering web interface, REST API endpoints, and clinical user workflows.

  2. 02

    Built Playwright scripts for functional, UI, and regression testing of the web app.

  3. 03

    Validated backend systems: CORS configuration, serialization/deserialization, auth/authorization flows, and error message contracts.

  4. 04

    Integrated Playwright test suite into the CI/CD pipeline for automatic execution on each commit.

  5. 05

    Executed smoke and functional test runs on iOS (TestFlight) and Android (Play Store internal track) for each release.

  6. 06

    Documented all defects with root cause analysis to support fast developer turnaround.

Results

Test cases across all surfaces
80+
CI integration
GitHub Actions
Backend contracts validated
CORS, auth, serialization
Platforms tested
Web, iOS, Android

Code

Playwright test validating auth flow and CORS headers on the clinical dashboard.

test('auth headers and CORS on clinical dashboard', async ({ request }) => {
  const res = await request.get('/api/dashboard', {
    headers: { Authorization: `Bearer ${token}` },
  });
  expect(res.status()).toBe(200);
  expect(res.headers()['access-control-allow-origin'])
    .toBe('https://app.physiciancopilot.com');

  const body = await res.json();
  expect(body).toHaveProperty('patientList');
  expect(Array.isArray(body.patientList)).toBe(true);
});

Stack

  • Playwright
  • Postman
  • GitHub Actions
  • TestFlight
  • Play Store
  • REST API

Why it matters

  • Test plans written before automation — gave the team shared understanding of what passes and what fails.
  • Backend validation caught auth contract mismatches before they reached production.
  • CI-gated tests blocked two broken releases from shipping.