iSpeaker Live iSpeaker Live / Docs
Quality

✅ Testing & QA

Strategy, environments, criteria, and tooling for the current Testing phase.

Overview & Status

iSpeaker Live is in the Testing & QA phase (week 13–14 of 16). The goal of this phase is to validate that the implementation meets the requirements, is reliable across platforms, and is ready for production launch.

📋
Test Scenarios
60+

See Test Scenarios

Test Cases
120+

See Test Cases

🌐
Platforms Under Test
3

Web · iOS · Android

🌍
Locales Under Test
2

Arabic (RTL) · English (LTR)

Test Strategy

We follow a risk-based strategy: more depth on flows that touch money, real-time, and external services; broad smoke coverage on everything else.

Pyramid & balance

  • Unit tests (developer-owned): business logic in services and policies. PhpUnit on backend; component-level on web; Dart tests on Flutter.
  • Integration / API tests (developer-owned): Laravel Feature tests covering endpoint contracts and role guards.
  • End-to-end & manual exploratory (QA-owned): this catalogue — across web & mobile, AR & EN.

Priorities for the current phase

  1. Payment paths — cart, checkout, wallet top-up, refunds, invoices.
  2. Real-time — chat & live rooms under poor network conditions.
  3. Localization — every screen in AR and EN; PDFs & notifications too.
  4. Cross-platform parity — web vs. Flutter equivalence.
  5. Edge cases — slow networks, low-end devices, no-data states, large datasets.

Types of Testing

🧩 Functional

Validate features against acceptance criteria. Happy paths + key edges.

🔗 Integration

Multi-module flows: marketplace → cart → checkout → enrollment → progress.

👤 UAT

Stakeholders or stand-ins perform persona top-tasks.

⚡ Performance

Lighthouse, API timing, list pagination, image lazy-load, bundle size.

🔒 Security

Authn/authz on every endpoint, file upload validation, SQLi/XSS sanity.

♿ Accessibility

Contrast, focus, keyboard, screen reader, semantic landmarks.

🌐 Localization

AR/EN parity, RTL flipping, formatted dates & currency.

📱 Compatibility

Browsers: Chrome / Safari / Edge / Firefox; iOS & Android matrix.

🔥 Smoke / Regression

Quick sanity sweep after each fix; full regression at the end.

Environments

EnvAudienceDataExternal services
LocalDevelopersSeeded fake dataSandbox PayPal, mocked FCM
StagingQA & UATAnonymised production-like datasetSandbox PayPal, real FCM (test app), real Jitsi (test domain)
ProductionEnd usersLive dataLive PayPal, real FCM, production Jitsi

Devices & browsers (minimum matrix)

  • Web: latest Chrome, Safari (macOS & iOS), Edge, Firefox.
  • iOS: latest two major versions on iPhone 12+ and iPad.
  • Android: API 28+ on at least one mid-range & one budget device.
  • Network conditions: 4G fast, 3G slow, intermittent.

Test Data

Standard accounts (staging)

AccountRoleNotes
student.qa@ispeakerlive.comStudentEmpty library, default state
student.full@ispeakerlive.comStudentActive enrollments & book purchases
speaker.qa@ispeakerlive.comSpeakerPublished courses, books, scheduled room
speaker.empty@ispeakerlive.comSpeakerNo content yet — for empty-state tests
admin.qa@ispeakerlive.comAdminFilament panel access

Wallet test states

  • Empty wallet (0.00) — to test top-up flow.
  • Full wallet (500.00) — to test purchase from wallet only.
  • Insufficient balance (10.00) — to test partial / top-up prompt.
  • Pending withdrawal — to test withdrawal lifecycle.

PayPal sandbox

  • Buyer sandbox account for capturing approvals.
  • "Reject card" sandbox for negative-path testing.

Entry & Exit Criteria

✅ Entry criteria

  • Feature dev complete & merged.
  • Unit + integration tests green in CI.
  • Staging build deployed.
  • Test data seeded.
  • Test cases reviewed & assigned.

🎯 Exit criteria

  • 0 open critical defects.
  • 0 open high defects.
  • ≤ 5 open medium defects with documented workarounds.
  • ≥ 95% test case pass rate.
  • UAT sign-off by Product Owner.
  • Performance & accessibility budgets met.

Defect Lifecycle

See the full Bug Reporting page for severity, priority, and the report template.

Quick view of the lifecycle:

stateDiagram-v2 [*] --> New New --> Triaged Triaged --> InProgress: Assigned Triaged --> Rejected: Not a bug / Duplicate / Won't fix InProgress --> Fixed: Code merged Fixed --> Verifying: Deployed to staging Verifying --> Closed: Reproduces no more Verifying --> Reopened: Still failing Reopened --> InProgress Rejected --> Closed

Tools

  • Test case management: shared spreadsheet / TestRail / Notion (this site mirrors the catalogue).
  • API testing: Postman / Insomnia.
  • Mobile testing: physical devices + emulators / simulators; BrowserStack for matrix coverage.
  • Performance: Lighthouse, k6 / Artillery for load.
  • Accessibility: axe DevTools, Wave, VoiceOver / TalkBack.
  • Issue tracking: GitHub Issues / Jira.
  • Screen recording: Loom / built-in OS recorders for repro videos.

Roles & Responsibilities

RoleResponsibilities
QA LeadOwns the test plan, prioritises, signs off the phase.
TesterExecutes test cases, files defects, retests fixes.
DeveloperTriages, fixes, deploys, validates defect closure in staging.
Product OwnerUAT, priorities on contested defects, final sign-off.
DesignerReviews UI/UX bugs, confirms acceptable variants.

Sign-off Process

  1. QA Lead confirms exit criteria are met.
  2. Test summary report shared (pass / fail / known issues).
  3. Product Owner reviews & signs off in writing.
  4. Deployment plan executed (see Deployment).
🎯

The sign-off does not require zero defects — only zero critical / high and an agreed-upon list of accepted medium / low issues for the launch.