What is Data Driven Testing?
Data-driven testing is a testing technique in which you run test scripts iteratively for the input data which is saved in an external storage location. The location of the storage may be a database, a spreadsheet, an XML file, etc.
So, every time we want to run the test script, it can be done by repeatedly utilizing the input data. In this way, an application’s effectiveness can be assessed on how it deals with different inputs. To understand this process more clearly, please have a look at the graphic below.
Data Driven Testing Process
The thing to remember here is that data that is saved in external files and sequential storage, allows us to modify it easily. For instance, the data in Microsoft Excel is saved in tabular form, so in this case, we can save our data in sequential order with the help of many different mechanisms. So, during the procedure of performing automation tests, we can select one or multiple rows of data, although we must specify the input values as well as the expected values in the source file. Since data comes from external storage, and not from hard-coded values, the detachment of input data from the test commands makes testing far simpler and more efficient. With both input values and expected values in place, the data-driven tests can perform the operations shown in the graphic above, such as:
- Get data from storage
- Record data in the app
- Check and verify the outcome
- Proceed to the following set of input data
There are many tools available that can give us an effective way to perform data-driven testing but to better comprehend the subject, let’s examine the procedure by using a generic automation testing tool.
With the help of this mechanism, we can store the “test data” in a 2D array. We will then be able to utilize the data for the data-driven tests. This array can save multiple types of data such as int, char, float, and string, etc.
Database Table Variables
With the help of these variables, data can be read from the external database source which can be a comma-separated value file (CSV), or an Excel sheet. The table saves the references to the data source and allows sequential iteration through the source data. The selection of data is carried out by each row.
Data-Driven Test Program Object
If we want to create a custom test, we can create scripts with the help of this object. We can also obtain data in a simpler way and can range from the last record to the first one, and vice versa.
How it Works for Different Storage Devices?
An automation tool can be referred to as a driver, in that it that allows us to extract data from different source locations. These drivers enable the process of iteration through the data to be easily done. Below are some example drivers found in popular software:
- ADO Driver helps access a recordset through Microsoft ADODB
- CSVDriver helps the access to data in CSV files
- ExcelDriver helps us getting the data in excel
- DDTDriver helps us extracting data from Microsoft ADO ActiveX Data Object
Guidelines for Data Driven Testing
Since DDT is within the category of automation testing, it requires software testers who have automation experience to implement and execute. Learning the tool is time-consuming, as is planning and then designing the DDT test scripts. The design of the test explains what, how, and when to utilize the input data, as well as the expected outcome. Then, when you receive the outcome, you can compare it to the expected one and record the changes. The test framework is regarded as being simple to use and maintain. Good documentation containing a lot of detail would be useful in problematic situations and would be helpful in getting a better understanding of the framework.
Data Driven testing improves test coverage. Being able to utilize inputs from outside data sources is of great benefit as iterating through the data adds to test accuracy as well. The main advantages are the possibility of storing input values in whichever data source one chooses and that the automation framework provides the essential drivers connected with a certain data source. Finally, data-driven testing is good for ensuring the maintainability and efficiency of the software.