Bắt đầu ở đây — dành cho người test mới, chưa biết code
Đọc trước khi testMở trình duyệt tới http://localhost:3000 (nếu máy chủ chạy ở cổng khác — ví dụ 3001 — đổi số cổng tương ứng). Làm theo các bước dưới, rồi kéo xuống checklist.
- Mở trình duyệt tới http://localhost:3000/login (nếu máy chủ chạy ở cổng khác — 3001 — thay số cổng tương ứng, hỏi dev nếu không chắc).
- Ở khung 'Chọn nhanh (demo, không mật khẩu)' phía dưới form, bấm thẳng vào tên tài khoản bạn cần (xem bảng Tài khoản test bên dưới) — KHÔNG cần gõ gì thêm. Hoặc gõ email vào ô 'Email hoặc userId', để trống ô Mật khẩu, bấm Đăng nhập.
- Sau khi vào ứng dụng, mở tab Tài liệu (biểu tượng Doanh nghiệp → Tài liệu, hoặc gõ thẳng /docs) rồi chọn tab 'Kiểm thử' — đây chính là trang bạn đang xem.
- Đi theo từng nhóm từ trên xuống dưới. Với mỗi dòng: bấm 'Mở màn ↗' để mở đúng màn cần test ở tab mới, làm theo cột 'Bước', rồi so kết quả thực tế với cột 'Kỳ vọng'.
- Bấm nút PASS hoặc FAIL cho dòng đó (khung 3 nút bên phải mỗi dòng). Có thể gõ thêm Ghi chú nếu FAIL (mô tả lỗi thấy được, không cần thuật ngữ kỹ thuật).
- Kết quả tự lưu khi bạn tick (badge góc phải bảng: 'Đã lưu máy chủ' = đã đồng bộ, 'Lưu cục bộ (offline)' = máy chủ tạm không phản hồi nhưng dữ liệu vẫn ở trên máy bạn).
- Khi test xong (hoặc xong một phiên), bấm nút 'Sao chép kết quả' — nội dung dạng bảng Markdown được chép vào clipboard, dán vào email/chat gửi cho người phụ trách.
- Gặp màn không mở được, nút không phản hồi, hoặc lỗi hiển thị lạ: chụp màn hình + ghi lại đường dẫn (URL) đang mở, gửi kèm khi báo cáo.
Tài khoản test
| Nhãn | Tên | Email / userId | Mật khẩu | Ghi chú |
|---|---|---|---|---|
| ADMIN / PLATFORM | Nguyễn Hoài Nam (Giám đốc Công nghệ) | nam.nguyen@xtech.com.vn | (để trống) | Tài khoản có mọi quyền (PLATFORM_ADMIN — quyền '*'). Dùng cho MỌI dòng có nhãn [ADMIN] hoặc [PLATFORM]. Đây cũng là tài khoản mặc định để test các màn không ghi nhãn vai trò. |
| NHÂN VIÊN THƯỜNG | Trần Thu Hà (Trưởng nhóm Kinh doanh) | ha.tran@xtech.com.vn | (để trống) | Tài khoản KHÔNG có quyền quản trị — dùng để xác nhận khu Quản trị (/admin/*) và Platform Console (/platform/*) KHÔNG hiện ra cho người dùng thường. |
| T002 (đa tenant) | Admin tenant Chủ đầu tư BĐS Demo (tenant-realestate-demo) | (userId: tenant-realestate-demo-admin) | cần dev cấp — xem ghi chú | Tài khoản này KHÔNG đăng nhập được bằng cách chọn nhanh (không nằm trong danh sách 16 người tenant-xtech). Mật khẩu được sinh ngẫu nhiên mỗi lần chạy `npm run provision:t002` ở xhub-api và chỉ in ra console lúc đó (biến môi trường T002_ADMIN_PASSWORD/T002_EMP_PASSWORD nếu dev đặt trước). Nếu bạn cần test nhóm 'Đa tenant' (U52–U54), hãy nhờ dev cung cấp mật khẩu hiện hành hoặc chạy lại lệnh trên và gửi bạn kết quả. |
[ENFORCE]: [ENFORCE] = màn/luồng đó chỉ thể hiện đúng khi máy chủ API bật AUTH_ENFORCE=true. Ở môi trường demo mặc định (đa số trường hợp) biến này TẮT — các dòng [ENFORCE] không kiểm tra được, hãy để 'Chưa test' và ghi chú 'N/A demo mode', KHÔNG tính là FAIL.
Báo cáo kết quả: Gửi kết quả (bấm 'Sao chép kết quả' rồi dán) cho quản trị viên tenant X-TECH phụ trách XHub, hoặc bộ phận IT phụ trách nền tảng. Nếu không rõ người nhận, hỏi người đã gửi bạn tài liệu này.
User test — checklist bạn tự tick
💡 Chụp màn hình (Print Screen / Snipping Tool), bấm Ctrl+V ngay trong ô ghi chú của từng dòng để đính kèm ảnh minh chứng — không cần chọn file.
Đã test
0/79
PASS
0
FAIL
0
Tiến độ
0%
X.Office
Kỳ vọng: Tạo yêu cầu → submit → người duyệt approve; trạng thái chuyển đúng
Kỳ vọng: Thêm bình luận & tệp đính kèm; bước execute ghi nhận evidence
Kỳ vọng: Chỉ hiện yêu cầu của chính mình; trạng thái đồng bộ với Request Center
Kỳ vọng: Tạo chỉ đạo → issue → người nhận acknowledge → accept; timeline ghi nhận
Kỳ vọng: Tạo ticket → assign → resolve → CSAT; SLA/trạng thái cập nhật
Kỳ vọng: Đặt chỗ tạo→duyệt→check-in; đặt trùng khung giờ trả xung đột (409)
Kỳ vọng: Publish thông báo → người nhận read → acknowledge → báo cáo tỷ lệ + nhắc lại (remind)
Kỳ vọng: Các work-item cần xử lý gom về hộp việc; mở item → sang màn xử lý đúng
Kỳ vọng: Danh sách chờ duyệt tập trung; approve/reject cập nhật nguồn
Kỳ vọng: Danh sách quy trình; mở builder/form/versions của 1 quy trình hiển thị đúng
Kỳ vọng: Bảng giám sát instance/quy trình đang chạy hiển thị số liệu
Tài liệu
Kỳ vọng: Chip 'Kho tài liệu trực tiếp (/api/records)'; danh sách tài liệu; Dung lượng + Phiên bản có số thật
Kỳ vọng: Timeline phiên bản bất biến (bản hiện hành / bản cũ), size/mime/tác giả/sha256
Kỳ vọng: Drawer upload → tạo tài liệu mới thật, quay lại thấy trong danh sách
Kỳ vọng: Thêm version (+1, bản cũ giữ nguyên); tải nội dung 1 phiên bản đúng nội dung
Công việc
Kỳ vọng: Thấy danh sách ExecutionProject; mở chi tiết 1 dự án hiển thị WBS/tiến độ/baseline
Kỳ vọng: Timeline kéo dài theo ngày; thanh kế hoạch vs thực tế; đường phụ thuộc FS/SS/FF/SF; mốc milestone; cây WBS thu/mở
Kỳ vọng: Ngày cập nhật ngay (optimistic); nếu đổi ngày phá vỡ phụ thuộc FS → báo lỗi, tự rollback về ngày cũ
Kỳ vọng: CHỈ thấy thanh việc CHA (tiêu đề + % tiến độ + ngày); KHÔNG thấy việc con, KHÔNG thấy mô tả chi tiết; có badge 'Chia sẻ phối hợp'
Kỳ vọng: Cột theo trạng thái; kéo thẻ đổi cột → trạng thái lưu server (rollback nếu trạng thái không hợp lệ); có thể gom nhóm theo tag/chiều phân tích
Kỳ vọng: Lưới tháng hiện việc theo hạn (dueAt) + milestone; bấm 1 việc mở chi tiết
Kỳ vọng: Thẻ KPI: số dự án đang chạy/đỏ/quá hạn/nghẽn; biểu đồ sức khỏe; bấm vào bảng dự án chi tiết
Kỳ vọng: Chọn trục hàng (tag/chiều/status/loại/ưu tiên/dự án) × trục cột × chỉ số (đếm/tiến độ TB/quá hạn) → bảng pivot + biểu đồ cột đúng số
Quản trị
Kỳ vọng: Thẻ sức khỏe: số mục tiêu đúng tiến độ, KPI đỏ, quyết định đang mở, action quá hạn — số liệu thật
Kỳ vọng: 4 mục tiêu (Tăng trưởng/Khách hàng/Vận hành/Năng lực) mở chi tiết 1 mục tiêu → thấy chỉ số liên kết
Kỳ vọng: Biểu đồ tỷ lệ cam kết đúng hạn tính TỪ dữ liệu Work thật (không nhập tay); giá trị khớp số việc quá hạn thực tế
Kỳ vọng: Pre-read: snapshot chỉ số + ngoại lệ (RAG) → quyết định RAPID → action; bấm action → sang đúng việc thật /work/items/[id]
Kỳ vọng: Trạng thái review chuyển sang 'Follow-up'/'Đã đóng'; follow-up được ghi nhận
Kỳ vọng: Danh sách quyết định kiểu RAPID (Recommend/Agree/Decide/Input/Perform); có độ tuổi (aging) của quyết định chưa xử lý
Kỳ vọng: 4 góc nhìn (Tài chính/Khách hàng/Vận hành/Năng lực); KPI đỏ hiển thị RÕ RÀNG — không bị điểm gộp/trung bình che đi
Kỳ vọng: 2 mục tiêu O-001/O-002, mỗi mục tiêu có Key Result kèm % tin cậy; Key Result liên kết Initiative/Action — KHÔNG phải danh sách task thô
Kỳ vọng: Check-in mới xuất hiện; lịch sử check-in CŨ vẫn còn nguyên (không bị ghi đè/xoá)
Kỳ vọng: Portfolio PF-CORE gồm 3 initiative theo 3 giai đoạn khác nhau (stage-gate); initiative CHƯA gắn dự án hiện badge 'Chưa gắn thực thi'
Kỳ vọng: Sau khi gắn, hiện nhãn 'Nguồn: Work v2' + health/tiến độ THẬT của dự án; bấm 'Xem thực thi' sang đúng /work/projects/[id]
Kỳ vọng: Chỉ chuyển được sang giai đoạn TIẾP THEO (không nhảy cóc); nút 'Dừng' luôn khả dụng và không quay lại được sau khi dừng
IOC — Bản sao số
Kỳ vọng: Thẻ: bảng điều khiển đã xuất bản, scene đã xuất bản, số lớp dữ liệu, số phòng ban bận/quá tải — số liệu thật, không phải mẫu
Kỳ vọng: Mặt bằng 2D hiện 8 vùng với TÊN PHÒNG BAN THẬT (Ban Điều hành, Kinh doanh, Tài chính…) + màu theo mức tải; thẻ KPI khớp số ở bảng bên dưới
Kỳ vọng: Hiện khối 3D xoay/zoom được, chiều cao khối theo mức tải; đóng tab về 2D vẫn nguyên dữ liệu
Kỳ vọng: Trang VẪN dùng được đầy đủ: mặt bằng 2D + danh sách vùng + KPI hiện đủ; chỉ báo '3D không khả dụng', không có màn trắng/lỗi
Kỳ vọng: Chuỗi cấu hình 7 bước + danh sách scene/mặt bằng với trạng thái và số phiên bản
Kỳ vọng: Lưới 1 m + thước tỷ lệ; kéo đỉnh đổi hình; sau ~1,5s tự lưu, hiện 'Đã lưu bản nháp (revision N)'
Kỳ vọng: Vùng hợp lệ được tạo; hình tự cắt bị chặn kèm thông báo (máy chủ cũng từ chối)
Kỳ vọng: Nhãn vùng đổi thành tên đơn vị thật + icon; Ctrl+Z / Ctrl+Shift+Z hoạt động
Kỳ vọng: Tạo v1 rồi v2 kèm checksum; v1 chuyển SUPERSEDED chứ KHÔNG bị sửa/xoá
Kỳ vọng: Mỗi lớp hiện kết quả trực tiếp theo phòng ban; phần Catalog ghi rõ hệ thống nguồn (SoR) và cảnh báo cấm camera/chấm công/sinh trắc học
Kỳ vọng: Tổng tải của phòng ban tương ứng TĂNG — chứng tỏ IOC chiếu dữ liệu Work thật, không lưu số riêng
Kỳ vọng: Xem trước bố cục lưới 12 cột đúng như màn twin; danh mục widget được phép hiển thị đầy đủ
Kỳ vọng: Bảng lịch sử phiên bản cho mặt bằng/scene/bảng điều khiển kèm checksum + trạng thái PUBLISHED/SUPERSEDED
Kỳ vọng: 14 icon dựng sẵn; mục tải asset tuỳ chỉnh ghi rõ CHƯA MỞ kèm lý do an toàn
Kỳ vọng: Cột phải đổi từ 'AI Twin Brief' sang 'Chi tiết vùng: <tên phòng ban>' — hiện danh sách người giữ vị trí (tên thật + chức danh), việc đang xử lý, cảnh báo của đúng vùng đó; nút 'Quay lại AI Twin Brief' trả về màn cũ
Kỳ vọng: Cùng panel chi tiết vùng cập nhật đúng theo khối vừa bấm (không cần rời màn 3D); khối đang chọn sáng lên rõ hơn các khối khác
Kỳ vọng: Panel báo lỗi rõ ràng (không phải màn trắng) — từ chối xem roster cá nhân, đúng tinh thần 'dữ liệu cá nhân cần quyền riêng'
Kỳ vọng: Hiện cột chỉ số + mini biểu đồ cột từ các kỳ MetricObservation thật (không phải luôn 'chưa đủ dữ liệu')
Kỳ vọng: Biểu đồ cột 24 giờ, xanh=vào/xanh dương=ra, dựng từ AttendanceEvent thật (PE-02); nếu tenant chưa import chấm công thì hiện đúng lý do trung thực thay vì biểu đồ trống
Nhân sự & Công
Kỳ vọng: Thẻ số dư theo từng loại nghỉ (nghỉ phép năm/ốm/không lương/nghỉ bù/từ xa) khớp seed:people-leave; đơn đang chờ hiện đúng
Kỳ vọng: Hiện mức ảnh hưởng LOW/MEDIUM/HIGH + số việc/phê duyệt/đặt phòng/chỉ đạo đến hạn trong kỳ nghỉ — số liệu thật, nút Gửi chỉ bật SAU khi đã xem trước
Kỳ vọng: Đơn xuất hiện ở 'Đơn của tôi' trạng thái SUBMITTED; đồng thời hiện ở /approvals và /inbox (không tạo hàng đợi duyệt riêng)
Kỳ vọng: KHÔNG tạo 2 đơn trùng — idempotency chặn tạo trùng dù bấm nhiều lần
Kỳ vọng: Danh sách định biên thật (Position) + đơn đang chờ duyệt của đơn vị; bấm 'Duyệt'/'Từ chối' đổi trạng thái ngay
Kỳ vọng: Hiện rõ thông báo 'Ngoài phạm vi của bạn' (403 do DataScope) — KHÔNG hiện lẫn lộn với 'Backend offline'
Kỳ vọng: Số dư (available) giảm đúng bằng số ngày nghỉ; đơn chuyển APPROVED
Kỳ vọng: Chuyển CANCEL_REQUESTED trước, không huỷ thẳng; sau khi HR/quản lý duyệt huỷ, số dư được hoàn lại đúng
Kinh doanh
Kỳ vọng: Tạo thành công; hiện gợi ý 'có thể trùng' với khách hàng tên gần giống (so khớp theo từ khoá, không cần trùng y hệt); trang 360 view hiển thị đúng liên hệ + dòng thời gian sự kiện của khách hàng vừa tạo
Kỳ vọng: Chỉ chuyển được đúng thứ tự cho phép (không nhảy cóc, ví dụ không thể LEAD→NEGOTIATION thẳng); mỗi lần chuyển có ghi log lịch sử
Kỳ vọng: Bị từ chối, bắt buộc nhập lý do (lostReason) mới chuyển được sang LOST
Kỳ vọng: Chuyển trạng thái thành công nhưng KHÔNG tự sinh hợp đồng/doanh thu nào — 'Thắng cơ hội' không đồng nghĩa 'đã có doanh thu' (phải tạo Hợp đồng riêng ở bước sau)
Kỳ vọng: Hiển thị đúng tên, loại, mô hình giá của từng mục; version tăng lên khi có mục nào được sửa
Kỳ vọng: Tổng tiền báo giá tự tính đúng bằng tổng các dòng; báo giá tự chuyển sang 'cần duyệt' vì chiết khấu vượt ngưỡng 15%
Kỳ vọng: Bị từ chối (400) — báo giá có chiết khấu vượt ngưỡng bắt buộc phải có ghi chú người duyệt mới chuyển được sang trạng thái Đã duyệt
Kỳ vọng: Tên khách hàng + tổng tiền hiển thị đúng ở đầu trang; từ khi vào SIGNING trở đi, KHÔNG sửa/thêm được dòng hợp đồng nữa (phải làm phụ lục — tính năng để sau)
Kỳ vọng: Ghi nhận đúng 1 chữ ký (nhà cung cấp MOCK — CHƯA nối DocuSign/HelloSign thật); chỉ chuyển được sang EFFECTIVE sau khi đã có ít nhất 1 chữ ký, thử chuyển khi chưa ký sẽ bị từ chối
Kỳ vọng: Tự sinh nghĩa vụ cho các dòng thanh toán theo mốc (billingMethod = MILESTONE); trạng thái cảnh báo hiển thị đúng theo hạn (Đang chờ/Sắp đến hạn/Trễ hạn)
Kỳ vọng: Nghĩa vụ chuyển 'Hoàn thành'; yêu cầu xuất hoá đơn KHÔNG bị tạo trùng khi bấm lại lần 2 (idempotent) — chỉ có đúng 1 yêu cầu
Kỳ vọng: Mỗi KPI có công thức + nguồn dữ liệu rõ ràng; 2 chỉ số cần hệ thống FinERP thật hiển thị đúng là 'chưa sẵn sàng' (không bịa số ảo)
Đa tenant
Kỳ vọng: Thấy đúng dữ liệu T002 (người dùng/đơn vị/tài liệu của T002)
Kỳ vọng: User T002 KHÔNG thấy bất kỳ bản ghi nào của T001; RLS chặn rò rỉ
Kỳ vọng: Tài liệu T002 lưu ở folder/tenant riêng, tách biệt lưu trữ T001
Kỳ vọng: Mục tiêu/KPI về SẢN XUẤT thật (OEE, tỷ lệ lỗi/phế phẩm, MTBF, OTIF) — KHÔNG phải bộ KPI văn phòng/công nghệ của T001
Kỳ vọng: Bộ KPI khác hẳn T003 (vòng quay tồn kho, hàng chết, CAC…) — chỉ trùng đúng 1 chỉ số chung ACT-CLOSE (tính từ Work)