# UAT Test Plan ## 1. วัตถุประสงค์ เอกสารนี้ใช้สำหรับวางแผน User Acceptance Testing (UAT) ของ Training Management System (TMS) โดยอ้างอิงจาก implementation ปัจจุบันใน repository เพื่อให้ Business User สามารถนำไปใช้ทดสอบจริงได้ทันที ## 2. ขอบเขตที่ตรวจจากโค้ดจริง โมดูล runtime ที่พบและอยู่ในขอบเขต UAT: - Authentication - Dashboard / Overview - Training Records - Pending Review - Courses - Training Policy - Training Matrix - Users - Employee Directory - Announcements - Online Lessons - Reports - Notifications - Import Employees - Master Review - Permission Templates - User Permissions - Permission Audit Logs - Audit Logs - Organizers ## 3. นอกขอบเขตหรือยังไม่พบเป็น runtime module ชัดเจน - `Settings` ยังไม่พบเป็นโมดูล dashboard ที่พร้อมใช้งานจริง - role แบบ `Staff`, `Manager`, `HRD Manager` ไม่พบเป็น role runtime ใน auth model ปัจจุบัน - generic export center ไม่พบแยกเป็นโมดูลกลาง - generic attachment center ไม่พบแยกเป็นโมดูลกลาง ## 4. Architecture Baseline ที่ใช้ในการทดสอบ อ้างอิงจากโค้ดจริง: - Frontend: Next.js 16 App Router + TypeScript - Persistence: Drizzle ORM + PostgreSQL - Auth: Auth.js Credentials - Forms: TanStack Form + Zod - Data fetching: TanStack Query - UI: shadcn/ui - Permission Model: Permission Template + server-side RBAC - Workflow ที่พบจริง: draft, pending, approved, rejected, needs_revision, published, archived หมายเหตุ: - แผน `plans/uat-test.md` อ้างถึง Prisma แต่ implementation ปัจจุบันใช้ Drizzle ORM ## 5. Persona สำหรับ UAT ใช้ persona ตามระบบปัจจุบัน: | Persona | อิงจากโค้ด | ใช้ทดสอบ | | ----------- | ------------------------------------------------ | --------------------------------------------------------------------------------------------- | | Super Admin | `systemRole = super_admin` | organizer management, permission management, audit logs | | HRD Admin | membership `owner/admin` -> `businessRole = HRD` | users, employee directory, courses, training, reports, announcements, online lessons | | Employee | membership `member` -> `businessRole = EMPLOYEE` | own training records, public announcements, public online lessons, own reports, notifications | ## 6. Test Environment / Entry Criteria - ตั้งค่า `.env.local` และเชื่อมต่อฐานข้อมูลได้ - migrate schema เรียบร้อย - dev server รันได้ - มี test organization อย่างน้อย 1 รายการ - มี department / position / course ขั้นต่ำสำหรับ flow หลัก - มีบัญชีทดสอบ 3 persona ตามตารางข้างต้น ## 7. Exit Criteria - Happy path ของทุกโมดูลหลักผ่าน - Permission test ตาม persona ผ่าน - Validation / negative case สำคัญผ่าน - Regression checklist ผ่านหลังแก้ defect - defect ที่เหลือถูกบันทึกพร้อม severity และ owner ## 8. ลำดับแนะนำในการทดสอบ 1. Authentication และ route protection 2. Organizer / organization context 3. Users และ Employee Directory 4. Courses / Training Policy / Training Matrix 5. Training Records และ Approval 6. Announcements / Online Lessons 7. Reports / Export 8. Notifications 9. Import Employees / Master Review 10. Permission Management / Audit Logs ## 9. ประเภทการทดสอบที่ต้องครอบคลุม - Happy Path - CRUD - Validation - Permission / Scope isolation - Workflow / Approval - Search / Filter / Pagination - Upload / Download / Export - Negative Case - Regression ## 10. เอกสารที่เกี่ยวข้อง - [uat-test-scenarios.md](/D:/WY-2569/HRD/training-system-minimal-refactor/docs/uat-test-scenarios.md) - [uat-test-cases.md](/D:/WY-2569/HRD/training-system-minimal-refactor/docs/uat-test-cases.md) - [permission-test-matrix.md](/D:/WY-2569/HRD/training-system-minimal-refactor/docs/permission-test-matrix.md) - [regression-test-checklist.md](/D:/WY-2569/HRD/training-system-minimal-refactor/docs/regression-test-checklist.md) - [test-data-guide.md](/D:/WY-2569/HRD/training-system-minimal-refactor/docs/test-data-guide.md) - [uat-generation-report.md](/D:/WY-2569/HRD/training-system-minimal-refactor/docs/uat-generation-report.md)