Test Data Management for quality testing
All kind of testing techniques requires test data and we need to have an effective test data management system and process for efficient and quality delivery of application.
Before going to test data management, let’s see what is test data.
What is Test Data?
Test data is the data that is used in tests to validate/verify behavior of a software system.
In order to test a software application/program you may need to enter some kind of data most of the times. Any such specifically identified data which is used in tests is known as test data. Test data may be produced by the tester, or by a program or function that aids the tester.
Test data is used to confirm the expected result of a system, i.e. expected result should be produced or system should behave as expected when test data is entered; We can call this data as positive test data because this is to validate the sytem behavior. Also test data can be used to verify the software behavior when invalid input data is given; This includes validating that the system does not crash or behave up-normally. In other words, negative test data or data used in order to challenge the ability of the application to respond to unusual, extreme, exceptional, or unexpected input.
Importance of Test data:
The quality of test data matters and helps to improve application quality. If applications are tested against generic data, problems may arise once the application is live in production. In order to avoid problems in real time scenario, applications must be tested rigorously against data that is as similar as possible to the actual production data that the system will encounter in real time.
At the same, it is crucial to avoid production data as far as possible for testing. Because production data may contain critical informations which are often protected by security and regulatory laws. Data that has personally identifiable information must be altered in order to protect people from having sensitive data exposed to the development and testing teams. Test data management uses data masking techniques to obfuscate personally identifiable information while still retaining the formatting and other data properties that are important for testing.
Considering the significance of test data, applications tested with fake data or less in security measures are often not accepted.
Test data generation and management are the two important parts of software testing.
Test Data Generation:
Test data generation is the creation of non-production data sets that reliably mimic an application’s actual data so that application developers and testers can perform rigorous and valid systems tests.
Appropriate and quality test data can be generated manually by using production data as sample or from requirements and using some automation techniques.
There are 4 different test data generating models, based on their approaches, followed widely
- Random Test Data Generators
- Pathwise Data Generators
- Goal Oriented Generators
- Intelligent Test Data Generators
Most of the times in testing the test data is re-used; However it is always a good practice to verify the test data before using it in tests.
It is really difficult to create sufficient test data, which is equivalent to production data, for testing. The quantity and efficiency of data to be tested is determined or limited by time, cost and quality.
Test Data Management:
Test data can be documented in different manners including, but not limited to, Excel file, Word document, Text file, JSON file, XML file and Database tables. The data stored can be used while executing test cases manually as well as while running test cases using automation tools.
It is not just for organizations that do a lot of business critical processing of sensitive data; It is important everywhere, almost all kind of applications, where data is used for testing.
Efficient test data management helps organizations create better quality software, with less development time, that will perform reliably on production. It prevents bug fixes and rollbacks in live; Creates a more cost efficient software development/deployment process.
- An efficient test data management system reduces effort and development time of an application
- Availability of production like data to various test teams eliminates defects in production
- Customized test data to various types of testing i.e. functional, performance, security, etc. results in efficient delivery of application
- Reuse of the test data artifacts leads to reduction of cycle time
- Reduced data refresh cycle
- Improves quality
There are many more articles coming up for Test Data and management. Please let us know your thoughts/queries/clarifications in comments.
Please refer this article for test data manipulation using python scripts.