Software Code Testing Engine Optimizing Test Suite Coverage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software code testing systems rely on user experience and do not effectively measure software code coverage, leading to inefficient testing processes where multiple test cases may exercise the same code or fail to cover portions of the code, resulting in resource wastage and invalid test executions.

Innovation Solution

An Information Handling System (IHS) with a software code testing engine that runs test cases on software code modules, identifies and maps software code coverage, and generates a test suite with a subset of test cases to achieve a desired level of coverage using a minimum number of test cases, optimizing the testing process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If all available test cases are run to maximize software code coverage, then code coverage is improved, but testing resources and time are wasted due to multiple test cases exercising the same code

Engineering Contradiction:
Improvesoftware code coverageVSAvoidtesting resources
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The system performs preliminary analysis of the software code to identify code blocks and determines which test cases will exercise each code block before actually executing the tests. This advance planning allows the system to select only the necessary test cases, avoiding redundant executions and optimizing resource utilization while ensuring comprehensive code coverage.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If a limited number of test cases are used to speed up the testing process, then testing time is reduced, but portions of the software code remain uncovered

Engineering Contradiction:
Improvetesting speedVSAvoidsoftware code coverage
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system establishes a feedback mechanism that continuously monitors which code blocks have been exercised by test cases and which remain uncovered. Based on this feedback, the system dynamically selects additional test cases to execute, ensuring that all code blocks are covered while minimizing the total number of test cases needed. This feedback-driven approach enables efficient testing with optimal coverage.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If test cases are selected based on user experience and functionality specification without analyzing internal logical structure, then testing is simpler to perform, but testing efficiency is reduced due to invalid test executions

Engineering Contradiction:
Improvetesting simplicityVSAvoidtesting efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system replaces manual user judgment and experience-based test case selection with an automated computer-implemented method. The system analyzes the internal logical structure of the software code, identifies code blocks, and automatically determines which test cases will exercise each block. This substitution of manual processes with automated analysis dramatically improves testing efficiency while maintaining simplicity of operation.

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

Data Source

PatentUS11526427B2Software code testing system
Publication Date: 2022.12.13 DELL PROD LP
  • US11526427B2 patent drawing
  • US11526427B2 patent drawing
  • US11526427B2 patent drawing

AI summary

A software code testing system includes sub-engines and a test case database storing test cases. A test case sub-engine runs each of the test cases on a plurality of software code modules, and a software code coverage determination sub-engine identifies a respective software code coverage for each software code method included in each of the software code modules. A test case/software code coverage mapping sub-engine then maps the respective software code coverage for each of the software code methods included in each of the software code modules with the respective test case that was run on that software code module to provide a test case/software code coverage mapping, which is used by a test suite optimization sub-engine to generate a test suite that includes a subset of the test cases that provide a desired level of software code coverage using a minimum number of test cases.