Font Size: a A A

Research And Design Of The Automated Instrumentation Based On CIL

Posted on:2017-04-29Degree:MasterType:Thesis
Country:ChinaCandidate:M LiFull Text:PDF
GTID:2308330485485116Subject:Software engineering
Abstract/Summary:PDF Full Text Request
As the software quality requirements have become more sophisticated on the market, software testing as an important guarantee of software quality is getting more and more attention. The dynamic symbolic execution technology has many advantages such as automatic generatio n of test cases and high branch path coverage, it is favored by many research institutions and scholars in recent years.Dynamic symbolic execution technology searchs the branch paths as many as possible according to the certain search strategy within the prescribed time, collects the constraint,and then produces a set of test cases for each branch path by means of solving constraint.The source code instrumentation is a key step to realize the dynamic symbollic execution. It needs to analyze the source code and instrument the stub function before the simulation of symbollic execution, collect the path constraint conditions of the symbolic variable by the stub function, and then pass the constraint conditions to the constraint solver to generate test cases. But the current symbollic execution tools still have some limitations,such as only handling integer variables, collecting and solving linear constraints, can’t handle floating-point variables and can’t deal with complex data types like arrays, structures, etc.This thesis is focused on some shortcomings of the current symbollic execution tools, we use an open source tool called CIL to analyze the C program source code, redesign and achieve the function of the instrumentation module,making it can not only instrument integer variables but also instrument floating-point variables and implementing a variety of symbolic variable types. In this thesis, the main work includes: first of all,we study the relevant theory of knowledge about symbolic execution and instrumentation technology, and design the software testing tools based on client/server(C/S) architecture model.Secondly,research and analyze the CIL tool,understand the process of handling program and design instrumentation module, with the aid of the results of the CIL analysis for program, instrument the stub function in the key places using instrumentation module. Then,through the design and implementation of stub functions, testing tool can not only instrument basic data types but also implement a variety of symbolic variable types such as arrays, structures, etc. Next, implement the prototype development of automated instrumentation module,introduce the detailed design and implementation process,including the process and specification of instrumentation and implementation of various kinds of statements. Finally, test the programs of different variable type such as integers, floating point, arrays, structures, and analyze the test results, the experiment proves that the testing tool can handle different data types, adapt to different test requirements.
Keywords/Search Tags:software testing, automated test case generation, dynamic symbolic execution, instrumentation technology, CIL
PDF Full Text Request
Related items