Automated Test Data Generation for Software Applications
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Reliability
If production data is used for testing, then realistic test scenarios can be created, but security risks arise from exposing sensitive data
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
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
3Reliability
If comprehensive test coverage is pursued for complex software, then testing effectiveness improves, but the complexity of test data generation increases
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
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
Data Source
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.


