Automated Software Bug Discovery Using ML Analysis
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Measurement precision
If multiple executions with unique inputs are performed, then bug detection accuracy improves, but testing time increases
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.
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.
3Measurement precision
If statistical modeling of execution data is performed, then latent bug identification improves, but computational resources increase
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.
Data Source
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.


