Software Performance Testing via Small Probe Data Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Performance tests for software applications are lengthy and inefficient, as they only provide a PASS or FAIL rating after completion, without indicating issues until then, and the elapsed time increases with software size, making it difficult to identify problems early in the development cycle.

Innovation Solution

A method that generates small probe data with varied computing variables, conducts performance tests on these probes, applies clustering and regression analysis to estimate the elapsed time and computing variables for the full software application, allowing for early identification of issues by comparing actual test results to estimated values, with a margin of error for PASS or FAIL ratings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If performance tests are conducted on the full software application, then accurate performance evaluation is achieved, but test elapsed time increases significantly

Engineering Contradiction:
Improveperformance evaluation accuracyVSAvoidtest elapsed time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent divides the full software application into multiple smaller probe applications (e.g., probe1, probe2, probe3) that each represent a portion of the original application. Performance tests are conducted on these smaller probes individually, and the results are aggregated to estimate the overall application performance. This segmentation allows accurate performance evaluation without requiring tests on the complete application, thereby significantly reducing test elapsed time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of testing the entire application, the patent applies partial action by testing only representative portions (probes) of the application. The probes are designed to be smaller and more manageable while still providing sufficient performance insights. This partial testing approach achieves adequate measurement precision without the time cost of full application testing.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If performance tests wait until completion before providing results, then complete performance data is obtained, but issue identification is delayed

Engineering Contradiction:
Improveperformance data completenessVSAvoidissue identification time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary performance testing on smaller probe applications before conducting full application testing. By testing probes first, the system can identify performance issues early in the development cycle. The probes serve as preliminary indicators that can trigger early warnings or corrective actions before the full application is deployed, significantly reducing the time to identify and address issues.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms that provide performance insights during the testing process rather than only after completion. By continuously monitoring probe performance and comparing results against thresholds or historical data, the system can provide real-time feedback about potential issues. This enables developers to address performance problems while they are still in development, rather than waiting for final test results.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If only PASS or FAIL ratings are provided after testing, then simple evaluation is maintained, but detailed issue identification is prevented

Engineering Contradiction:
Improveevaluation simplicityVSAvoidissue detail information
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent segments the performance evaluation into multiple dimensions by testing different probes that represent different portions or aspects of the application. Each probe can be evaluated independently and provides specific insights about particular functionality or performance characteristics. This segmentation allows detailed issue identification while maintaining ease of operation through structured, modular testing that can be systematically managed and analyzed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces probe applications as intermediary elements between the developer and the full application performance evaluation. These probes act as mediators that provide detailed performance information about specific application portions without requiring direct analysis of the complete application. The probes translate complex application performance data into more manageable and interpretable results, preserving detailed issue information while keeping the evaluation process simple and systematic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11907099B2Performance evaluation method using simulated probe data mapping
Publication Date: 2024.02.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11907099B2 patent drawing
  • US11907099B2 patent drawing
  • US11907099B2 patent drawing

AI summary

Embodiments of the present invention disclose a method, computer program product, and system for estimating the results of a performance test on an updated software application. A method, the method comprising receiving an updated software application, wherein the size of the updated software application is a first size and generating a plurality of small probe, wherein the size of each of the small probe data is a second size, wherein the second size is less than the first size. Conducting a first performance test on the plurality of small probe data and calculating an estimated elapsed time for a performance test on the updated software application. Conducting the performance test on the updated software application and determining if the updated software is given a PASS or FAIL for the performance test, based in part on the elapsed time of the performance test on the updated software application.