Users – Quản lý người dùng
I. Mục tiêu test
- Đảm bảo đầy đủ nghiệp vụ quản lý người dùng: tạo mới, sửa, xóa, tìm kiếm, phân quyền…
- Kiểm tra tính toàn vẹn dữ liệu và bảo mật thông tin tài khoản.
- Đảm bảo tính thân thiện với người dùng (UX/UI).
II. Danh sách các test case chi tiết
1. Test Case: Tạo người dùng mới
Đảm bảo hệ thống cho phép tạo mới một người dùng khi nhập đầy đủ, hợp lệ tất cả các trường bắt buộc.
| Mục | Nội dung |
| TC_ID | TC_USER_001 |
| Mô tả | Tạo mới 1 người dùng hợp lệ |
| Loại / Độ ưu tiên | Kiểm thử chức năng chính Rất cao |
| Bước thực hiện | Tạo mới một người dùng với các thông tin đầy đủ, đúng định dạng và không trùng lặp – Truy cập Quản trị viên => Quản lý người dùng (Users) – Nhấn “Tạo người dùng” ở menu bên sidebar bên trái – Nhập đầy đủ thông tin (username, email, password, thông tin người dùng…) – Nhấn “Lưu”. Quan sát kết quả sau khi lưu |
| Dữ liệu đầu vào | Họ tên: Nguyễn Tường Vi Email: vint@example.com Password: CAcBiABHCAgBiAHC Role: Sales Thông tin khác: Tùy ý |
| Kỳ vọng | Người dùng được tạo thành công, hiển thị trên danh sách |
2. Test Case: Không nhập trường bắt buộc
| Mục | Nội dung |
| TC_ID | TC_USER_002 |
| Loại / Độ ưu tiên | Kiểm thử validation (ràng buộc dữ liệu) Cao |
| Mô tả | Kiểm tra phản hồi của hệ thống khi không nhập các trường bắt buộc lúc tạo mới người dùng. |
| Bước thực hiện | – Truy cập vào module Users, chọn Create User: Bỏ trống Username → nhấn Save Bỏ trống Password → nhấn Save Bỏ trống Email → nhấn Save Bỏ trống Họ và tên → nhấn Save Bỏ trống nhiều trường cùng lúc → nhấn Save |
| Kỳ vọng | Thông báo lỗi xuất hiện. Không cho phép lưu user mới khi còn trường bắt buộc bị bỏ trống. |
| Test case mở rộng | – Nhập Username là khoảng trắng " “– Nhập Email không đúng định dạng – Password ít hơn 6 ký tự – Nhập ký tự đặc biệt không hợp lệ trong Username ( $%#) |
3. Test Case: Trùng username, email
Điều kiện tiền đề (Pre-condition):
- Đảm bảo trong hệ thống đã tồn tại user với username và email dùng để test trùng.
- Đã đăng nhập với quyền Admin hoặc quyền có thể tạo user.
Xác minh rằng hệ thống không cho phép tạo người dùng mới nếu:
- Trùng Username với người dùng đã tồn tại.
- Trùng Email đã được sử dụng cho người dùng khác.
| Mục | Nội dung |
| TC_ID | TC_USER_003 |
| Loại / Độ ưu tiên | Kiểm thử ràng buộc dữ liệu (validation) Cao |
| Mô tả | Kiểm tra tính hợp lệ khi nhập dữ liệu username/email đã tồn tại vào form tạo user mới. |
| Input | Username: admin Email: 1 email đã tồn tại trong dữ liệu |
| Kỳ vọng | Thông báo lỗi “Username đã tồn tại” Thông báo lỗi “Email đã tồn tại” Không lưu được user mới |
| Test case mở rộng | – Trùng username nhưng email khác. – Trùng email nhưng username khác. – Username/email trùng nhưng có khoảng trắng đầu/cuối. – Nhập email với dạng chữ hoa ( ADMIN@gmail.com).– Sử dụng ký tự đặc biệt trong username. – Tạo đồng thời 2 user giống nhau (2 tab). |
4. Test Case: Phân quyền người dùng
Kiểm tra chức năng gán quyền (Role) cho người dùng và giới hạn hành vi theo đúng quyền được thiết lập.
| Mục | Nội dung |
| TC_ID | TC_USER_004 |
| Loại / Độ ưu tiên | Kiểm thử phân quyền, chức năng |
| Mô tả | Gán role “Sales” cho user, cho phép chỉ xem dữ liệu trong module Accounts, không có quyền sửa hoặc xóa |
| Input | Gán quyền: Role: SalesPhân quyền: View: All, Edit/Delete: None– Gán quyền “Sales” cho user – Truy cập module Accounts kiểm tra các quyền thao tác: xem/sửa/xóa.– Kiểm tra có thấy được dữ liệu của user khác không. Có thể sửa/xóa dữ liệu không? |
| Kỳ vọng | 1. Người dùng chỉ có thể xem module Accounts, không sửa/xóa được. 2. Xem được danh sách tất cả khách hàng. |
5. Test Case: Đăng nhập thành công
Kiểm tra việc đăng nhập hệ thống với thông tin hợp lệ và chuyển hướng đến dashboard.
| Mục | Nội dung |
| TC_ID | TC_USER_005 |
| Loại / Độ ưu tiên | Chức năng cơ bản |
| Mô tả | Nhập username và password đúng để kiểm tra quá trình đăng nhập |
| Input | username + password |
| Kỳ vọng | Đăng nhập thành công, chuyển tới dashboard |
6. Test Case: Đăng nhập thất bại
| Mục | Nội dung |
| TC_ID | TC_USER_006 |
| Loại / Độ ưu tiên | Chức năng, Hành vi hệ thống Trung bình |
| Mô tả | Kiểm tra xem hệ thống có thông báo lỗi khi người dùng nhập đúng username nhưng sai mật khẩu – Đăng nhập vào hệ thống với username hợp lệ và mật khẩu sai – Quan sát kết quả hiển thị sau khi nhấn nút đăng nhập – Kiểm tra thông báo lỗi. |
| Input | username đúng, password sai |
| Kỳ vọng | – Hiển thị thông báo lỗi, người dùng không được phép truy cập hệ thống. – Người dùng không thể tiếp tục vào hệ thống cho đến khi nhập mật khẩu đúng |
7. Test Case: Quên mật khẩu
| Mục | Nội dung |
| TC_ID | TC_USER_007 |
| Loại / Độ ưu tiên | Chức năng, Tính bảo mật Cao |
| Mô tả | Kiểm tra chức năng “Quên mật khẩu” để cấp lại mật khẩu mới qua email – Truy cập vào trang đăng nhập và nhấn “Quên mật khẩu?”– Nhập username và email hợp lệ. – Kiểm tra email đã gửi yêu cầu reset mật khẩu. – Nhấn vào link trong email để thay đổi mật khẩu. – Nhập mật khẩu mới và xác nhận. – Đăng nhập lại với mật khẩu mới. |
| Input | Nhập username và email để nhận URL khôi phục mật khẩu |
| Kỳ vọng | – Hệ thống gửi email chứa link reset mật khẩu. – Mật khẩu mới được thay đổi và đăng nhập thành công với mật khẩu mới |
| Test case mở rộng | TC_USER_007A – Nhập username không tồn tại. – Hiển thị thông báo lỗi “Tài khoản không tìm thấy”.TC_USER_007B – Sử dụng email không hợp lệ. – Hiển thị lỗi “Email không hợp lệ”. Nếu không thì liên hệ admin hỗ trợ TC_USER_007C – Sử dụng email của tài khoản nhưng không nhận được email reset. – Kiểm tra email đã được cấu hình đúng, email không vào hộp thư rác. |
8. Test Case: Tìm kiếm người dùng
| Mục | Nội dung |
| TC_ID | TC_USER_008 |
| Loại / Độ ưu tiên | Chức năng Trung bình – Cao |
| Mô tả | Kiểm tra tính năng tìm kiếm người dùng trong danh sách dựa trên username hoặc email– Đăng nhập với quyền Admin hoặc có quyền truy cập module Users. – Truy cập menu Admin → User Management (Users) – Trong bộ lọc, nhập từ khóa “ admin” vào ô tên người dùng và nhấn "Tím kiếm".– Quan sát danh sách kết quả |
| Input | username: admin |
| Kỳ vọng | – Hiển thị danh sách kết quả sau khi tìm kiếm. – Tài khoản admin được hiển thị chính xác nếu tồn tại.– Không có kết quả nếu từ khóa không khớp. |
| Test case mở rộng | TC_USER_008A – Tìm bằng một phần username ( ad)– Hiển thị tất cả username chứa adTC_USER_008C – Tìm bằng ký tự hoa/thường khác nhau ( Admin, ADMIN, admin).– Không phân biệt chữ hoa/thường. TC_USER_008D – Tìm username không tồn tại ( xyz123) hoặc nhập ký tự đặc biệt (@#%)– Hệ thống không lỗi. Hiển thị “Không tìm thấy kết quả”. TC_USER_008E – Kết hợp nhiều điều kiện tìm kiếm. – Tìm theo username = admin và status = Active |
9. Test Case: Xóa người dùng khỏi hệ thống
| Mục | Nội dung |
| TC_ID | TC_USER_09 |
| Loại / Độ ưu tiên | Chức năng, Quyền truy cập, Bảo toàn dữ liệu. Trung bình |
| Mô tả | – Thực hiện thao tác xóa người dùng từ hồ sơ người dùng và xác minh kết quả. – Truy cập module Users → chọn user cần xóa – Nhấn Xóa (Delete) và xác nhận khi popup hiện ra. – Kiểm tra danh sách user đã bị xóa. – Kiểm tra dữ liệu liên quan (các bản ghi đã được gán cho user đó). |
| Input | Đăng nhập với tài khoản admin. Chỉ admin mới có quyền xóa người dùng. |
| Kỳ vọng | – Người dùng bị xóa không còn xuất hiện trong danh sách. – Các bản ghi liên quan không bị mất |
10. Test case: Brute-force login
| STT | Nội dung |
| TC_ID | TC_USER_010 |
| Loại / Độ ưu tiên | Chức năng, Bảo mật, Hồi quy Rất cao (ảnh hưởng trực tiếp đến an toàn hệ thống) |
| Mô tả | – Nhập sai password 5 lần liên tiếp. – Kiểm tra hệ thống có cơ chế ngăn người dùng đăng nhập sai mật khẩu liên tiếp nhiều lần hay không – Quan sát phản hồi hệ thống sau mỗi lần sai. – Sau 5 lần nhập sai. Thử đăng nhập lại lần nữa với password đúng. |
| Kỳ vọng | – Hệ thống hiển thị thông báo lỗi sau mỗi lần sai. – Tài khoản bị khóa/tạm dừng đăng nhập sau 5 lần sai. – Sau thời gian quy định (ví dụ 5-10 phút), user có thể login lại bình thường hoặc phải nhờ admin mở khóa. |
11. Test case: Đổi mật khẩu
| STT | Nội dung |
| TC_ID | TC_USER_011 |
| Loại / Độ ưu tiên | Chức năng, Bảo mật, Hồi quy Cao |
| Mô tả | Đổi mật khẩu người dùng từ giao diện User Profile, sau đó kiểm tra đăng nhập bằng mật khẩu mới. Đổi mật khẩu user → Logout → Login |
| Input | Pass: JHGDSsdhgf342344 |
| Kỳ vọng | Pass: Đăng nhập được với mật khẩu mới. Fail: Đăng nhập thất bại (mật khẩu cũ không còn dùng được). |
| Test case mở rộng | TC_USER_011A – Nhập mật khẩu mới giống mật khẩu cũ. – Thông báo lỗi: “Mật khẩu mới không được trùng với mật khẩu hiện tại” TC_USER_011B – Nhập mật khẩu không đúng cấu trúc (ví dụ thiếu ký tự viết hoa, thiếu kí tự viết thường, kí tự đặc biệt, số). – Hiển thị lỗi theo chính sách bảo mật mật khẩu. |
12. Test case: Tự động đăng xuất sau 10 phút
Kiểm tra tính năng Tự động logout (session timeout) hoạt động đúng sau khi người dùng không có bất kỳ tương tác nào trên hệ thống trong một khoảng thời gian xác định (10 phút).
P/s: Có thể cấu hình với thời gian thấp hơn để kiểm thử nhanh chóng.
| STT | Nội dung |
| TC_ID | TC_USER_012 |
| Loại / Độ ưu tiên | Kiểm thử chức năng + bảo mật Cao – ảnh hưởng đến bảo mật hệ thống |
| Mô tả | Bước 1: Đăng nhập vào hệ thống BM với tài khoản hợp lệ. Bước 2: Không thao tác gì trong hệ thống. Để trình duyệt mở và không chạm chuột, gõ phím, cuộn trang → đợi timeout. Bước 3: Thử thao tác bất kỳ (ví dụ click menu, chuyển tab) sau 10 phút. Hệ thống tự logout → trở về màn hình đăng nhập. |
| Input | Timeout mặc định: 10 phút không thao tác (có thể được cấu hình trong hệ thống hoặc php.ini).Tài khoản test: Tài khoản có role thông thường hoặc admin. |
| Kỳ vọng | Pass: Sau đúng 10 phút không thao tác, hệ thống tự logout → chuyển về màn hình login. Fail: Sau 10 phút vẫn không logout, hoặc vẫn có thể thao tác trong hệ thống. |
| Test case mở rộng | TC_USER_012A – Thực hiện thao tác nhỏ (cuộn chuột) trong 9 phút → tiếp tục chờ 10 phút nữa. – Session reset lại → logout sau 10 phút tính từ thao tác cuối. TC_USER_012B – Mở tab khác trong trình duyệt cùng login user. – Cả 2 tab sẽ bị logout cùng lúc nếu dùng cùng session. |
III. Kết quả mong đợi
| STT | Kết quả | Diễn giải |
| 1 | Pass | Tính năng hoạt động đúng |
| 2 | Fail | Có bug, cần log và gửi cho dev |
| 3 | Blocked | Không test được do lỗi hệ thống |
| 4 | Skipped | Bỏ qua do không còn phù hợp. |