Stubbed Target Determining Apparatus for Symbolic Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Reliability
If manual determination of functions to stub is performed, then code coverage is maintained, but the time and cost of testing increases exponentially
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.
Data Source
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.


