Stubbed Target Determining Apparatus for Symbolic Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In test technologies based on symbolic execution, determining which functions to stub can be difficult due to complex function structures, leading to explosive increases in test case paths and reduced code coverage, especially when functions return user-defined types or affect conditional branches.

Innovation Solution

A to-be-stubbed target determining apparatus and method that extracts relational information between a program under test and called functions, excluding functions that return user-defined types or affect conditional branches from the stubbing process, thereby determining which functions to stub efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If all functions called from the program under test are stubbed, then the complexity of test case creation is reduced, but the code coverage decreases and symbolic execution may fail

Engineering Contradiction:
Improvecomplexity of test case creationVSAvoidcode coverage
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent segments the set of called functions into two categories: functions to be stubbed and functions not to be stubbed. The determining unit automatically identifies which functions should not be stubbed based on analysis of the program under test, including functions that return user-defined types or affect conditional branches. This segmentation resolves the contradiction by selectively applying stubbing only where appropriate, reducing complexity while maintaining code coverage.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If functions returning user-defined types or affecting conditional branches are stubbed, then test case creation becomes simpler, but symbolic execution fails and code coverage is reduced

Engineering Contradiction:
Improveease of test case creationVSAvoidsymbolic execution success
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces a determining unit as an intermediary between the test case creation process and the stubbing process. This determining unit analyzes the program under test to identify functions that return user-defined types or affect conditional branches, and automatically excludes these functions from stubbing. This intermediary analysis ensures that stubbing is applied only where safe, maintaining symbolic execution success while still simplifying test case creation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If manual determination of functions to stub is performed, then code coverage is maintained, but the time and cost of testing increases exponentially

Engineering Contradiction:
Improvecode coverageVSAvoidtesting time and cost
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a self-service mechanism where the determining unit automatically analyzes the program under test and determines which functions should not be stubbed, without requiring manual intervention. The system extracts relational information from the program, identifies functions returning user-defined types or affecting conditional branches, and automatically generates the list of functions to exclude from stubbing. This automation eliminates the exponential time and cost associated with manual determination while maintaining code coverage.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10055341B2To-be-stubbed target determining apparatus, to-be-stubbed target determining method and non-transitory recording medium storing to-be-stubbed target determining program
Publication Date: 2018.08.21 FUJITSU LTD
  • US10055341B2 patent drawing
  • US10055341B2 patent drawing
  • US10055341B2 patent drawing

AI summary

A to-be-stubbed target determining apparatus includes: a processor that executes a determining program; and a memory that stores the determining program; wherein according to determining program, the processor: extracts relational information that represents a relation between a program under test and one or more functions which are called from the program under test; and determines, according to the relational information, from among the one or mode functions, a function that returns a user-defined type of instance accessed in the program under test and a function that returns a value used as a condition of a conditional branch in the program under test, as a first function excluded from functions to be stubbed.