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.