Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Chủ đề 8 · Thiết kế Test Case & UAT — Sinh dữ liệu test bằng AI: đa dạng, hợp lệ và an toàn

Bài 4 — Sinh dữ liệu test bằng AI: đa dạng, hợp lệ và an toàn

Vấn đề: test case đúng nhưng dữ liệu nghèo nàn

Bạn có 30 test case rất tốt, nhưng khi thực thi lại dùng đi dùng lại vài dòng dữ liệu "Nguyễn Văn A, 30 tuổi". Kết quả: các lỗi liên quan đến dữ liệu đặc biệt (tên có dấu, số điện thoại sai định dạng, ngày tháng biên, ký tự Unicode) không bao giờ lộ ra trong test mà chờ tới production mới bùng nổ. Chuẩn bị dữ liệu test đa dạng thủ công rất tốn thời gian và dễ thiếu trường hợp hiểm.

AI mạnh ở việc sinh dữ liệu biến thể

AI có thể sinh nhanh:

  • Dữ liệu hợp lệ đa dạng (tên Việt có dấu, địa chỉ nhiều tỉnh).
  • Dữ liệu biên (chuỗi dài tối đa, số 0, giá trị âm).
  • Dữ liệu sai định dạng để test validation (email thiếu @, ngày 31/02).
  • Dữ liệu "độc" (ký tự đặc biệt, khoảng trắng đầu/cuối, emoji, SQL-like string) để kiểm thử an ninh cơ bản.
  • Bộ dữ liệu theo tổ hợp (kết hợp nhiều trường theo pairwise).
Quan trọng: luôn là dữ liệu giả (synthetic), không bao giờ lấy dữ liệu thật.

Ví dụ cụ thể

Form đăng ký: họ tên, email, số điện thoại VN, ngày sinh, mật khẩu (8–20 ký tự, có chữ hoa, số, ký tự đặc biệt). Bạn cần 20 dòng dữ liệu vừa hợp lệ vừa để test validation.

Prompt mẫu sinh dữ liệu test

Vai trò: kỹ sư kiểm thử. Sinh dữ liệu test GIẢ (synthetic) cho form đăng ký.
Các trường và ràng buộc:
  • Họ tên: tiếng Việt có dấu, 2-50 ký tự
  • Email: đúng định dạng RFC cơ bản
  • SĐT: số Việt Nam (đầu 03/05/07/08/09, 10 số)
  • Ngày sinh: người dùng phải >= 18 tuổi tính đến 2026
  • Mật khẩu: 8-20 ký tự, có chữ hoa, số, ký tự đặc biệt
Yêu cầu:
  • Sinh bảng CSV 20 dòng, cột cuối là cột "Kỳ vọng" (Hợp lệ / Lỗi + lý do).
  • Bao gồm: ~10 dòng hợp lệ đa dạng, ~10 dòng biên/không hợp lệ
(email thiếu @, SĐT 9 số, ngày sinh dưới 18 tuổi, mật khẩu thiếu ký tự đặc biệt, tên chứa số, khoảng trắng thừa, chuỗi dài quá giới hạn).
  • TUYỆT ĐỐI dùng dữ liệu bịa, không dùng thông tin cá nhân có thật.

Các bước thực hiện

  • Liệt kê đầy đủ ràng buộc từng trường (độ dài, định dạng, giá trị hợp lệ).
  • Yêu cầu AI sinh CSV kèm cột "Kỳ vọng" để dễ chấm kết quả.
  • Yêu cầu trộn cả case hợp lệ và không hợp lệ theo tỉ lệ.
  • Rà nhanh: xóa dòng trùng, kiểm tra vài dòng biên có đúng ràng buộc không.
  • Nạp CSV vào môi trường test; đối chiếu kết quả thực tế với cột "Kỳ vọng".
  • Với dữ liệu nhạy cảm (thẻ, CCCD), chỉ dùng số giả theo chuẩn kiểm thử, không dùng số thật.

Kỹ thuật pairwise để giảm số tổ hợp

Khi một chức năng có nhiều trường, số tổ hợp bùng nổ. Yêu cầu AI: "Áp dụng pairwise testing để rút gọn tổ hợp giữa các trường Loại tài khoản (3), Quốc gia (4), Phương thức thanh toán (3) sao cho mọi cặp giá trị đều xuất hiện ít nhất một lần." AI sẽ trả về bộ tối thiểu thay vì 36 tổ hợp đầy đủ.

Template mô tả dữ liệu test

Bộ dữ liệu: [Tên chức năng]
Trường | Kiểu | Ràng buộc | Giá trị hợp lệ mẫu | Giá trị biên | Giá trị lỗi
-------|------|-----------|--------------------|--------------|------------
...
Quy tắc: 100% synthetic, không PII thật, có cột Kỳ vọng, gồm cả positive & negative.

Sai lầm thường gặp

  • Ảo giác định dạng: AI có thể sinh số điện thoại hay CCCD "trông đúng" nhưng sai chuẩn địa phương, hoặc email hợp lệ theo AI nhưng hệ thống bạn từ chối. Luôn kiểm chứng vài mẫu với luật thật.
  • Rò rỉ dữ liệu (nguy hiểm nhất ở bài này): Không bao giờ đưa dữ liệu khách hàng thật để "nhờ AI biến đổi". Kể cả ẩn danh chưa chắc an toàn. Hãy sinh mới hoàn toàn.
  • Phụ thuộc quá mức: Dùng dữ liệu AI mà không kiểm tra tính hợp lệ theo nghiệp vụ (ví dụ ngày sinh 30/02, mã tỉnh không tồn tại). Dữ liệu rác làm test chạy sai mà tưởng do lỗi phần mềm.
Kết bài: Có test case, ma trận và dữ liệu, giờ là lúc bước vào phần khách hàng quan tâm nhất — kịch bản UAT, chủ đề của bài 5.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi