Test Case: Tính Phí Callbot (Billing & Charging)

1. Môi trường kiểm thử

  • Môi trường: Dev (https://dev.app.ucall.vn/dashboard)
  • Tài khoản test: hieuhoang@ucall.asia
  • Workspace: UCALLXXX
  • Luồng kiểm tra phí: Icon Ví (💰) > Lịch sử giao dịch > Tab Callbot (chi tiết block) & Tab Cước viễn thông (số tiền trừ)

2. Cơ chế tính phí (theo bảng giá thực tế)

2.1. Đơn vị tính

  • Mỗi cuộc gọi được tính theo block 6 giây (làm tròn lên).
  • Công thức: Tổng tiền/cuộc gọi = (Tổng đơn giá tính năng) × Số block
  • Số block = ceil(thời_lượng_giây / 6)

2.2. Bảng đơn giá tính năng (VNĐ/block 6s)

Tính năng Đơn giá (đ/block) Ghi chú
Gọi hàng loạt 150 Cước gọi cơ bản
Số chung cố định 70 Đầu số cố định dùng chung
Cảm ứng giọng nói tiêu chuẩn 20 Nhận diện âm thanh
AI Agent (Steve) 60 AI Call Agent model Steve
AI Agent (Mark) 110 AI Call Agent model Mark
Nhận diện ý định (Steve) 20 Phân loại ý định bằng AI
Nhận diện ý định (Mark) 30 Phân loại ý định bằng AI
Node nói Prompt (Steve) 20 TTS từ LLM Steve
Node nói Prompt (Mark) 30 TTS từ LLM Mark
AI Review (Steve) 20 Review cuộc gọi bằng AI Steve
AI Review (Mark) 30 Review cuộc gọi bằng AI Mark

2.3. Gói tính năng điển hình

Gói Tính năng đi kèm Tổng đơn giá/block
Standard Callbot Gọi hàng loạt (150) + Số chung (70) 220đ/block
Advanced Callbot Standard + Cảm ứng giọng nói (20) + Nhận diện ý định Steve (20) 260đ/block
AI Call Agent (Steve) Advanced + AI Agent Steve (60) 330đ/block
AI Call Agent (Mark) Advanced + AI Agent Mark (110) 380đ/block

3. Test Case: Tab “Callbot” – Lịch sử tính phí theo block

Luồng: Icon Ví > Lịch sử giao dịch > Tab Callbot

3.1. Hiển thị giao diện tab Callbot

ID Tên Test Case Các bước thực hiện Kết quả mong đợi Trạng thái
BILL_UI_01 Hiển thị đúng các cột dữ liệu Mở Tab Callbot → quan sát bảng Bảng hiển thị đủ 6 cột: Mã giao dịch, Số điện thoại, Chiến dịch, Thời lượng (s), Số lượng block, Tính năng.  
BILL_UI_02 Lọc theo Chiến dịch Chọn một chiến dịch từ dropdown “Chiến dịch” Bảng chỉ hiển thị các giao dịch thuộc chiến dịch đã chọn.  
BILL_UI_03 Lọc theo khoảng thời gian Chọn “Ngày bắt đầu” và “Ngày kết thúc” Bảng chỉ hiển thị giao dịch trong khoảng ngày được chọn.  
BILL_UI_04 Tìm kiếm theo mã giao dịch Nhập một mã giao dịch hợp lệ vào ô “Mã giao dịch” Bảng lọc và chỉ hiển thị đúng 1 bản ghi khớp với mã đã nhập.  
BILL_UI_05 Tìm kiếm mã không tồn tại Nhập chuỗi không hợp lệ vào ô “Mã giao dịch” Bảng hiển thị trống với thông báo “Không có dữ liệu”.  
BILL_UI_06 Phân trang Xem trang 1 → nhấn trang 2 Dữ liệu thay đổi sang trang 2, không trùng lặp với trang 1.  
BILL_UI_07 Thay đổi số bản ghi/trang Chọn “20/trang” hoặc “50/trang” từ dropdown Bảng hiển thị đúng số bản ghi/trang đã chọn.  
BILL_UI_08 Xuất dữ liệu Nhấn nút “Xuất dữ liệu” File Excel/CSV được tải xuống với đầy đủ các cột tương ứng.  

3.2. Xác minh logic tính số block (Làm tròn lên theo 6s)

ID Tên Test Case Thời lượng gọi Số block mong đợi Các bước thực hiện Kết quả mong đợi Trạng thái
BILL_BLK_01 Cuộc gọi đúng 6 giây 6s 1 block Thực hiện cuộc gọi thử, kết thúc ở giây thứ 6 → kiểm tra tab Callbot Cột “Số lượng block” = 1.  
BILL_BLK_02 Cuộc gọi 7 giây (qua mốc 6s) 7s 2 blocks Thực hiện cuộc gọi thử kéo dài 7s Cột “Số lượng block” = 2 (ceil(7/6) = 2).  
BILL_BLK_03 Cuộc gọi 1 giây (dưới 6s) 1s 1 block Thực hiện cuộc gọi cực ngắn, máy bắt nhấc rồi tắt ngay Cột “Số lượng block” = 1 (tối thiểu 1 block).  
BILL_BLK_04 Cuộc gọi 64 giây 64s 11 blocks Mở giao dịch của cuộc gọi 64s trong tab Callbot Cột “Số lượng block” = 11 (ceil(64/6) = 11). Đối chiếu với bản ghi thực tế trong hệ thống.  
BILL_BLK_05 Cuộc gọi 68 giây 68s 12 blocks Mở giao dịch của cuộc gọi 68s trong tab Callbot Cột “Số lượng block” = 12 (ceil(68/6) = 12).  
BILL_BLK_06 Cuộc gọi không có thời lượng (không bắt máy) 0s 0 block Thực hiện cuộc gọi nhưng khách không bắt máy Cột “Số lượng block” = 0. Không phát sinh chi phí.  

3.3. Xác minh cấu phần tính năng hiển thị

ID Tên Test Case Loại chiến dịch Kết quả mong đợi ở cột “Tính năng” Trạng thái
BILL_FEAT_01 Standard Callbot (Gọi hàng loạt + Số chung) Standard Gọi hàng loạt (150) + Số chung cố định (70)  
BILL_FEAT_02 Advanced Callbot (Thêm cảm ứng giọng nói) Advanced Gọi hàng loạt (150) + Số chung cố định (70) + Cảm ứng giọng nói tiêu chuẩn (20)  
BILL_FEAT_03 AI Call Agent dùng model Steve Call Agent (Steve) Gọi hàng loạt (150) + Số chung cố định (70) + Cảm ứng giọng nói tiêu chuẩn (20) + AI Agent Steve (60)  
BILL_FEAT_04 AI Review bằng Steve Bật AI Review Steve (20) hoặc kèm theo các tính năng khác  
BILL_FEAT_05 Chiến dịch có AI Review + Gọi hàng loạt Call Agent + AI Review Cột “Tính năng” liệt kê đầy đủ tất cả các thành phần, mỗi thành phần có đơn giá trong ngoặc.  

4. Test Case: Tab “Cước Viễn Thông” – Số tiền thực tế bị trừ

Luồng: Icon Ví > Lịch sử giao dịch > Tab Cước viễn thông

4.1. Hiển thị giao diện

ID Tên Test Case Các bước thực hiện Kết quả mong đợi Trạng thái
BILL_TEL_01 Hiển thị đúng cột dữ liệu Mở Tab “Cước viễn thông” Bảng hiển thị đủ 6 cột: Mã giao dịch, Lý do giao dịch, Phân loại, Thành tiền (đồng), Trạng thái, Hành động.  
BILL_TEL_02 Số tiền là số âm Kiểm tra cột “Thành tiền” Tất cả giao dịch trừ tiền hiển thị số âm (ví dụ: -330, -88). Không có số dương trong giao dịch trừ.  
BILL_TEL_03 Phân loại luôn là “Trừ tiền” Kiểm tra cột “Phân loại” Tất cả bản ghi hiển thị badge “Trừ tiền” màu đỏ/cam.  
BILL_TEL_04 Trạng thái “Thành công” Kiểm tra các giao dịch đã hoàn thành Badge “Thành công” màu xanh lá.  
BILL_TEL_05 Trạng thái “Đang chờ” Kiểm tra các giao dịch đang chờ xử lý Badge “Đang chờ” màu cam/vàng.  
BILL_TEL_06 Lọc theo Lý do giao dịch Chọn “Gọi điện” từ dropdown “Lý do giao dịch” Bảng chỉ hiển thị các giao dịch có Lý do = “Gọi điện”.  
BILL_TEL_07 Xem chi tiết giao dịch Nhấn nút “Xem chi tiết” ở cột “Hành động” Popup/Drawer mở ra hiển thị thông tin đầy đủ của giao dịch (số tiền, thời gian, cuộc gọi liên quan).  

4.2. Xác minh số tiền trừ khớp với bảng giá

ID Tên Test Case Kịch bản Công thức tính Số tiền mong đợi Trạng thái
BILL_AMT_01 AI Call Agent (Steve) – 1 block Cuộc gọi ≤6s dùng AI Agent Steve (150 + 70 + 20 + 60) × 1 block -300đ (hoặc theo cấu hình tổng tính năng)  
BILL_AMT_02 AI Call Agent (Steve) – nhiều block Cuộc gọi 34s (6 blocks) (tổng đơn giá) × 6 -1.980đ (330 × 6 theo dữ liệu thực tế)  
BILL_AMT_03 Đối chiếu tab Callbot và tab Cước Tìm cùng một mã giao dịch ở 2 tab Số block × Tổng đơn giá/block = Thành tiền Thành tiền ở tab “Cước viễn thông” = Tổng (đơn giá × số block) từ tab “Callbot”.  
BILL_AMT_04 Cuộc gọi thử (Gọi thử từ kịch bản) Gọi thử qua chức năng “Kiểm thử” kịch bản Áp dụng đơn giá như gọi thật Xuất hiện bản ghi trong tab “Callbot” và “Cước viễn thông”. Số tiền khớp đúng với đơn giá.  
BILL_AMT_05 Cuộc gọi chiến dịch thực Chạy chiến dịch Callbot, sau khi có cuộc gọi Block × đơn giá Mỗi cuộc gọi thành công trong chiến dịch tạo ra 1 bản ghi tương ứng trong lịch sử Callbot.  
BILL_AMT_06 Gọi không thành công (không bắt máy) Cuộc gọi bị từ chối hoặc không bắt máy 0 block → 0 tiền Không xuất hiện trong tab “Cước viễn thông” (hoặc xuất hiện với thành tiền = 0đ).  
BILL_AMT_07 Số tiền “Gọi điện” (Lý do = Gọi điện) Gọi thủ công từ CRM Theo đơn giá gọi thủ công (ví dụ: -88đ quan sát thực tế) Thành tiền = âm, khác với cuộc gọi chiến dịch. Lý do giao dịch = “Gọi điện”.  

5. Test Case: Số Dư Ví & Ảnh Hưởng Sau Trừ Tiền

ID Tên Test Case Các bước thực hiện Kết quả mong đợi Trạng thái    
BILL_BAL_01 Số dư giảm đúng sau cuộc gọi 1. Ghi lại số dư hiện tại
2. Thực hiện cuộc gọi thử
3. Chờ giao dịch hoàn thành
4. Kiểm tra lại số dư
Số dư mới = Số dư cũ - Thành tiền . Sai lệch không quá 1 giao dịch đang chờ.  
BILL_BAL_02 Số dư hiển thị trong popup Ví Click icon Ví → xem dropdown Dropdown hiển thị số dư hiện tại (đơn vị VNĐ), cập nhật real-time sau mỗi giao dịch thành công.      
BILL_BAL_03 Chiến dịch dừng khi hết tiền 1. Đặt ngân sách chiến dịch = số dư còn lại
2. Chạy chiến dịch
Khi số dư về 0 (hoặc dưới ngưỡng tối thiểu), chiến dịch tự động dừng. Hiện thông báo “Số dư không đủ”.      
BILL_BAL_04 Giao dịch “Đang chờ” không trừ ngay Kiểm tra số dư khi giao dịch ở trạng thái “Đang chờ” Số dư có thể giữ nguyên hoặc đã khấu trừ tạm. Cần xác nhận hành vi hệ thống (pre-deduct hay post-deduct).      

6. Test Case: Edge Cases & Kiểm tra Tính toàn vẹn dữ liệu

ID Tên Test Case Kịch bản Kết quả mong đợi Trạng thái
BILL_EDGE_01 Cuộc gọi bị lỗi kỹ thuật Cuộc gọi thất bại do lỗi hệ thống (không phải khách không bắt máy) Không tạo giao dịch tính phí. Hoặc nếu đã tạm trừ, hệ thống hoàn tiền.  
BILL_EDGE_02 Gọi thử vs Gọi thật – cùng đơn giá So sánh đơn giá giao dịch từ “Kiểm thử kịch bản” và từ “Chạy chiến dịch thật” Đơn giá/block như nhau. Gọi thử không được miễn phí nếu giao tiếp đã xảy ra.  
BILL_EDGE_03 Tính phí tính năng AI Review riêng biệt Chiến dịch bật AI Review → Sau cuộc gọi, AI xử lý xong Xuất hiện thêm 1 bản ghi riêng trong tab Callbot với tính năng = Steve (20) hoặc Mark (30), độc lập với giao dịch gọi.  
BILL_EDGE_04 Nhiều cuộc gọi cùng lúc (đồng thời) Chạy chiến dịch có giới hạn 5 cuộc gọi đồng thời Mỗi cuộc gọi đồng thời tạo ra 1 giao dịch độc lập. Tổng tiền = tổng của từng giao dịch riêng lẻ.  
BILL_EDGE_05 Gọi lại (Redial) tính phí riêng Cấu hình Gọi lại 3 lần và cuộc gọi gốc không bắt máy → Cuộc gọi lại thành công lần 2 Mỗi lần gọi lại thành công (có thời lượng > 0) tạo ra 1 bản ghi phí riêng trong lịch sử.  
BILL_EDGE_06 Không có bản ghi trùng lặp Sau mỗi cuộc gọi, kiểm tra mã giao dịch Mỗi cuộc gọi có duy nhất 1 mã giao dịch trong tab Callbot (không bị duplicate).  
BILL_EDGE_07 Chênh lệch đơn giá thực tế vs bảng giá PDF Kiểm tra bản ghi Gọi hàng loạt trong tab Callbot Đơn giá hiển thị trong ngoặc (ví dụ: 150 hay 160) khớp với mức giá đang áp dụng thực tế cho workspace này.  

7. Dữ liệu Test thực tế tham chiếu (từ hệ thống Dev)

Mã giao dịch (rút gọn) Số điện thoại Chiến dịch Thời lượng Block Tính năng Thành tiền
095c2ba2-… +84922799041 12342 7s 2 Gọi hàng loạt(150) + Số chung(70) + Cảm ứng(20) -480đ
f75c0b7e-… +84989996458 AI Review + Gửi Zalo 21.04 68s 12 Steve (20) -240đ
76e73bc3-… +84989996458 AI Review + Gửi Zalo 21.04 68s 12 Gọi hàng loạt(150)+Số chung(70)+Cảm ứng(20) -2.880đ
1bb60015-… +84988838916 AI Review + Gửi Zalo 21.04 34s 6 Steve (20) -120đ

Lưu ý: Bảng trên là dữ liệu mẫu để đối chiếu kiểm thử. Giá trị chính xác phụ thuộc vào cấu hình tính năng từng workspace.


Tài liệu kiểm thử tính năng Billing/Charging Callbot – UCALL Dev.