To understand the importance of Test Data Management in Software Testing, let me start with a transcript. Once upon a time I was facing an interview with Citibank for QA profile, when Citibank was setting up its development & testing center in Pune, India. The Senior Manager asked me one of the basic question –
You must have observed one thing. Say you had enough time & resources for functional system testing >> did everything to identify & retest all the defects >> delivered a successful Test Completion Report. But still there are defects identified in the UAT phase. Any idea why? You completed all the testing, then why is it that there are always some defects that are found in UAT testing and not system testing?
The answer: Test Data Management! But what actually is the Test data? Why is it used? Maybe you would wonder Designing Test cases is challenging enough, then why bother about something as trivial as Test Data Management?
How do you test a textbox? Yeah! By entering & submitting different text. The permutations & combinations of this ‘text’ used for testing purpose is known as ‘Test Data’, i.e. data used for testing purpose. For testing a textbox we will first prepare the P&C of test data – numeric, alphabets, alphanumeric, max length, special characters, etc. As the application functionalities grow, so does the corresponding Test data to-be-used for testing. It may be any kind of input to the application-under-test (User credentials, Environmental data, Setup data, Input / Output data, Uploaded files, Database tables, Transitional data, etc.)
Importance of Test Data in Software Testing
Say you have tested the textbox (Passport#) functionality with above test data combinations & it is working fine. The build is deployed for UAT or to production environment. A business user fills all the form details & click on submit >> Blank screen!
Wait a minute! Everything was tested completely then why the blank screen? The user forgot to enter the Passport# and submitted the form. QA team tested all the combinations EXCEPT ‘Blank’. The result – End-user trust in the application is impacted. And it is exaggerated if it’s a critical application.
Carefully prepared Test data is an important concept for successful Software Testing. Absent, obsolete or wrong test data might result in unreliable test results – a missed or an invalid defect. Depending on the Test data used, testers can verify the expected results and the software behavior in case of invalid input data (test the ability of the application to respond to unusual, extreme, exceptional, or unexpected input). That’s why never forget the importance of Test Data Management – even after thorough testing, you cannot justify a missed defect owing to improper or lack of Test Data. Thus always have the Test Data prepared before you start actual Test execution. For reference use the below checklist:
• No data / Default data
• Valid data set
• Invalid data set
• Illegal data format (corrupted)
• Boundary Condition data set
• Data set for performance, load and stress testing
Test Data Management
How do you decide which Test data to use? Yeah! There has to be a systematic approach. The approach to Test Data Management depends on multiple factors, the most important being application-under-test. Test data can be documented in any manner – Excel Sheet, Word Document, Text file, etc. The data stored in an Excel Sheet can be entered manually while running test cases or can be read automatically from files (XML, Flat Files, Database etc.) using automation tools.
Few approaches to Test data creation – sampling (sub-set of similar types), copy production data (used by actual end-users), copy test data from legacy client system, generate data using automated tools, etc.
Note: Test Data preparation is part of the Environment setup activity, i.e. Test-bed preparation.
The challenge is to create data that truly reflects future production data as this requires good understanding of the business and how users will use the application. The rise of new software development methodologies demanding faster, more iterative release cycles has created a new set of challenges for Test Data Management. Advanced Test data management teams are looking to new technologies to make the right test data available securely, quickly, and easily without breaking the bank.
Better Test Data management means faster delivery of applications, and ultimately, faster achievement of business objectives. Companies that fail to invest in Test Data management put themselves at risk of falling behind.
Value-add: Be creative, use your own skill and judgments to create different data sets apart from using standard production data while testing.