Cloud software allows for fast incremental releases of software which provide nearly constant new value to customers and end-users. Mobile applications are also in a race to add features but also to keep pace with the changing mobile computing environment. To help development stay synced with user needs, many organizations, both IT and vendor development teams, have adopted Agile development methodologies. Agile differs from classic waterfall project management by taking iterative development to its logical conclusion. Development happens in short bursts of development called scrums, leading to smaller but more frequent releases. Agile development allows organizations to remain flexible in the face of changing IT needs.
As more companies adopt Agile development methodologies, changes are underway in many aspects of software developments. One area where Agile development is driving change is in testing. Agile’s short scrums leave little time for testing mishaps. Inefficiencies in unit, integration, and Q&A testing will delay the development velocity that organizations are trying to accomplish with Agile. In response, developers have adopted new testing methods to accommodate the needs of Agile development. For example, developers will often design for and from test requirements. They develop test plans from use cases and then develop code from the test plans.
The way developers create sets of test data is also changing. Each development cycle presents development teams with a new and changing set of data requirements for testing at all levels. Manual test data creation methods such as scripts and manual entry can’t keep up with such as dynamic environment. Manual entry is an especially poor but unfortunately common way of creating test data. Test data created in this manner is never truly representative of actual production data and usually results in too small a data set for testing to be true.
Forward thinking development organizations are turning to automation to ensure that testing happens in a timely manner while maintaining high levels of quality. Automated test data management and test data generation software have a number of features that allow developers to create and manage test data sets. The four most important are:
- Generation of test data sets that are represent the production data. A true test of a system at any level needs data that most closely resembles the actual production data that is already in place. Otherwise new features will break existing systems.
- Generation of test data sets that represent the data that the new data structures will eventually contain. Test data sets need to be generated for data structures and schema that don’t already exist in the product systems. Since there is no existing data to work from a logical set of hypothetical data needs to be created that closely resembles what the actual production data will be. Random data is not acceptable.
- Maintain test data sets as the software and underlying database schema changes. Test data management software needs to manage data sets so that they can be leveraged across the entire development team. This is especially important during unit testing when many developers will be working on adjacent parts of a system. Data sets also need to be refreshed regularly to insure that they are in sync with system changes that occur as a result of new development.
- Mask private data in the production test data set. Despite the rapidity of Agile development, it is not acceptable for privacy concerns to be ignored. Production data in most industries is rife with information that the development team should not and, frankly, doesn’t want to see. This includes healthcare information, social security numbers, and personally identifying information. Test data management software helps keep private data private through data masking. Data masking obscures information that should stay private while providing replacement information that is viable for testing.
A wide range of companies produce these test data management and test data generation software including Oracle, HP, Informatica, Grid-Tools, and IBM. Some are standlone products while others are features in a broader software testing suite. The Informatica 9.6 test data toolbox is a good example of what standalone solutions should look like. It includes test data generation from production data, generation of test data that mimics new data structures, and data masking to ensure privacy. The product automates most of the critical test data tasks that are necessary for testing to stay in sync with Agile scrums. IBM’s Infosphere Optim has similar test data management features including data masking and test data creation.
Agile methodologies allow development projects to remain flexible and responsive to the needs of customers and other stakeholders. The rapid pace of the development scrum requires that test data management become automated or risk falling behind the rest of the development process, undermining the advantages of Agile.