Learned Predicates for Software Behavior Modeling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional static and dynamic analysis techniques struggle to discover complex relationships between input variables and runtime values in software programs, particularly when multiple control paths exhibit different behaviors, making it difficult to identify test inputs effectively.

Innovation Solution

A system that includes a modeling component to learn relationships between test inputs and runtime values using machine learning techniques, representing these relationships as learned predicates, and a constraint solver to generate targeted test inputs that exercise specific control paths, thereby uncovering complex program behaviors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional static analysis techniques are used to evaluate code, then analysis can be performed without running the program, but the techniques struggle to discover complex relationships between input variables and runtime values

Engineering Contradiction:
Improverelationship discovery accuracyVSAvoidanalysis technique complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces learned predicates as intermediary mathematical expressions that mediate between input variables and runtime values. These predicates serve as a bridge that captures complex relationships without requiring full program execution, thereby improving measurement precision while managing analysis complexity through a layered approach.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces traditional mechanical static analysis methods with machine learning-based modeling. Instead of relying on symbolic reasoning and manual analysis, the system uses learned predicates generated through machine learning to automatically capture complex variable relationships, substituting mechanical analysis with intelligent modeling.

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

2Adaptability or versatility

If dynamic analysis techniques are used to execute the program with different test inputs, then runtime behavior can be observed, but it is difficult to identify test inputs that exercise specific control paths

Engineering Contradiction:
Improvecontrol path coverageVSAvoidtest input identification difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements feedback by using learned predicates to guide test input generation. The modeling component continuously learns from observed runtime values and feeds this knowledge back into the fuzzing process, refining test input generation to target specific control paths. This closed-loop approach improves control path coverage while reducing the difficulty of identifying effective test inputs.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary action by pre-learning predicates that describe relationships between input variables and runtime values before executing targeted tests. This preliminary modeling phase prepares the system to efficiently generate test inputs that are likely to exercise specific control paths, reducing the difficulty of test input identification during actual testing.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple control paths with different behaviors are analyzed, then comprehensive program behavior can be captured, but the complexity of modeling relationships increases

Engineering Contradiction:
Improveprogram behavior coverageVSAvoidmodeling complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the complex modeling task into separate learned predicates for different control paths. Each predicate models relationships specific to particular control path segments, allowing comprehensive program behavior coverage while managing modeling complexity through modular, path-specific models rather than a single monolithic model.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9098621B2Modeling software behavior using learned predicates
Publication Date: 2015.08.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9098621B2 patent drawing
  • US9098621B2 patent drawing
  • US9098621B2 patent drawing

AI summary

The described implementations relate to analysis of computing programs. One implementation provides a technique that can include accessing values of input variables that are processed by test code and runtime values that are produced by the test code while processing the input variables. The technique can also include modeling relationships between the runtime values and the values of the input variables. The relationships can reflect discontinuous functions of the input variables.