Automated Software Bug Discovery Using ML Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software testing methods are inefficient in detecting latent bugs, which can cause unexpected errors and are difficult to identify, leading to potential system failures and safety risks, especially in mission-critical applications.

Innovation Solution

An automated software bug discovery and assessment system that generates unique inputs to execute an application multiple times, tracking source code lines and object values, and using machine learning to analyze statistical models to identify potential bugs, including latent ones, and providing graphical representations of abnormalities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional software testing methods are used, then testing simplicity is maintained, but bug detection capability (especially for latent bugs) is insufficient

Engineering Contradiction:
Improvebug detection capabilityVSAvoidtesting system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The testing system is segmented into multiple independent components: bug detection module, statistical model generator, execution engine, and analysis module. Each component performs a specific function, allowing the complex bug detection task to be divided into manageable parts that can be executed and analyzed separately across multiple test runs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A statistical model acts as an intermediary between raw execution data and bug detection. The system collects execution data from multiple runs, processes it through statistical analysis to identify anomalies, and then uses these anomalies to detect latent bugs. This intermediary processing layer enables sophisticated detection without requiring direct complex analysis of every execution path.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If multiple executions with unique inputs are performed, then bug detection accuracy improves, but testing time increases

Engineering Contradiction:
Improvebug detection accuracyVSAvoidtesting time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by executing the software multiple times with unique inputs before final bug analysis. These preliminary executions collect execution data and build statistical models that prepare the foundation for accurate bug detection, allowing the system to identify latent bugs that would not be detected in single-run testing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes execution parameters by varying input data across multiple test runs. By modifying input parameters and observing how execution behavior changes, the system can identify latent bugs that manifest only under specific conditions. This parameter variation approach enables comprehensive bug detection while managing testing time through systematic exploration.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If statistical modeling of execution data is performed, then latent bug identification improves, but computational resources increase

Engineering Contradiction:
Improvelatent bug identification accuracyVSAvoidcomputational resource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system applies partial statistical analysis by focusing on specific execution metrics and anomalies rather than analyzing every aspect of execution data in full detail. This selective approach allows the system to identify latent bugs through key statistical indicators without requiring exhaustive computational resources to analyze all possible execution parameters.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11494295B1Automated software bug discovery and assessment
Publication Date: 2022.11.08 ARCHITECTURE TECH CORP
  • US11494295B1 patent drawing
  • US11494295B1 patent drawing
  • US11494295B1 patent drawing

AI summary

In general, this disclosure describes methods and devices for analyzing source code to detect potential bugs in the code. Specifically, a device retrieves source code of an application. For each distinct execution of a plurality of executions of the application, the device initiates the respective execution at a particular starting point of the source code and inputs, into the source code, a unique set of inputs relative to any other execution. The device stores, into a path log, an indication of each line of source code and stores, into an output log, an indication of each output object encountered during the respective execution. Each output object includes a local variable dependent on the inputs. The device analyzes, using a machine learning model, the path and output logs to identify an abnormality indicative of a potential bug in the source code. The device outputs a graphical representation of the abnormality.