Machine Code Analysis for Software Defect Identification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software testing becomes increasingly challenging with larger software products due to the complexity of source code changes, requirement changes, and environment changes, making it difficult to identify and address software defects effectively.
Innovation Solution
A computer-implemented method and system for machine code analysis that executes test cases, identifies failing test cases, analyzes machine code to find patterns causing failures, and uses machine learning techniques to detect fault logical constructs and paths within the machine code, preventing out-of-order execution and reducing false positives.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional software testing methods are used on large software products, then testing coverage can be achieved, but the complexity of testing increases significantly due to source code changes, requirement changes, and environment changes
Solution Approach 1:
The patent replaces traditional mechanical testing methods (manual test case execution, log analysis, debugger usage) with automated machine learning-based analysis. The system automatically analyzes source code changes, requirement changes, and environment changes to identify potential defect locations, substituting human-operated mechanical testing processes with intelligent automated systems that reduce complexity while maintaining or improving defect identification accuracy.
2Reliability
If more test cases are executed to cover larger software products, then defect detection capability improves, but resource consumption and time requirements increase
Solution Approach 1:
The patent performs preliminary analysis of source code changes, requirement changes, and environment changes before executing test cases. By identifying potential defect locations in advance through automated analysis of change patterns, the system can prioritize and focus test case execution on critical areas, reducing the overall testing time while maintaining high defect detection capability.
Solution Approach 2:
Instead of executing all possible test cases uniformly, the system applies partial action by focusing testing resources on specific high-risk areas identified through change analysis. The machine learning model determines which portions of the code base require intensive testing based on the nature and impact of changes, avoiding unnecessary execution of test cases in stable, low-risk areas.
3Reliability
If traditional log analysis and debugger methods are used to investigate software quality, then defect investigation can be performed, but false positives increase and resource utilization decreases
Solution Approach 1:
The patent implements feedback mechanisms where the machine learning model continuously learns from test execution results, log data, and defect identification outcomes. This feedback loop allows the system to refine its analysis algorithms, reducing false positives over time by learning from actual defect patterns and distinguishing them from normal operational variations in logs and code behavior.
Solution Approach 2:
The system introduces an intermediary machine learning analysis layer between traditional testing methods and defect identification. This intermediary automatically correlates source code changes, requirement changes, environment changes, and test results to filter out false positives before they reach the final defect identification stage, improving reliability while reducing harmful false positive results.
Data Source
AI summary
According to one or more embodiments of the present invention, a computer-implemented method for machine code analysis includes executing a set of test cases associated with a software product. The method further includes determining a failing test case, from the set of test cases. The method further includes identifying a portion of a machine code of the software product, the portion of the machine code corresponding to the failing test case. The method further includes analyzing the portion of the machine code to identify a pattern of machine code causing the failing test case to fail. The method further includes searching the machine code of the software product to find the identified pattern of machine code.


