Software Regression Testing via Symbolic Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software testing methods face inefficiencies in covering all execution paths, particularly when changes occur in software updates, leading to increased time and resource consumption in developing and solving path condition formulas.

Innovation Solution

A method that involves concretely executing software using a test case associated with a previous version to record execution paths, followed by symbolic execution based on these results, reducing the need to solve path condition formulas for all paths and reusing test cases to enhance testing coverage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If symbolic execution is performed on all execution paths, then testing coverage is improved, but time and resource consumption increase

Engineering Contradiction:
Improvetesting coverageVSAvoidtime and resource consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs concrete execution as a preliminary step before symbolic execution to identify and record actual execution paths. This preliminary action filters out infeasible paths, so that subsequent symbolic execution only needs to analyze paths that are actually taken, significantly reducing the time and resources required while maintaining comprehensive coverage of relevant execution paths.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If test cases are developed for each software update, then testing accuracy is improved, but development time increases

Engineering Contradiction:
Improvetesting accuracyVSAvoiddevelopment time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent reuses test cases from previous software versions as a preliminary step. These existing test cases are executed concretely to record execution paths, which then guide the symbolic execution for the updated software. This approach maintains testing accuracy by focusing on actual execution paths while significantly reducing test case development time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent makes test cases universal by designing them to work across multiple software versions. Test cases are not tightly coupled to specific version details but rather to the execution paths and functionality, allowing them to be reused and adapted for regression testing of updated software without complete redevelopment.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9021449B2Software regression testing using symbolic execution
Publication Date: 2015.04.28 FUJITSU LTD
  • US9021449B2 patent drawing
  • US9021449B2 patent drawing
  • US9021449B2 patent drawing

AI summary

A method of testing software may include accessing first software that includes multiple execution paths and concretely executing the first software using a test case associated with second software to traverse at least a first execution path of the execution paths. The method may also include capturing concrete execution results produced from concretely executing the first software to record the first execution path and symbolically executing the first software using a symbolic input based on the recorded first execution path.