Automated Software Testing via Iterative Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current automated testing methods face challenges in efficiently exploring the infinite input condition space of complex software systems, as traditional binning techniques lead to an overwhelming number of test instances, exceeding finite testing resources and time constraints.
Innovation Solution
A system and method that utilize an iterative optimization algorithm to analyze an objective function, deriving a next set of condition values based on previous test results, to strategically explore the input condition space and identify relationships between input conditions and test results, leveraging machine learning and statistical methods to drive automated test runs and optimize software testing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If binning techniques are employed to limit the infinite input condition space, then the complexity of test space is reduced, but the number of test instances becomes overwhelmingly large (quadrillions), exceeding finite testing resources and time constraints
Solution Approach 1:
The patent applies preliminary action by pre-defining a finite set of input conditions and value ranges before executing automated tests. This approach limits the exploration space in advance, preventing the combinatorial explosion that would occur with exhaustive binning techniques, while still ensuring comprehensive coverage of critical test scenarios.
Solution Approach 2:
The patent utilizes parameter changes by dynamically adjusting test parameters based on objective function analysis. Instead of fixing all parameters in advance through static binning, the system modifies input condition parameters iteratively to optimize test effectiveness and reduce the total number of test instances required while maintaining thoroughness.
2Reliability
If every combination of infinite input conditions is tested, then complete coverage of all possible failures is achieved, but finite testing resources and time are insufficient to complete the testing
Solution Approach 1:
The patent implements feedback mechanisms by continuously analyzing test results and using them to inform subsequent test case selection. The system processes outcomes from previous tests and uses this information to prioritize and select the most valuable next tests, thereby achieving high reliability verification with significantly reduced testing time compared to exhaustive approaches.
Solution Approach 2:
The patent applies partial action by focusing testing efforts on the most critical and high-impact input conditions rather than attempting exhaustive coverage. The system identifies and prioritizes test cases that are most likely to reveal serious defects, achieving sufficient reliability verification with a fraction of the time required for complete enumeration of all possible input combinations.
3Productivity
If an iterative optimization algorithm is applied to derive next set of condition values, then testing efficiency is improved by strategically exploring input condition space, but computational overhead is introduced for analyzing objective functions
Solution Approach 1:
The patent applies dynamics by implementing an iterative optimization algorithm that dynamically adapts the test exploration strategy based on real-time analysis of objective functions and test results. The system continuously adjusts the selection of input condition values to maximize testing efficiency, transforming the static test planning process into a dynamic, responsive system that optimizes resource utilization during execution.
Data Source
AI summary
An embodiment of the present invention is directed to a novel approach of applying Machine Learning, statistical methods and/or other algorithms to identify associations of input conditions and values with results of requirements, measures of performance assessments, and/or other indications. These associations may be provided to an analyst, system designer, other recipient and/or receiving system or component to inform of input conditions and values that uncover system sensitivities.


