Aimed at providing a better test coverage, test data management helps deal efficiently with edge cases. Test data management techniques have several possible approaches, depending on the scenario at hand. While there is no one particular approach, a few are mentioned below.
1. Manual Test data generation
Manual test data creation is often done for carefully covering the essential test cases. This is a particularly straightforward way of creating test data. Various scenarios are tested with different types of test data, such as:
- Null test data
- Invalid test data
- Valid test data
Standard production data is often insufficient when wide test coverage is required.
Benefits of Manual Test data creation
One of the major benefits of manual test data creation is that no additional resources are required to be factored in. Testers are often encouraged to create different data sets using their skills and judgments. The time taken also need not be factored in, as it is a part of testing the application.
Demerits of Manual Test data creation
Even though time does not need to be specifically taken into account, because the test data is manually entered, it is a time-taking task. The only way more data can be added is through assigning more number of resources to add the required data. Despite additional resources and creation of test scenarios, the data volume would still be significantly thinner than in the case of automation. In order to ensure that relevant data is entered, domain knowledge and application know-how is imperative for the resource creating the test data.
2. Automated Test data generation
The chief differentiating factor of automated testing over manual testing is the significant acceleration of “speed”. Data generation tools help considerably speed up this process and help reach higher volume levels of data. Tools such as Selenium/Lean FT help pump data into the system considerably faster. Web services APIs can also be used to fill the system with data.
Benefits of Automated Test data creation
Accuracy is one of the main advantages that comes with automated test data creation. Speed with accuracy is good news for most testing tasks. The data can be filled in during non-working hours, where human interaction is almost negated, saving a massive amount of time, generating more accurate data, and ensuring that the data in question is high in volume.
Demerits: Automated Test data creation
Why is automation not used everywhere with the wide availability of increasingly updated technology? The answer would be the staggeringly high cost of automation tools. They come with a specific framework as well, and it takes effort to adequately understand the system. Hence, automation often requires resources to possess certain specific skill sets, which adds to the training of existing resources, or hiring of new ones altogether.
3. Back-end data injection
The back-end servers, which comprise the database, are required in this technique. Test data stored at the database can be used to directly update the existing databases, thereby acquiring voluminous data instantly, through SQL queries. Though this eliminates front-end data entry, it needs to be done carefully, in order to avoid fiddling with database relationships that define data integrity.
Benefits of back-end data injection
Back-end data injection is a technique that ensures swift data injection into the system. It is relatively a more effective technique. To begin with, the injection of this data through back-end typically demands lesser technical expertise in comparison with automated test data generation techniques. It proves to be an ideal technique as it also enables the creation of backdated entries, which is a huge drawback in both, manual as well as automated test data generation techniques.
Demerits of back-end data injection
Though back-end data injection sounds relatively simple, it can prove to be disastrous if implemented incorrectly. Domain expertise is crucial in order to understand the data flow within the system well, in order to ensure that only the correct database tables are populated. This expertise is necessary in order to prevent data related issues.
4. Third-Party Tools
Third-party tools available in the market help significantly with data creation and injection. They understand data residing in the back-end applications thoroughly and help pump in data that is similar to a real-time scenario. Hence, the test data ends up being diverse and voluminous in nature, and enables wide test data coverage.
Benefits of Third-Party Tools
Third-Party tools are accurate when it comes to creating test data, because the tools understand the system and the domain thoroughly. The tools are designed in a way that perfectly populates real-time data in the system. The tool also helps take care of the backdated data fill, which enables users to perform necessary tests on historical data. It is not essential for the end-user to have tremendous domain level expertise to perform this.
Demerits of Third-Party Tools
The biggest drawback of this technique is the steep price tag! The data injecting tools are indecently expensive, and can drill a huge hole in the pocket of the organization. Another major disadvantage is that these tools are not generic and can be used only with a specific kind of system, which makes them very narrow in terms of the applications they can work with.
Test data management and Injection is a skewed topic and there can be many ways to look at it. If done appropriately and cautiously, it can yield remarkable results, which can greatly help the QA and the Business teams in testing the application meticulously, as most of the applications these days rely profoundly on data.