Trường Số QA/Dashboard
Trường Số · QA test suite · Phase 1 · 10/09/2026

Trường Số QA suite

Test-case suite for Trường Số Phase 1, authored from the PRD set and its ten decisions, in the persona of an unforgiving end user of a premium product. Every case is executable unaided: fixtures are named, steps are numbered, and each expected result states the exact text, count, state or URL.

Key facts, origin and limits
Cases
544
Flows
14
Regression pack
177 + 14 flows
P0 blockers
143
Status
Run 1 pending (Phase 2)
Requested on 10/09/2026 with this instruction, quoted verbatim:Agent #3 — QA / QC. Act as the dedicated QA/QC agent for Agent #2. Create 100% of the required test cases covering all implemented functionality. Test every feature that Agent #2 builds. Test the product from the perspective of a real end user. Use Apple Tester Standard as the testing standard/persona. Perform comprehensive functional, UI/UX, edge-case, regression, and user-flow testing.

Drafted by an AI assistant in a single session on 10/09/2026 from the Trường Số PRD set (13 PRDs, glossary, test plan seed) and its ten decisions awaiting ratification, plus the Cloud theme reference.

This is a proposal for team review, not a sign-off.

Sources

  • The Trường Số PRD set (13 PRDs, glossary, test plan seed, Draft v1 of 10/09/2026) and its ten decisions awaiting ratification.
  • The Cloud theme reference at roadmap.flyer.us/cloudtheme.

Limits

1Totals

P0
143
blocker
P1
293
must pass
P2
113
should pass
P3
9
nice to have
Phase 1
488
full coverage
Phase 2
70
smoke level

By module

PRDModuleCasesP0P1P2P3RegressionPhase
00Shell, tenancy, roles and decisions336216017P1
01Admissions CRM74223515222P1
02Students (SIS)61133512118P1
03Classes and scheduling55172018019P1
04Attendance5716347018P1
05Tuition and finance67233014026P1
06Teachers and staff (P2 smoke)17311214P2
07Parent communication3551911011P1
08Inventory (P2 smoke)1448204P2
09Reports and dashboards27417518P1
10Settings and administration3912207013P1
11Data model, API and imports27616508P1
12Non-functional requirements38322949P1
seedEnd-to-end flows14950014P1
Total5581432931139191

By type

functionalui-uxedgenegativeregressionflowa11yperfsecurityi18n
3102836508201276522

2Pages

01 · Admissions CRM

74 cases · 22 P0 · P1

02 · Students (SIS)

61 cases · 13 P0 · P1

03 · Classes and scheduling

55 cases · 17 P0 · P1

04 · Attendance

57 cases · 16 P0 · P1

05 · Tuition and finance

67 cases · 23 P0 · P1

07 · Parent communication

35 cases · 5 P0 · P1

08 · Inventory (P2 smoke)

14 cases · 4 P0 · P2

09 · Reports and dashboards

27 cases · 4 P0 · P1

10 · Settings and administration

39 cases · 12 P0 · P1

11 · Data model, API and imports

27 cases · 6 P0 · P1

12 · Non-functional requirements

38 cases · 3 P0 · P1

End-to-end flows

14 scripted journeys with 78 checkpoints

Regression pack

177 cases + 14 flows to rerun after every fix

Bug report template

Severity S1 to S4, fields, filled example, JSON schema

testcases.json

All 558 cases and flows, machine-readable, with a result block per case; suite-meta.json holds fixtures and totals

3Fixtures referenced by the cases

Every preconditions field names one or more of these. The Phase 2 HANDOFF must seed them (or map them to its own seed) before execution; any fixture that cannot be mapped blocks the cases that reference it.

KeyDefinition
Tenant BIGSeeded tenant "Big Center": branches A (Quận 1, code Q1), B (Thủ Đức, code TD), C (Gò Vấp, code GV); timezone Asia/Ho_Chi_Minh; locale vi default.
Tenant EMPTYSeeded tenant "Empty Center": one branch, zero students, zero classes, zero invoices; owner account only.
U-OWNERowner role, scope all, member of all branches; email owner@bigcenter.test.
U-BM-Abranch_manager role, branch A only.
U-ADMadmissions role, scope own; assigned to leads L1, L4.
U-ACAD-Aacademic_admin role, branch A only.
U-ACCaccountant role, all branches.
U-TEACHteacher role; main teacher of class C1 (branch A) and C3 (branch B); staff record T1.
U-TEACH2teacher role; staff record T2; no classes; used as substitute.
U-VIEWERviewer role; read-only.
G1Guardian "Trần Thị Hoa", phone 0901234567, mother of S1 (branch A) and S2 (branch B); Zalo consent granted; payer and primary contact for both.
G2Guardian "Lê Văn Nam", phone 0912000002, father of S6; NO Zalo consent, has email nam@test.vn.
L1Open lead "Phạm Thu Hà" phone 0987000001, stage Tiềm năng, assigned U-ADM, prospect learner "Phạm Minh" birth year 2018, level Starters.
L2Won lead phone 0987000002 already converted once (prospect key p1 converted to S9); second prospect p2 not converted.
L3Lead phone 0987000003 marked do-not-call with reason "Khách yêu cầu".
L4Lead phone 0987000004 with call logged callback_requested at yesterday 15:00 (overdue), assigned U-ADM.
S1Student "Nguyễn An", code HV-000123, age 8, Active in C1, package FP3 with 5 sessions remaining, expiry in 3 months; flagged note "Dị ứng đậu phộng".
S2Student "Nguyễn Bình", HV-000124, Active in C3 (branch B), monthly plan.
S3Student "Trần Chi", HV-000125, Waiting (Chờ xếp lớp), branch A, level Movers.
S4Student "Lê Dũng", HV-000126, Paused since 10 days ago, expected return in 20 days, was in C1.
S5Student "Hoàng Em", HV-000127, Withdrawn 30 days ago, reason "chuyển nhà".
S6Student "Phan Giang", HV-000128, Active in C1, package with 2 sessions remaining (low balance).
S7Student "Vũ Hạnh", HV-000129, Active in C2, invoice INV-3 overdue 45 days, 3,000,000 remaining.
S8Adult learner "Đỗ Khoa", HV-000130, age 20, self as contact, phone 0933000008.
C1Class "Movers 2A", code MOV-2609-01, branch A, T3/T5 18:00-19:30, room P.201, teacher T1, capacity 12, 11 enrolled, trial seats 2, allow_trial true, 48 planned sessions, 20 held.
C2Class "Starters 1B", code STA-2609-01, branch A, full 12/12, waiting list 1.
C3Class "Movers 1C", branch B, teacher T1, T2/T4 17:00-18:30.
C4Class "Flyers 3", branch A, scheduled, start date 14 days ahead, 0 enrolled.
C5Class "Starters 0Z", branch A, completed 60 days ago.
ROOMSBranch A rooms: P.201 (cap 12), P.202 (cap 8), "Trực tuyến" virtual. Branch B: B.101.
SES-TODAYC1 session today 18:00-19:30, planned, no sheet.
SES-YESTC1 session yesterday 18:00-19:30, ended, no sheet (unmarked).
SES-PASTC1 session 7 days ago, held, sheet saved by T1 (10 present, 1 late 10 min, 1 absent S6).
SES-BC3 session tomorrow 17:00-18:30 at branch B, teacher T1.
FP1Fee plan one_time "Movers 2 trọn khoá" 48 buổi 9,600,000 VND, VAT 0, on course "Movers 2".
FP2Fee plan monthly "Theo tháng" 1,200,000 VND/month.
FP3Fee plan session_package "Gói 24 buổi" 6,000,000 VND, validity 6 months.
MAT1Material "Sách Family and Friends 2" 180,000 VND, VAT 5%.
INV-1Invoice for S1, FP1, total 9,600,000, unpaid, due in 7 days, payment_code TS1A0001, bank account BA1.
INV-2Invoice for S2, 1,200,000, partial (paid 500,000), due in 3 days.
INV-3Invoice for S7, 3,000,000, unpaid, due 45 days ago (overdue bucket 31-60).
INV-4Invoice for S1 (materials), 180,000, paid in cash, receipt PT-Q1-202609-0001.
INV-5Invoice for S3 with 20% discount created by U-ADM, status Chờ duyệt (pending_approval).
BA1Branch A bank account "Vietcombank 0123456789" SePay-linked, active. CD-A: branch A cash drawer.
ZALOZalo OA stub connected; templates attendance_absent, attendance_late, invoice_created, receipt, fee_reminder approved; schedule_change template status Chờ duyệt.
SEPAYSePay webhook stub: POST /api/stub/sepay with {amount, description, sepay_transaction_id}.

4Method and coverage

Trường Số (truongso.net) · FLYER internal