Synthetic Test Data Generation via Graph Random Walks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing methods require large quantities of manually generated test data, which is labor-intensive and often inconsistent with real-world configurations, necessitating an automated approach for generating test data that is consistent with current system configurations.

Innovation Solution

A method and system for generating synthetic test data by performing a random walk on a graph of nodes representing a source relational database, using application-level schemas to define constraints and statistical models, allowing for the automatic creation of test data that reflects real-world production data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If test data is generated manually, then test data can be created with current real-world configurations, but the process is labor intensive and time consuming

Engineering Contradiction:
Improvetest data consistency with real-world configurationsVSAvoidtime for manual test data generation
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent copies production data to create test data by extracting data from the source relational database and transforming it into test data that maintains the statistical characteristics and relationships of real-world data, thereby achieving both consistency and automation

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent replaces manual mechanical data generation processes with an automated computer system that uses random walks on graph representations of database schemas to generate test data, eliminating manual labor while maintaining data quality

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If test data is generated manually, then data quality can be controlled, but the quantity of test data is limited and generation is labor intensive

Engineering Contradiction:
Improvetest data qualityVSAvoidtest data generation volume
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs self-service by automatically generating test data without human intervention, using algorithms that autonomously navigate database schemas and generate data that maintains quality standards while producing large volumes of test data efficiently

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs preliminary actions by pre-processing the database schema into a graph representation and pre-computing statistical models before actual test data generation, enabling rapid automated generation of large quantities of high-quality test data

Inventive Principle:
Principle #10Preliminary action

3Reliability

If production data is used for testing, then test data reflects current system configurations, but data security and privacy concerns arise

Engineering Contradiction:
Improvetest data representativenessVSAvoiddata security and privacy risks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent creates copies of production data that preserve statistical characteristics and relationships while removing actual sensitive values, generating synthetic test data that represents production environments without exposing real data, thereby addressing both representativeness and security concerns

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11755462B2Test data generation for automatic software testing
Publication Date: 2023.09.12 SALESFORCE INC
  • US11755462B2 patent drawing
  • US11755462B2 patent drawing
  • US11755462B2 patent drawing

AI summary

An embodiment features a method of generating test data. An application-level schema corresponding to a source relational database is received. The schema defines constraints comprising one or more of inter-field, inter-record, and inter-object constraints between related data in the source relational database. A random walk is performed on a graph of nodes representing data in the source relational database. At respective ones of the nodes, corresponding ones of the data in the source relational database are selected along a path ordered in accordance with the constraints defined in the schema. Synthetic test data is generated based on one or more statistical models of the data selected from the source relational database. Data values are generated for respective fields of an object defined in the schema, and data values are generated for records related to the object based on one or more of the constraints defined in the schema.