How Synthetic Data Delivers Quality at Speed in Financial Services
A global financial services company follows an Agile development process to continuously update their core applications. They have established a continuous delivery pipeline for releasing new features into production and they are leveraging test automation tools to accelerate the cycle time for each release. They also established a rigorous regression testing framework to ensure software defects are caught before they are introduced into the production environment. Fixing bugs in production is time-consuming, expensive and negatively impacts the digital customer experience.
Within the banking value stream, the QA team encountered a difficult testing challenge when validating the account origination process. There are many use cases and complex workflows to test. There is also a massive variety of account types, product offerings and digital channels involved in account origination. All code paths and data input values must be tested to detect and correct potential software defects.
The QA team also found it impossible to provision test data for all of the combinations and permutations needed when data is sourced from a production database. While realistic in nature, production data lacks the edge cases and unexpected negative data values that cause a significant share of the defects leaking through to production. The team estimates only 1/3rd of the data values and combinations needed for testing are present in a production data subset. And the time required to requisition test data from a production source that must be copied, subsetted and masked before it’s ready for testing is a lengthy process.
The QA team addressed this data gap by manually creating some of the data and generating additional data with custom Python programming. This combination of production data, manual data and generated data was a tedious process that slowed the cycle time for each test to 16 days!
When the team was introduced to GenRocket, they immediately saw the potential for generating all required data to achieve full coverage using a high-performance Test Data Automation platform. With GenRocket, synthetic data is designed and generated by importing a model of the target data environment into the system and then selecting data generators from a library of over 650 data generators. GenRocket allows testers to quickly provision the exact data they need, in any volume, at the rate of 10,000 rows per second up to millions and billions of rows of data in minutes.
One of GenRocket’s most powerful data generators, called PermutationGen, has the ability to generate all possible data combinations with constraints to ensure only valid combinations are generated while invalid combinations are eliminated. This allows testers to control the variety of synthetic data needed for testing to maximize test coverage while accelerating the data provisioning process. Below is a product matrix table showing the permutations needed for account origination with the constraints for defining the valid combinations needed for testing.
The table illustrates four account categories – Savings, Checking, Money Market, and CD – with each one having various product offerings, customer types, payment methods, funding amounts and so on. Based on this matrix, realistic synthetic data can be generated to represent all valid combinations using the self-service components provided by the GenRocket platform.
Constraints are established by specifying the unique enumerated values for each data attribute of the matrix. During the data generation process, GenRocket will compute all possible valid combinations of data and suppress the invalid combinations. The use of constraints reduces the number of total combinations on the matrix to 9,504. Without these constraints, the theoretical number of possible combinations, including invalid data combinations, is 207,360.
The image below is a small sample of the synthetic data generated using a GenRocket Test Data Case based on the constraints shown in the table.
You can view a recorded demo of this account origination use case in our knowledge base. In a short video tutorial, you will see how GenRocket can be used to design and deploy real-time synthetic test data with permutations and constraints using the PermutationGen data generator and Test Data Cases self-service components.
GenRocket’s Test Data Automation platform was successfully used by this financial services company to achieve their testing goals. The use of controlled, accurate and realistic synthetic data had a positive impact on their testing process, as described by the customer in their own words.
GenRocket’s synthetic test data solution helped us increase our regression testing coverage from 30% to 80% and provided a wider range of code coverage paths for our systems under test. At the same time, we reduced our testing cycle time from 16 days down to 2 hours.
GenRocket’s Test Data Automation platform can have a similar impact on any software testing operation. The system is designed from the ground up to accelerate the provisioning of test data, increase code coverage and reduce the total cost of ownership compared to traditional Test Data Management systems. If you would like a demonstration of the GenRocket solution and how it can deliver similar value to your organization, click on the link below.