Software Regression Testing via Symbolic Execution
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Reliability
If symbolic execution is performed on all execution paths, then testing coverage is improved, but time and resource consumption increase
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.
2Measurement precision
If test cases are developed for each software update, then testing accuracy is improved, but development time increases
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.
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.
Data Source
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.


