Automated Test Generation via Software Self-Description
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software testing is time-intensive and prone to human errors due to the need for comprehensive manual code writing, especially when automating tests for software-under-test (SUT) functions, which can delay the software release cycle.
Innovation Solution
A test automation system (TAS) generates machine-programmatic tests based on a self-description of SUT function calls, arguments, and types, converting test cases into executable code to validate SUT functions with different input combinations, thereby reducing manual effort and error.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual testing is used to verify software, then comprehensive validation can be achieved, but the process becomes time-intensive and delays the software release cycle
Solution Approach 1:
The system enables self-service automated test generation by allowing the software-under-test to provide its own self-description (function signatures, argument types, expected behaviors). The test generation system automatically consumes this self-description to create comprehensive test cases without requiring manual intervention, thus achieving reliable validation while eliminating time-intensive manual coding
Solution Approach 2:
The system performs preliminary action by generating complete test cases automatically before execution. The self-description of the software-under-test is processed in advance to pre-generate all necessary test cases, allowing comprehensive validation to occur without time-consuming manual test creation during the release cycle
2Productivity
If programmatic testing is implemented to reduce manual effort, then test execution speed improves, but writing comprehensive test code becomes very time-intensive and error-prone
Solution Approach 1:
The system eliminates time-intensive test code writing by enabling self-service automated generation. The software-under-test provides its own self-description, and the system automatically generates comprehensive programmatic test cases from this self-description, maintaining high execution speed while removing the time-consuming manual coding phase
Solution Approach 2:
The system introduces self-description as an intermediary between the software-under-test and the test generation process. This intermediary contains all necessary information (function signatures, argument types, expected behaviors) that automatically drives test case generation, eliminating the need for manual test code writing while ensuring comprehensive coverage
3Ease of operation
If automated test generation is implemented, then manual effort and errors are reduced, but the system complexity increases
Solution Approach 1:
The system reduces manual effort through self-service automation where the software-under-test provides its own self-description and the system automatically generates test cases. The complexity is managed by leveraging the existing self-description infrastructure rather than creating complex manual test design processes
Data Source
AI summary
A system described herein may use automated techniques to programmatically validate software-under-test (“SUT”) using different sets of test cases for different functions of the SUT. The system may generate the different sets of test cases based on a selected test methodology and a self-description of the SUT function calls, function arguments, and/or argument types. The system may convert the test cases to executable-code and/or network messaging that can be used to call the SUT functions with different input combinations for the arguments and/or argument types of the SUT functions, and that can capture the output that results from each function call.


