PracticeQAAutomation logoPracticeQAAutomation

📘 Project KT · Healthcare

🩺 MediCare+

Doctor appointments

Complexity
Advanced
Screens
5
Scenarios
8
Test cases
15

1Business context

MediCare+ books doctor appointments. The business goal is filling doctors' calendars without double-booking: availability by day and slot, closed Sundays, new vs existing patients, insurance details and self-service rescheduling.

Pick a specialty, filter doctors, choose a day (Sundays closed) and a free time slot, fill new or existing patient details, then reschedule or cancel.

2Users & roles

  • 👤 Patient — finds a doctor, books, reschedules or cancels
  • 👤 Existing patient (P-1001) — details prefilled by lookup

3Modules & screens

ScreenRouteWhat it does
Find a doctor/apps/clinicSpecialty, gender, fee and availability filters, sort by fee
Doctor profile/apps/clinic/doctor/[id]In-clinic or video, day chips (Sundays closed), time slots
Patient details/apps/clinic/detailsNew or existing patient, insurance fields, consent
Confirmation/apps/clinic/confirmationAppointment id (APT-…) and type
My appointments/apps/clinic/appointmentsReschedule and cancel

4Main end-to-end journey

Book a video consultation

  1. Choose Cardiology and book the first doctor
  2. Choose Video
  3. Pick the first enabled day and first free slot
  4. Continue as a new patient with details and symptoms
  5. Accept consent and confirm

Expected: Appointment confirmed with an APT- id and type Video consult

5Business rules & validations

  • Specialty & filtersBeginner

    Toggle specialty-*, combine filter-gender, filter-fee and filter-available-today; assert doctor-count.

  • Sort orderIntermediate

    sort-doctors “Lowest fee” must order doctor-fee values ascending.

  • Disabled datesIntermediate

    Sunday chips in appointment-day are disabled; pick the first enabled day with :not([disabled]).

  • Booked slotsIntermediate

    Slots with data-available="false" are disabled; choose a free one and check slot-summary.

  • Existing patient lookupIntermediate

    patient-existing + P-1001 shows patient-found; any other ID shows patient-not-found.

  • Conditional insurance fieldsBeginner

    has-insurance reveals insurance-provider and policy-number, both validated.

  • RescheduleAdvanced

    Move an appointment in reschedule-modal and assert appointment-slot changed.

  • CancelAdvanced

    cancel-appt-<id> → confirm-cancel-appointment sets appointment-status to Cancelled.

6Test data & credentials

URL
/apps/clinic
Existing patient
P-1001
Video consult
20% off
Closed
Sundays

7Glossary

Video consult
20% cheaper than in-clinic
Booked slot
Unavailable slots are disabled
P-1001
The only existing patient ID that the lookup finds

8Watch-outs for automation

  • ⚠️Pick the first enabled day with :not([disabled]) — dates depend on today
  • ⚠️Insurance fields appear only when the checkbox is ticked
  • ⚠️Rescheduling must change the displayed slot

9Suggested test strategy

1 · Smoke

3

P1 positive and end-to-end cases — run on every build.

2 · Regression

15

All cases, incl. 3 negative and 3 edge — run before release.

3 · End-to-end

3

Full user journeys — run nightly.

Start with these smoke cases

  • MEDICARE-01 — Book an appointment
  • MEDICARE-E2E-01 — Book a video consultation
  • MEDICARE-E2E-02 — Reschedule then cancel