Test Parameter Selection for Software Module Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The inefficiency in testing software modules due to the large number of test functions in a test suite, where some test functions are executed multiple times unnecessarily, leading to substantial time consumption in testing complex software modules.

Innovation Solution

A method that accesses a test parameter data structure and a parameter usage data structure to identify the specific test parameters used by each test function, allowing the test initiator to execute each test function an optimal number of times based on the parameters and values used, employing combinatorial testing techniques to minimize unnecessary executions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a comprehensive test suite with many test functions is used to thoroughly test software modules, then testing coverage and reliability are improved, but testing time and productivity deteriorate

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the test suite by creating a parameter usage data structure that divides test functions into groups based on their parameter requirements. Each test function is analyzed to identify which parameters it actually uses, allowing the test initiator to segment executions into necessary and unnecessary categories. This segmentation enables selective execution of only those test functions that are relevant to the changed parameters, maintaining comprehensive coverage while reducing redundant executions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by executing only the subset of test functions that are necessary based on parameter usage analysis, rather than executing the entire test suite. The system determines the minimal required execution set by comparing changed parameters against the parameter usage data structure, thereby performing partial testing that is sufficient for regression testing purposes without the excessive action of running all test functions.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If all test functions are executed multiple times with different parameter combinations, then thorough parameter testing is achieved, but time consumption increases substantially

Engineering Contradiction:
Improveparameter testing thoroughnessVSAvoidtesting duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by pre-analyzing and storing parameter usage information in a parameter usage data structure before actual test execution. During the test initialization phase, the system pre-determines which test functions use which parameters and stores this mapping relationship. When parameters change, this pre-computed information allows immediate identification of affected test functions without requiring runtime analysis, thereby reducing testing duration while maintaining thorough parameter testing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by using the parameter usage data structure to inform test execution decisions. After parameters are identified as changed, the feedback mechanism queries the parameter usage data structure to determine which test functions should be executed, creating a closed-loop system where parameter change information feeds back into intelligent test selection, avoiding unnecessary executions and reducing overall testing time.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11226890B2Optimal selection of relevant testing parameters
Publication Date: 2022.01.18 RED HAT INC
  • US11226890B2 patent drawing
  • US11226890B2 patent drawing
  • US11226890B2 patent drawing

AI summary

Optimal selection of relevant testing parameters is disclosed. A test parameter data structure that identifies a plurality of test parameters for use with a plurality of different test functions of a test suite is accessed, each test parameter having at least one test value. A parameter usage data structure that identifies for each respective test function a set of test parameters of the plurality of test parameters used by the respective test function is accessed. Each respective test function is initiated a number of times based at least in part on the set of test parameters used by the respective test function.