Automated Test Generation via Software Self-Description

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesoftware validationVSAvoidsoftware release cycle
Core Design Contradiction:
ReliabilityVSLoss of time

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

Inventive Principle:
Principle #25Self-service

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

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvetest execution speedVSAvoidtest code writing
Core Design Contradiction:
ProductivityVSLoss of time

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

Inventive Principle:
Principle #25Self-service

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

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If automated test generation is implemented, then manual effort and errors are reduced, but the system complexity increases

Engineering Contradiction:
Improvemanual effortVSAvoidtest generation system
Core Design Contradiction:
Ease of operationVSDevice complexity

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

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10877875B2Systems and methods for automated programmatic test generation and software validation
Publication Date: 2020.12.29 VERIZON PATENT & LICENSING INC
  • US10877875B2 patent drawing
  • US10877875B2 patent drawing
  • US10877875B2 patent drawing

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.