Automated Test Data Generation for Software Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of software testing has increased with the rise of modular and large integrated software applications, requiring effective testing methods to identify errors and changes in functionality, while conventional manual generation of invalid test data is tedious and poses security risks when using production data.

Innovation Solution

A testing system that automatically generates valid and invalid test data by determining relational expressions based on predefined rules, parsing them into tokens, and solving for boundary values to produce test data in various formats, reducing human intervention and ensuring data security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual generation of test data is used, then flexibility in creating test scenarios is maintained, but the process becomes tedious and time-consuming

Engineering Contradiction:
Improveease of test data generationVSAvoidtime for test data generation
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs self-service by automatically generating test data through the test data generation module, which parses program code, identifies parameters, generates relational expressions, and produces valid and invalid test data without requiring manual intervention for each test case

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The manual mechanical process of creating test data is replaced by an automated computational system that uses parsing, relational expression generation, and boundary value analysis to produce test data automatically

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

2Reliability

If production data is used for testing, then realistic test scenarios can be created, but security risks arise from exposing sensitive data

Engineering Contradiction:
Improverealism of test scenariosVSAvoidsecurity risks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

Instead of using actual production data, the system creates synthetic copies that replicate the structure, format, and characteristics of production data through automated generation, maintaining test realism while eliminating security exposure

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system introduces an intermediary layer of synthetic data generation that mediates between the need for realistic test data and security concerns, producing data that mimics production data without exposing actual sensitive information

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If comprehensive test coverage is pursued for complex software, then testing effectiveness improves, but the complexity of test data generation increases

Engineering Contradiction:
Improvetesting effectivenessVSAvoidcomplexity of test data generation
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The complex task of test data generation is segmented into distinct modular components: program code parsing, parameter identification, relational expression generation, boundary value analysis, and test data production, making the overall process more manageable and systematic

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The test data generation module serves multiple functions simultaneously - it parses code, identifies parameters, generates expressions, determines boundaries, and creates both valid and invalid test data, reducing overall system complexity through multi-functionality

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9367432B2Testing system
Publication Date: 2016.06.14 TATA CONSULTANCY SERVICES LTD
  • US9367432B2 patent drawing
  • US9367432B2 patent drawing
  • US9367432B2 patent drawing

AI summary

The present subject matter relates a testing system for an application. The system includes a test data generation module to generate test data for a program code. The test data generation module in turn includes a relational expression creation module that determines a relational expression corresponding to a set of parameters of the program code based on a rule indicating a format of a valid test data for the parameters. A boundary recognition module identifies a set of boundary values of the parameters based on the relational expression. Further, a solver module then generates valid test data and invalid test data for the parameters based on the boundary values.