Dataset constraint testing: đặt "schema" cho dữ liệu ML
🎯 Mục tiêu học (LO AI-5.1.5 · mức K3 – Áp dụng): áp dụng dataset constraint testing.
💡 Ý cốt lõi: giống database có schema, tập dữ liệu ML cũng có thể định nghĩa tập ràng buộc đóng vai trò "mô hình logic" của dữ liệu — dữ liệu đúng phải thỏa mãn các ràng buộc này.
3 nhóm ràng buộc
| Nhóm | Loại ràng buộc | Ý nghĩa / ví dụ |
|---|---|---|
| Single-value (trên 1 giá trị/bản ghi) | Missing | Test giá trị/thuộc tính bị thiếu. |
| Range | Test một giá trị có nằm trong khoảng cho phép không. | |
| Type | Test giá trị có đúng kiểu khai báo không (vd thuộc tính khai integer mà lại là chuỗi/số thực). | |
| Multi-value (trên nhiều giá trị của 1 thuộc tính) | Sum | Tổng các giá trị bằng/vượt/không vượt một mốc cho trước (vd tổng điểm một chặng đua F1 không vượt 102, phải trên 50.5). |
| Count | Số lượng giá trị/bản ghi khác null bằng/vượt/không vượt một mốc cho trước. | |
| Duplicate | Test giá trị/bản ghi trùng lặp (giống hệt hoặc gần giống), giới hạn số lượng cho phép (thường là 0). | |
| Useful | Test một thuộc tính có giá trị lặp lại ở mức hợp lý — nếu mọi giá trị đều duy nhất (như ID, timestamp) thì thường không mang lại mẫu hình hữu ích để model học. | |
| Outlier | Nhận diện các giá trị có thể coi là ngoại lai (outlier) về mặt thống kê. | |
| Comparison (so sánh giữa 2 thuộc tính) | Greater Than | Test giá trị một thuộc tính lớn hơn giá trị thuộc tính khác (vd số dòng code lớn hơn số dòng code có lỗi). |
| Correlate | Test giá trị một thuộc tính có tương quan với giá trị thuộc tính khác (vd điểm số cao hơn 1.33 độ lệch chuẩn so với trung bình thì luôn có xếp loại 'A'). |
Test theo các ràng buộc trên có thể làm thủ công, nhưng do quy mô hoạt động và kích thước tập dữ liệu ML thường rất lớn, thực tế cần tự động hóa như một phần của data pipeline. Khi được cài đặt trong pipeline, công cụ constraint testing có thể xuất báo cáo cho data scientist (bất thường trong dữ liệu huấn luyện) hoặc cho đội vận hành (vấn đề dữ liệu vận hành).
📝 Bẫy hay gặp
Đề hay cho một phát biểu nghe hợp lý nhưng sai — nhớ mấy chỗ gài sau:
- "Useful constraint kiểm tra giá trị có 'hữu ích' về mặt kinh doanh" → SAI: "Useful" kiểm tra thuộc tính có giá trị lặp lại — nếu mọi giá trị đều duy nhất (như ID) thì thường không cung cấp mẫu hình hữu ích cho model học.
- "Correlate và Greater Than đều là single-value constraint" → SAI: cả hai là comparison constraint, so sánh giữa hai thuộc tính.
- "Dataset constraint testing luôn nên làm thủ công để chính xác hơn" → SAI: do quy mô dữ liệu lớn, thực tế nên tự động hóa trong pipeline.
📌 Ghi nhớ
3 nhóm ràng buộc: single-value (Missing/Range/Type) · multi-value (Sum/Count/Duplicate/Useful/Outlier) · comparison (Greater Than/Correlate)
Với tester: nghĩ về dataset constraint testing như việc viết schema cho dữ liệu ML — và vì dữ liệu ML thường rất lớn, nên tự động hóa các ràng buộc này thành một bước trong pipeline, không chờ kiểm tra thủ công.
📖 Thuật ngữ Anh–Việt (mục này)
Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.
| Thuật ngữ (EN) | Nghĩa & ghi nhớ nhanh |
|---|---|
| Dataset constraint testing | Kiểm thử ràng buộc tập dữ liệu |
| Single-value constraint | Ràng buộc trên một giá trị (một thuộc tính, một bản ghi) |
| Multi-value constraint | Ràng buộc trên nhiều giá trị (một thuộc tính, nhiều bản ghi) |
| Comparison constraint | Ràng buộc so sánh giữa hai thuộc tính |
| Outlier | Giá trị ngoại lai |
| Duplicate | Trùng lặp |
| Database schema | Lược đồ cơ sở dữ liệu |
🎯 Câu hỏi minh họa (phong cách đề CT-AI · K3)
A dataset has an attribute where every value is unique, like a timestamp, offering the model no learnable pattern. Which constraint type identifies this issue?
- a) Range constraint.
- b) Useful constraint.
- c) Correlate constraint.
- d) Type constraint.
Xem bản dịch tiếng Việt
Một tập dữ liệu có thuộc tính mà mọi giá trị đều duy nhất, như timestamp, không cung cấp mẫu hình nào để model học. Loại ràng buộc nào phát hiện vấn đề này?
a) Ràng buộc Range.
b) Ràng buộc Useful.
c) Ràng buộc Correlate.
d) Ràng buộc Type.
Xem đáp án & giải thích
✅ Đáp án đúng: b — Useful constraint đúng là kiểm tra thuộc tính có giá trị lặp lại đủ để hữu ích cho model học hay không.
a sai — Range kiểm tra giá trị nằm trong khoảng cho phép, không liên quan tính duy nhất.
c sai — Correlate so sánh tương quan giữa hai thuộc tính, không kiểm tra tính lặp lại của một thuộc tính.
d sai — Type kiểm tra đúng kiểu dữ liệu, không liên quan tính lặp lại.
Đề để tiếng Anh cho sát đề thi thật; phần giải thích để tiếng Việt cho dễ hiểu. Câu hỏi do maiqai.com tự soạn theo phong cách đề.
📎 Nguồn: Chương 5 – Kiểm thử dữ liệu đầu vào cho hệ thống ML, mục 5.1.5 "Dataset Constraint Testing", trang 51–52 — ISTQB® Certified Tester AI Testing Syllabus v2.0 (© International Software Testing Qualifications Board). Nội dung biên soạn/dịch ý lại bằng tiếng Việt, không sao chép nguyên văn.