Automated Test Repair via Reinforcement Learning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing automated software testing tools rely on random input methods, which are time-consuming and often fail to cover all valid operating conditions, leading to incomplete defect detection and manual intervention by quality assurance engineers, especially in complex and frequently updated software environments.

Innovation Solution

An application test execution and maintenance system incorporating an application learner and a test execution and repair manager, utilizing reinforcement learning and transfer learning to develop knowledge of application operations, detect failures, and automatically repair tests by identifying alternative sequences of operations, thereby reducing manual intervention and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If random testing or fuzz testing is used, then automation is achieved, but testing coverage and defect detection reliability deteriorate

Engineering Contradiction:
ImproveautomationVSAvoiddefect detection reliability
Core Design Contradiction:
Extent of automationVSReliability

Solution Approach 1:

The system performs preliminary analysis of the application's valid operating conditions and defect patterns before executing tests. By pre-processing test data and identifying critical test paths based on historical defect information, the system transforms random testing into targeted testing, improving defect detection reliability while maintaining automation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where test results and defect information are continuously fed back into the test generation process. This feedback loop allows the system to learn from previous test outcomes and adjust future test cases, progressively improving testing effectiveness and reliability without manual intervention.

Inventive Principle:
Principle #23Feedback

2Extent of automation

If random testing is used, then automation is achieved, but testing time increases

Engineering Contradiction:
ImproveautomationVSAvoidtesting time
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

The system pre-processes application information to identify critical test paths and valid operating conditions before actual testing begins. This preliminary analysis phase reduces the search space for subsequent automated testing, significantly cutting down the time required while maintaining comprehensive coverage.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts and focuses on critical test paths and high-risk areas from the entire application space. By taking out only the most important testing scenarios based on defect patterns and operational importance, the system achieves efficient testing without examining every possible random input.

Inventive Principle:
Principle #2Taking out (Extraction)

3Manufacturing precision

If manual test repair is performed, then test accuracy is improved, but productivity deteriorates

Engineering Contradiction:
Improvetest accuracyVSAvoidproductivity
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system performs automatic self-repair of broken test cases by analyzing the failure cause and generating corrected test steps autonomously. This self-service capability eliminates the need for manual intervention in test maintenance, preserving test accuracy through systematic repair while maintaining high productivity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system replaces manual mechanical repair processes with automated algorithmic repair mechanisms. By substituting human engineers' manual debugging and test correction work with automated analysis and repair tools, the system maintains test accuracy through systematic approaches while dramatically improving productivity.

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

4Reliability

If comprehensive test coverage is pursued, then defect detection improves, but device complexity increases

Engineering Contradiction:
Improvedefect detectionVSAvoidtesting system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements a universal testing framework that handles multiple testing objectives (coverage, defect detection, performance) through a single integrated platform. This multi-functional approach consolidates various testing capabilities into one system, achieving comprehensive defect detection without proportionally increasing system complexity.

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

Solution Approach 2:

The system pre-analyzes the application to automatically generate an optimized test plan that balances coverage and complexity. By performing preliminary analysis of valid operating conditions and defect patterns, the system identifies the most effective test cases without requiring manual design of complex test scenarios.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11860769B1Automatic test maintenance leveraging machine learning algorithms
Publication Date: 2024.01.02 AMAZON TECH INC
  • US11860769B1 patent drawing
  • US11860769B1 patent drawing
  • US11860769B1 patent drawing

AI summary

A test execution and maintenance system may include an application learner configured to develop knowledge of operations of an application based on one or more learning test. The test execution and maintenance system then may include a test execution and repair manager configured to execute a functional test of the application, detect a failure of the functional test, and repair the functional test based on the knowledge of operations of the application. Responsive to detecting the failure of the functional test, the application learner may optionally perform a re-learning process and update the previously acquired knowledge of operations of the application.