Data-driven testing (DDT) relates to a type of testing where the same test is executed many times over but each time with a separate input and output data scenario. The objective is to subject the system to tests with a variety of different data conditions in order to seek data specific defects.
Depending on the number of variations of data sets, DDT is predominantly done with automated testing systems as it can be prohibitively laborious and expensive if performed by humans.
DDT normally works that the tester provides a data file where each row/record contains both the input data and the expected system output. The automated testing system then repeats the execution of that test for every row in the data file and reports back with pass/fail outcome.
The data files ought to include regular, everyday data scenarios but also, and probably more importantly, boundary and unusual/unexpected data scenarios.
Example of Work Order approval data file:
|WO Material Item Price||Item Quantity||Expected WO Status|
The key benefits of DDT are:
- Exhaustive testing - Testing more closely resembles the real-life usage of the system
- Separation of logic and data - Makes tests easier to maintain
- Flexibility in adding or modifying data sets - Enables non-technical people to add, modify or remove data scenarios
- Reduction of the overall pool of test scripts