Machine Code Analysis for Software Defect Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesoftware defect identification accuracyVSAvoidtesting process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

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

2Reliability

If more test cases are executed to cover larger software products, then defect detection capability improves, but resource consumption and time requirements increase

Engineering Contradiction:
Improvedefect detection capabilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #16Partial or excessive action

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

Engineering Contradiction:
Improvedefect investigation accuracyVSAvoidfalse positives
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11307975B2Machine code analysis for identifying software defects
Publication Date: 2022.04.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11307975B2 patent drawing
  • US11307975B2 patent drawing
  • US11307975B2 patent drawing

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.