Users – Quản lý người dùng

Estimated reading: 15 minutes 100 views

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ệubả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ụcNội dung
TC_IDTC_USER_001
Mô tảTạo mới 1 người dùng hợp lệ
Loại / Độ ưu tiênKiểm thử chức năng chính
Rất cao
Bước thực hiệnTạ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àoHọ tên: Nguyễn Tường Vi
Email: vint@example.com
Password: CAcBiABHCAgBiAHC
Role: Sales
Thông tin khác: Tùy ý
Kỳ vọngNgườ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ụcNội dung
TC_IDTC_USER_002
Loại / Độ ưu tiênKiể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ọngThô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ụcNội dung
TC_IDTC_USER_003
Loại / Độ ưu tiênKiể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.
InputUsername: admin
Email: 1 email đã tồn tại trong dữ liệu
Kỳ vọngThô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ụcNội dung
TC_IDTC_USER_004
Loại / Độ ưu tiênKiể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
InputGán quyền: Role: Sales
Phâ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ọng1. 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ụcNội dung
TC_IDTC_USER_005
Loại / Độ ưu tiênChức năng cơ bản
Mô tảNhập username và password đúng để kiểm tra quá trình đăng nhập
Inputusername + 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ụcNội dung
TC_IDTC_USER_006
Loại / Độ ưu tiênChứ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.
Inputusername đú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ụcNội dung
TC_IDTC_USER_007
Loại / Độ ưu tiênChứ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 usernameemail 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.
InputNhậ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ộngTC_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ụcNội dung
TC_IDTC_USER_008
Loại / Độ ưu tiênChứ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ả
Inputusername: 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ộngTC_USER_008A
– Tìm bằng một phần username (ad)
– Hiển thị tất cả username chứa ad

TC_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 = adminstatus = Active

9. Test Case: Xóa người dùng khỏi hệ thống

MụcNội dung
TC_IDTC_USER_09
Loại / Độ ưu tiênChứ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

STTNội dung
TC_IDTC_USER_010
Loại / Độ ưu tiênChứ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

STTNội dung
TC_IDTC_USER_011
Loại / Độ ưu tiênChứ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
InputPass: JHGDSsdhgf342344
Kỳ vọngPass: Đă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ộngTC_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.

STTNội dung
TC_IDTC_USER_012
Loại / Độ ưu tiênKiể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.
InputTimeout 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ọngPass: 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ộngTC_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

STTKết quảDiễn giải
1PassTính năng hoạt động đúng
2FailCó bug, cần log và gửi cho dev
3BlockedKhông test được do lỗi hệ thống
4SkippedBỏ qua do không còn phù hợp.

CONTENTS