| Software quality is the key to ensure the normal and smooth operation of software products,because software defects will inevitably occur during the process of software development and software function update.If these defects are not discovered in time,the software cannot run smoothly and may even bring other related software.Greater harm.In order to effectively find defects in software and improve the defective code,software testing must be performed.As a program analysis technology,symbolic execution uses different and possible inputs to test the program and systematically explore many possible execution paths at the same time,which makes a significant practical breakthrough in software reliability applications.Dynamic symbolic execution finds defects in software through automatic input generation—that is,automated software testing.In this process,in order to ensure that the program can continue to execute,the part that the solver cannot solve is replaced with specific values,which causes part of the path to be lost,and the path explosion problem is still serious;during the entire symbolic execution,the solver's solution time takes A large part of the problem is to optimize the constraint set and reduce the burden on the solver.In this paper,the method of optimizing the constraint set by segmented dynamic symbol execution is used to alleviate the path explosion in dynamic symbol execution.This paper proposes a CCSDSM optimization framework.It uses cycle complexity to measure software complexity for segmentation processing,to avoid path explosion caused by exponential growth of program branches,and to optimize constraint sets at segmentation to reduce the burden on the solver and delay symbol values.Replaced by actual values,reducing path incompleteness.This article uses the open source symbol execution tool KLEE to analyze the program.Design experiments to evaluate the feasibility and optimization effect of CCSDSM framework.The experiment uses the KLEE default method as a reference,and analyzes the program construction code before and after the segmented execution.It is found that the running time and efficiency of the program are very different due to the complexity of different code circles.The loop complexity test is performed on some of the source code files in the open source project.The source code file readelf.c with a higher loop complexity valueis used to segment and optimize the constraint set to effectively mitigate the path space explosion.Symbolic execution is more and more used for automated software testing.The study of program verification and optimization constraints that deal with path explosion is of great significance to software testing. |