Test Case: Phân quyền Callbot
1. Môi trường kiểm thử
- Môi trường: Dev (https://dev.app.ucall.vn/dashboard)
- Tài khoản test: [email protected]
- Workspace: UCALLXXX
- Luồng truy cập: Cài đặt (⚙️) > Phân quyền & Nhân viên > Danh sách nhóm quyền > Tạo nhóm quyền mới
2. Cấu trúc phân quyền Callbot (theo giao diện thực tế)
Hệ thống có 3 nhóm quyền riêng biệt cho Callbot:
| Nhóm quyền | Mô tả |
|---|---|
| Callbot AI Auto Call | Quyền thao tác trên chiến dịch (bật/tắt, tạo, xem, sửa, xóa) |
| Liên hệ chiến dịch Callbot | Quyền quản lý liên hệ/khách hàng trong chiến dịch |
| Mẫu kịch bản Callbot | Quyền quản lý các template kịch bản Callbot |
Mỗi quyền con có thể cấu hình theo phạm vi (scope):
- Tất cả – thấy toàn bộ dữ liệu workspace
- Của nhóm – chỉ thấy dữ liệu của các thành viên cùng nhóm
- Của cá nhân – chỉ thấy dữ liệu do chính mình tạo/được gán
- Không – không có quyền thực hiện hành động
3. Test Case: Cấu hình Nhóm Quyền (UI)
3.1. Tạo & Quản lý Nhóm Quyền
| ID | Tên Test Case | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|
| PERM_GRP_01 | Tạo nhóm quyền mới thành công | 1. Vào Danh sách nhóm quyền 2. Nhấn “Tạo nhóm quyền mới” 3. Nhập tên hợp lệ 4. Cấu hình quyền 5. Nhấn “Lưu” |
Nhóm quyền được tạo thành công, xuất hiện trong danh sách. Toast thông báo thành công. | |
| PERM_GRP_02 | Validation tên nhóm quyền bắt buộc | 1. Mở form tạo nhóm quyền mới 2. Để trống trường “Tên nhóm quyền” 3. Nhấn “Lưu” |
Hệ thống báo lỗi: “Vui lòng nhập tên nhóm quyền”. Không lưu được. | |
| PERM_GRP_03 | Hủy tạo nhóm quyền | 1. Mở form tạo nhóm quyền mới 2. Nhập tên và cấu hình một số quyền 3. Nhấn “Hủy” |
Form đóng lại, không có nhóm quyền nào được tạo. Dữ liệu đã nhập bị hủy. | |
| PERM_GRP_04 | Sửa nhóm quyền đã tạo | 1. Tại danh sách nhóm quyền, nhấn icon Sửa (✏️) trên một nhóm 2. Thay đổi tên hoặc cấu hình quyền 3. Nhấn “Lưu” |
Nhóm quyền được cập nhật thành công. Thay đổi phản ánh ngay lập tức. | |
| PERM_GRP_05 | Xóa nhóm quyền | 1. Nhấn icon Xóa (🗑️) trên một nhóm quyền không có nhân viên nào được gán 2. Xác nhận xóa |
Nhóm quyền bị xóa khỏi danh sách. Hiện toast thành công. | |
| PERM_GRP_06 | Xóa nhóm quyền đang có nhân viên được gán | Thử xóa nhóm quyền đang được gán cho ít nhất 1 nhân viên | Hệ thống hiển thị cảnh báo không thể xóa (hoặc yêu cầu chuyển nhân viên sang nhóm khác trước). | |
| PERM_GRP_07 | Toggle bật nhóm quyền cha | 1. Mở form tạo/sửa nhóm quyền 2. Tìm đến mục “Callbot AI Auto Call” 3. Bật toggle tổng của nhóm |
Toàn bộ các quyền con bên trong được kích hoạt (chuyển sang trạng thái có thể chỉnh). | |
| PERM_GRP_08 | Toggle tắt nhóm quyền cha | 1. Bật nhóm quyền “Callbot AI Auto Call” và cấu hình các quyền con 2. Tắt toggle tổng của nhóm |
Toàn bộ quyền con bị vô hiệu hóa. Nhân viên thuộc nhóm này mất toàn bộ quyền Callbot. |
4. Test Case: Nhóm Quyền “Callbot AI Auto Call” (Quyền Chiến dịch)
4.1. Bật/Tắt chiến dịch Callbot
| ID | Tên Test Case | Phạm vi | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_CB_01 | Bật/Tắt chiến dịch – Phạm vi “Tất cả” | Tất cả | 1. Cấu hình quyền “Bật/Tắt chiến dịch Callbot” = Tất cả 2. Gán nhóm cho nhân viên A 3. Đăng nhập nhân viên A |
Nhân viên A có thể toggle trạng thái Chạy/Dừng của bất kỳ chiến dịch nào trong workspace. | |
| PERM_CB_02 | Bật/Tắt chiến dịch – Phạm vi “Của nhóm” | Của nhóm | Nhân viên A thử bật/tắt chiến dịch của nhóm và chiến dịch ngoài nhóm | Chỉ toggle được chiến dịch thuộc nhóm của mình. Chiến dịch ngoài nhóm: toggle bị ẩn hoặc disabled. | |
| PERM_CB_03 | Bật/Tắt chiến dịch – Phạm vi “Của cá nhân” | Của cá nhân | Nhân viên A thử bật/tắt chiến dịch do mình tạo và chiến dịch do người khác tạo | Chỉ toggle được chiến dịch do chính mình tạo ra hoặc được gán làm quản lý. | |
| PERM_CB_04 | Bật/Tắt chiến dịch – Phạm vi “Không” | Không | Nhân viên A thử toggle trạng thái bất kỳ chiến dịch | Toggle không xuất hiện hoặc bị disabled với thông báo “Không có quyền thực hiện”. |
4.2. Xem thông tin chiến dịch Callbot
| ID | Tên Test Case | Phạm vi | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_CB_05 | Xem chiến dịch – Phạm vi “Tất cả” | Tất cả | Nhân viên A vào module Callbot → xem danh sách chiến dịch | Toàn bộ chiến dịch trong workspace hiển thị. | |
| PERM_CB_06 | Xem chiến dịch – Phạm vi “Của nhóm” | Của nhóm | Nhân viên A vào module Callbot | Chỉ hiển thị chiến dịch mà thành viên trong nhóm có quyền quản lý. | |
| PERM_CB_07 | Xem chiến dịch – Phạm vi “Của cá nhân” | Của cá nhân | Nhân viên A vào module Callbot | Chỉ hiển thị chiến dịch do chính mình tạo hoặc được gán phụ trách. | |
| PERM_CB_08 | Xem chiến dịch – Phạm vi “Không” | Không | Nhân viên A vào module Callbot | Danh sách chiến dịch rỗng hoặc toàn bộ bị ẩn. Không có lỗi crash. |
4.3. Tạo chiến dịch Callbot mới
| ID | Tên Test Case | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|
| PERM_CB_09 | Tạo chiến dịch – Có quyền (Toggle BẬT) | 1. Cấu hình quyền “Tạo chiến dịch” = Bật 2. Nhân viên A vào Callbot |
Nút “Tạo chiến dịch mới” hiển thị và có thể nhấn được. | |
| PERM_CB_10 | Tạo chiến dịch – Không có quyền (Toggle TẮT) | 1. Cấu hình quyền “Tạo chiến dịch” = Tắt 2. Nhân viên A vào Callbot |
Nút “Tạo chiến dịch mới” bị ẩn hoặc disabled. |
4.4. Sửa cấu hình chiến dịch Callbot
| ID | Tên Test Case | Phạm vi | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_CB_11 | Sửa chiến dịch – Phạm vi “Tất cả” | Tất cả | Nhân viên A mở bất kỳ chiến dịch → vào Cài đặt → Sửa cấu hình | Cho phép chỉnh sửa và lưu thành công. | |
| PERM_CB_12 | Sửa chiến dịch – Phạm vi “Không” | Không | Nhân viên A mở chiến dịch → vào Cài đặt | Các trường cấu hình ở chế độ chỉ đọc (read-only). Nút “Lưu” bị ẩn hoặc disabled. |
4.5. Xóa chiến dịch Callbot
| ID | Tên Test Case | Phạm vi | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_CB_13 | Xóa chiến dịch – Phạm vi “Tất cả” | Tất cả | Nhân viên A nhấn icon Xóa trên chiến dịch bất kỳ | Hộp thoại xác nhận xuất hiện. Sau khi xác nhận, chiến dịch bị xóa thành công. | |
| PERM_CB_14 | Xóa chiến dịch – Phạm vi “Không” | Không | Nhân viên A tìm nút Xóa trên danh sách chiến dịch | Icon Xóa bị ẩn hoàn toàn khỏi UI. |
4.6. Xem báo cáo tổng quan chiến dịch Callbot
| ID | Tên Test Case | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|
| PERM_CB_15 | Xem báo cáo tổng quan – Có quyền | 1. Bật quyền “Xem báo cáo tổng quan” 2. Nhân viên A mở chiến dịch → Tab “Tổng quan” |
Tab Tổng quan hiển thị đầy đủ biểu đồ và chỉ số thống kê. | |
| PERM_CB_16 | Xem báo cáo tổng quan – Không có quyền | Tắt quyền “Xem báo cáo tổng quan” | Tab “Tổng quan” bị ẩn hoặc hiển thị thông báo “Không có quyền truy cập”. |
4.7. Xem liên hệ của báo cáo chiến dịch
| ID | Tên Test Case | Phạm vi | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_CB_17 | Xem liên hệ báo cáo – “Tất cả” | Tất cả | Nhân viên A mở tab Chi tiết báo cáo chiến dịch | Toàn bộ liên hệ trong chiến dịch hiển thị đầy đủ. | |
| PERM_CB_18 | Xem liên hệ báo cáo – “Của cá nhân” | Của cá nhân | Nhân viên A mở tab Chi tiết báo cáo | Chỉ hiển thị liên hệ được gán cho chính nhân viên A. | |
| PERM_CB_19 | Xem liên hệ chưa được gán | Tất cả + ✅ “Chưa được gán” | Bật thêm checkbox “Chưa được gán” | Nhân viên A thấy cả liên hệ chưa có người phụ trách trong báo cáo. | |
| PERM_CB_20 | Không xem liên hệ chưa được gán | Tất cả + ☐ “Chưa được gán” | Không bật checkbox “Chưa được gán” | Nhân viên A không thấy các liên hệ chưa được gán trong danh sách. |
5. Test Case: Nhóm Quyền “Liên hệ chiến dịch Callbot”
5.1. Xem liên hệ chiến dịch Callbot
| ID | Tên Test Case | Phạm vi | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_CON_01 | Xem liên hệ – “Tất cả” | Tất cả | Nhân viên A mở báo cáo chi tiết của bất kỳ chiến dịch nào | Hiển thị đầy đủ toàn bộ liên hệ trong chiến dịch. Có thể click icon mắt xem chi tiết từng cuộc gọi. | |
| PERM_CON_02 | Xem liên hệ – “Của nhóm” | Của nhóm | Nhân viên A mở báo cáo chi tiết | Chỉ hiển thị liên hệ được gán cho thành viên cùng nhóm. | |
| PERM_CON_03 | Xem liên hệ – “Của cá nhân” | Của cá nhân | Nhân viên A mở báo cáo chi tiết | Chỉ hiển thị liên hệ được gán cho chính nhân viên A. | |
| PERM_CON_04 | Xem liên hệ – “Không” | Không | Nhân viên A mở báo cáo chiến dịch | Tab Chi tiết bị ẩn hoặc bảng danh sách liên hệ trống/bị khóa. | |
| PERM_CON_05 | Checkbox “Chưa được gán” – Xem liên hệ | Tất cả + ✅ “Chưa được gán” | Bật thêm checkbox “Chưa được gán” | Nhân viên A thấy cả các liên hệ chưa được gán nhân viên phụ trách. |
5.2. Sửa thông tin liên hệ chiến dịch Callbot
| ID | Tên Test Case | Phạm vi | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_CON_06 | Sửa liên hệ – “Tất cả” | Tất cả | Nhân viên A mở chi tiết liên hệ bất kỳ trong báo cáo → Sửa thông tin → Lưu | Cho phép chỉnh sửa và lưu thành công. | |
| PERM_CON_07 | Sửa liên hệ – “Của cá nhân” | Của cá nhân | Nhân viên A thử sửa liên hệ của mình và liên hệ của người khác | Chỉ sửa được liên hệ được gán cho chính mình. Liên hệ của người khác ở chế độ read-only. | |
| PERM_CON_08 | Sửa liên hệ – “Không” | Không | Nhân viên A mở chi tiết liên hệ | Không có nút Sửa, tất cả trường ở chế độ chỉ đọc. | |
| PERM_CON_09 | Checkbox “Chưa được gán” – Sửa liên hệ | Tất cả + ✅ “Chưa được gán” | Bật thêm checkbox “Chưa được gán” → thử sửa liên hệ chưa gán | Cho phép sửa cả liên hệ chưa được gán nhân viên. |
5.3. Xuất báo cáo chiến dịch Callbot
| ID | Tên Test Case | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|
| PERM_CON_10 | Xuất báo cáo – Có quyền (Toggle BẬT) | 1. Bật quyền “Xuất báo cáo chiến dịch Callbot” 2. Nhân viên A mở báo cáo chiến dịch |
Nút “Xuất báo cáo” hiển thị và có thể nhấn để tải file. | |
| PERM_CON_11 | Xuất báo cáo – Không có quyền (Toggle TẮT) | Tắt quyền “Xuất báo cáo” | Nút “Xuất báo cáo” bị ẩn hoặc bị disabled. |
6. Test Case: Nhóm Quyền “Mẫu kịch bản Callbot”
| ID | Tên Test Case | Phạm vi/Loại | Các bước thực hiện | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_SCR_01 | Tạo mẫu kịch bản – Có quyền | Toggle BẬT | Bật quyền “Tạo mẫu kịch bản mới” → Nhân viên A vào Thư viện kịch bản | Nút “Tạo kịch bản mới” hiển thị và có thể sử dụng. | |
| PERM_SCR_02 | Tạo mẫu kịch bản – Không quyền | Toggle TẮT | Tắt quyền “Tạo mẫu kịch bản mới” | Nút “Tạo kịch bản mới” bị ẩn. | |
| PERM_SCR_03 | Xem mẫu kịch bản – “Tất cả” | Tất cả | Nhân viên A vào Thư viện kịch bản | Hiển thị toàn bộ kịch bản trong workspace. | |
| PERM_SCR_04 | Xem mẫu kịch bản – “Của cá nhân” | Của cá nhân | Nhân viên A vào Thư viện kịch bản | Chỉ hiển thị kịch bản do mình tạo ra. | |
| PERM_SCR_05 | Xem mẫu kịch bản – “Không” | Không | Nhân viên A vào Thư viện kịch bản | Danh sách kịch bản trống hoặc bị ẩn hoàn toàn. | |
| PERM_SCR_06 | Sửa mẫu kịch bản – “Tất cả” | Tất cả | Nhân viên A mở kịch bản bất kỳ → Sửa nội dung → Lưu | Cho phép chỉnh sửa thành công. | |
| PERM_SCR_07 | Sửa mẫu kịch bản – “Không” | Không | Nhân viên A mở kịch bản | Không có nút Sửa/Lưu. Kịch bản ở chế độ xem chỉ đọc. | |
| PERM_SCR_08 | Xóa mẫu kịch bản – “Tất cả” | Tất cả | Nhân viên A nhấn Xóa trên kịch bản bất kỳ → Xác nhận | Kịch bản bị xóa thành công khỏi thư viện. | |
| PERM_SCR_09 | Xóa mẫu kịch bản – “Không” | Không | Nhân viên A tìm nút Xóa trong Thư viện kịch bản | Icon Xóa bị ẩn hoàn toàn. |
7. Test Case: Kiểm tra Phân quyền End-to-End
Các test case này xác minh quyền thực sự được áp dụng đúng khi nhân viên đăng nhập và thao tác trên hệ thống.
| ID | Tên Test Case | Cấu hình quyền | Kịch bản kiểm tra | Kết quả mong đợi | Trạng thái |
|---|---|---|---|---|---|
| PERM_E2E_01 | Nhân viên chỉ xem – không thao tác | Xem chiến dịch = Tất cả; Tất cả quyền khác = Không | Đăng nhập nhân viên A, vào module Callbot | Thấy danh sách chiến dịch nhưng không có nút Tạo/Sửa/Xóa/Bật-Tắt. | |
| PERM_E2E_02 | Nhân viên không có quyền Callbot nào | Tắt toggle tổng nhóm “Callbot AI Auto Call” | Đăng nhập nhân viên A | Module Callbot không hiển thị trong sidebar hoặc hiển thị nhưng trống hoàn toàn. | |
| PERM_E2E_03 | Kiểm tra hiệu lực sau khi thay đổi quyền | 1. Nhân viên A đang đăng nhập với quyền cũ 2. Admin thay đổi quyền nhóm của A 3. Nhân viên A F5 lại trang |
Quyền mới được áp dụng ngay mà không cần đăng xuất/đăng nhập lại. | ||
| PERM_E2E_04 | Phân quyền theo nhóm – kiểm tra cô lập dữ liệu | Nhân viên A và B cùng phạm vi “Của nhóm” nhưng khác nhóm | A không thấy chiến dịch của B và ngược lại | Dữ liệu được cô lập theo đúng nhóm. | |
| PERM_E2E_05 | Truy cập trực tiếp qua URL khi không có quyền | Nhân viên A không có quyền xem chiến dịch → thử truy cập trực tiếp URL của chiến dịch | Hệ thống chuyển hướng về trang lỗi 403 hoặc trang không có quyền, không hiển thị dữ liệu. |
8. Các case Edge/Exception
- Kế thừa quyền cha: Nếu toggle nhóm cha (ví dụ:
Callbot AI Auto Call) bị TẮT → toàn bộ quyền con phải mất hiệu lực, kể cả các quyền con đang ở mức “Tất cả”. - Xung đột quyền: Nhân viên thuộc 2 nhóm quyền khác nhau → áp dụng quyền cao nhất (union) hay thấp nhất? Cần xác nhận logic của hệ thống.
- Checkbox “Chưa được gán” độc lập: Checkbox này chỉ có tác dụng khi phạm vi ≠ “Không”. Nếu phạm vi = “Không” thì checkbox không nên hiển thị hoặc phải bị disabled.
- Thay đổi quyền real-time: Sau khi Admin thay đổi nhóm quyền, nhân viên đang đăng nhập cần được áp dụng ngay (kiểm tra session invalidation hoặc cơ chế polling).
Tài liệu kiểm thử tính năng Phân quyền Callbot – UCALL Dev.