Yêu cầu phi chức năng (Non-functional Requirements)
Các yêu cầu phi chức năng là điều kiện chất lượng áp cho toàn hệ thống. Tester kiểm tra chúng như các hạng mục nghiệm thu độc lập với tính năng.
| Mã | Nhóm | Yêu cầu | Thước đo kiểm chứng |
|---|---|---|---|
NFR-01 |
Hiệu năng | Màn hình chính hiển thị dữ liệu sẵn sàng tương tác trong vòng ~2 giây trên thiết bị tầm trung; thao tác cuộn 60fps không giật khung hình | Đo thủ công trên máy tầm trung + theo dõi Sentry performance |
NFR-02 |
Bảo mật | API xác thực bằng JWT hợp lệ; không khóa/mật khẩu/secret nào nằm trong mã nguồn; thẻ tín dụng chỉ lưu 4 số cuối | Rà soát cấu hình, quét mã nguồn, kiểm thử 401 |
NFR-03 |
Sẵn sàng | Lỗi nghiêm trọng (crash) được ghi về Sentry kèm bản đồ ngăn xếp; lỗi API hiển thị thông báo thân thiện, không crash ứng dụng | Kích hoạt lỗi thử nghiệm, xem báo cáo |
NFR-04 |
Đa ngôn ngữ | Tiếng Việt, tiếng Anh, tiếng Thái; tiếng Việt hiển thị dấu chuẩn; đổi ngôn ngữ không cần cài lại | Kiểm tra toàn màn hình ở 3 ngôn ngữ |
NFR-05 |
Giao diện nhất quán | Tuân thủ DESIGN.md “Living Standard”: nền giấy #f9f8f3, mực #20251b, nhấn lime #c7dc50; chữ trên nền lime luôn màu Ink; không bóng xám/đen thuần |
Rà soát thiết kế đối chiếu DESIGN.md |
NFR-06 |
Tương thích | iOS và Android (React Native/Expo); mọi màn hình không tràn ngang; mục tiêu chạm ≥ 44px | Ma trận thiết bị trong Hướng dẫn kiểm thử |
NFR-07 |
Khả năng kiểm thử | Bộ kiểm thử tự động phải xanh trước khi nhận bản dựng mới; chặn sàn độ phủ và ngân sách any được CI tự động thi hành |
yarn typecheck, yarn test, ci/check-floors.js |
NFR-08 |
Quan sát | Hành vi người dùng ghi log phân tích (analytics); lỗi mạng hiển thị trạng thái trống/thông báo, không treo màn hình | Kiểm tra bảng điều trị Sentry/Analytics |
NFR-09 |
Khả năng truy cập | Văn bản tương phản tối thiểu AA; hỗ trợ giảm chuyển động (prefers-reduced-motion); điểm nhấn focus luôn hiển thị |
Đối chiếu DESIGN.md §2.4, §7.7 |
NFR-10 |
Dữ liệu cá nhân | Thông tin cá nhân chỉ hiển thị phần cần thiết; xóa tài khoản/địa chỉ phải qua xác nhận | Rà soát luồng xóa + xác nhận |
Ghi chú kiểm chứng nhanh cho tester
- NFR-02: tắt mạng rồi thao tác — ứng dụng phải hiện thông báo lỗi mạng, không đóng bất ngờ.
- NFR-04: đổi sang tiếng Anh rồi về tiếng Việt — không còn nhãn tiếng Anh sót lại ở màn chính.
- NFR-05: mọi nút chính màu lime phải có chữ màu Ink (không phải trắng), mọi bóng đổ có sắc olive.