Synthetic Check Data Generation for Software Testing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for testing software applications that process electronic checks face challenges such as the need for real-world data that covers all possible code paths, which is impractical due to the volume of data and sensitivity of information.
Innovation Solution
The development of software technology that generates anonymized check data by determining possible code paths, selecting a subset of electronic check records, and anonymizing these records to create test data that can be stored in a source control system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If real-world check data is used for testing to cover all code paths, then testing completeness is improved, but data volume and sensitivity issues worsen
Solution Approach 1:
The patent creates synthetic test data that copies the structural and functional characteristics of real check data without using actual sensitive information. The system generates artificial check records with realistic formats, fields, and relationships, enabling complete code path coverage while avoiding the need to handle large volumes of sensitive real-world data.
Solution Approach 2:
The system transforms real check data parameters into synthetic equivalents by changing sensitive parameters (account numbers, names, addresses) into non-sensitive generated values while preserving structural parameters (data types, relationships, validation rules). This allows testing completeness without requiring actual real-world data volumes.
2Reliability
If real-world check data is used for testing to cover all code paths, then testing completeness is improved, but sensitivity of information worsens
Solution Approach 1:
The patent creates synthetic test data that copies the structural and functional characteristics of real check data without using actual sensitive information. The system generates artificial check records with realistic formats, fields, and relationships, enabling complete code path coverage while avoiding the need to handle large volumes of sensitive real-world data.
Solution Approach 2:
The system converts the harmful aspect of sensitive information into a benefit by using the structure and validation rules of real check data to generate synthetic data that is equally effective for testing purposes but completely safe from security risks. The sensitivity issue is transformed into an opportunity to create more controlled and reliable test data.
3Productivity
If a subset of check records is selected to minimize data volume, then data processing efficiency is improved, but code path coverage may worsen
Solution Approach 1:
The system performs preliminary analysis of the software application's code structure to identify all possible code paths before generating test data. This upfront action allows the system to create a minimal subset of synthetic check records that are specifically designed to trigger each code path, ensuring complete coverage while maintaining small data volume for efficient processing.
Solution Approach 2:
The system transforms real check data parameters into synthetic equivalents by changing sensitive parameters (account numbers, names, addresses) into non-sensitive generated values while preserving structural parameters (data types, relationships, validation rules). This allows testing completeness without requiring actual real-world data volumes.
Data Source
AI summary
A computing platform may be installed with software technology for generating anonymized test check data that configures the computing platform to: (i) determine a set of possible code paths encoded within a software application associated with check processing; (ii) based on the determined set of possible code paths and a set of electronic check records for individual checks, determine a subset of electronic check records from the set of electronic check records to be used for testing the software application; and (iii) anonymize the subset of electronic check records to be used for testing the software application by, for each respective electronic check record in the subset of electronic check records, modifying the respective electronic check record and thereby producing a respective anonymized check record for the respective electronic check record.


