Kiểm thử dựa trên dữ liệu
Kiểm thử dựa trên dữ liệu (Data-Driven Testing - DDT) là một phương pháp kiểm thử phần mềm trong đó dữ liệu kiểm thử được tách biệt khỏi logic kiểm thử. Thay vì mã hóa cứng các giá trị đầu vào cụ thể trực tiếp vào các kịch bản kiểm thử, DDT sẽ đưa dữ liệu này ra các nguồn bên ngoài, chẳng hạn như bảng tính, cơ sở dữ liệu hoặc tệp cấu hình. Sau đó, các kịch bản kiểm thử sẽ đọc dữ liệu bên ngoài này và thực thi cùng một logic kiểm thử nhiều lần với các bộ đầu vào khác nhau.
Trong các ứng dụng phức tạp, việc kiểm thử với một bộ dữ liệu duy nhất là không đủ. DDT cho phép các nhóm QA xác thực hành vi của ứng dụng trên một phạm vi rộng lớn các kịch bản thực tế một cách hiệu quả. Điều này làm tăng đáng kể phạm vi kiểm thử mà không cần phải viết lại thủ công các kịch bản kiểm thử cho mọi sự biến thể dữ liệu mới.
Quy trình này bao gồm ba thành phần chính: khung kiểm thử (test framework), logic kiểm thử (test logic) và nguồn dữ liệu bên ngoài (external data source). Khung kiểm thử được thiết kế để lặp qua dữ liệu được cung cấp bởi nguồn bên ngoài. Logic kiểm thử vẫn giữ nguyên, xác định cái gì cần được kiểm thử (ví dụ: 'Xác minh đăng nhập thành công'). Dữ liệu bên ngoài cung cấp cách thức nó nên được kiểm thử (ví dụ: 'Tên người dùng A/Mật khẩu X', 'Tên người dùng B/Mật khẩu Y').
DDT rất hiệu quả trong các tình huống liên quan đến điều kiện biên, kiểm thử tiêu cực và xác thực dữ liệu quy mô lớn. Các ví dụ bao gồm kiểm thử các cổng thanh toán với nhiều loại thẻ khác nhau, xác thực chức năng tìm kiếm với các từ khóa khác nhau, hoặc đảm bảo các biểu mẫu gửi dữ liệu xử lý các đầu vào người dùng đa dạng.
Việc triển khai DDT đòi hỏi thời gian thiết lập ban đầu để xây dựng lớp tích hợp dữ liệu. Việc quản lý và duy trì các bộ dữ liệu bên ngoài lớn, phức tạp cũng có thể trở thành một thách thức về hậu cần nếu không được tổ chức đúng cách.
Phương pháp này có liên quan chặt chẽ đến Kiểm thử Tham số (Parameterized Testing), vốn thường là sự triển khai kỹ thuật của DDT trong các khung tự động hóa. Nó cũng bổ sung cho Phát triển dựa trên Hành vi (Behavior-Driven Development - BDD) bằng cách cung cấp dữ liệu cụ thể cần thiết để thực thi các hành vi đã xác định.