Test Case Filtering via Flake Parameter Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development, a significant portion of test failures are 'flakes' - inconclusive or inconsistent results that do not provide useful information, wasting time and undermining confidence in the testing process, as existing tools fail to effectively distinguish and filter out such failures from actual application issues.

Innovation Solution

A method that classifies test cases into types and sets 'flake parameters' based on the test execution environment, allowing for the removal of test cases likely to produce inconclusive results, thereby filtering out flakes before execution, using a predefined mapping of test types to environment characteristics that could cause flakes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all test cases are executed without filtering, then comprehensive test coverage is achieved, but time is wasted on investigating false failures (test flakes)

Engineering Contradiction:
Improvetest result reliabilityVSAvoidtime spent on investigating false failures
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary classification of test cases into test types and identification of flake parameters before test execution. By analyzing test case characteristics and environment factors in advance, the system predicts which tests are likely to produce flakes and filters them out beforehand, preventing waste of time on investigating false failures while maintaining reliable test results for non-flake tests

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts and removes test cases predicted to produce flakes from the test suite before execution. By identifying test cases with high flake probability based on their type and environment characteristics, the system separates these problematic tests from the main test suite, ensuring that only high-quality, conclusive tests are executed and reported

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If test cases are filtered based on environment characteristics, then time is saved by avoiding flake execution, but some actual failures might be missed

Engineering Contradiction:
Improvetesting efficiencyVSAvoidfailure detection accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback mechanisms where test results and environment data are continuously analyzed to refine the classification and filtering models. By learning from actual test outcomes and environment correlations, the system improves its ability to distinguish between genuine failures and flakes, reducing false negatives while maintaining high filtering accuracy

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts filtering parameters and thresholds based on historical test data and environment variations. By changing the sensitivity and criteria of flake prediction parameters, the system optimizes the balance between filtering out flakes and detecting actual failures, adapting to different testing scenarios and environments

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12045161B2Environment specific software test failure analysis
Publication Date: 2024.07.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12045161B2 patent drawing
  • US12045161B2 patent drawing
  • US12045161B2 patent drawing

AI summary

By analyzing a test case in a set of test cases, the test case is classified into a test type. Using a result of analyzing a test execution environment, a flake parameter is set, the flake parameter comprising an execution environment characteristic capable of causing an inconclusive result of execution of the test case. Responsive to determining that the test type maps to the flake parameter, the test case is removed from the set of test cases, the removing resulting in a filtered set of test cases, the determining performed using a predefined set of mappings. The filtered set of test cases is executed in the test execution environment.