Font Size: a A A

Design And Implementation Of A Concolic-Testing Tool

Posted on:2013-10-28Degree:MasterType:Thesis
Country:ChinaCandidate:S Y JiangFull Text:PDF
GTID:2248330374467135Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Software failures bring more and more economic damage nowadays while software becomes widely used in almost every industry. For avoiding software failures at most, software testing is a critical and comparatively easy way to achieve this goal. In high-confidential area, software is failure-intolerant. Therefore, white-box testing, which is based on software code, is more widely used in high-confidential area. As human re-sources are more and more expensive these years while white-box testing criteria are more and more complex and hard to achieve, automatic or semi-automatic white-box testing toolkits are needed badly. In order to automatically processing white-box testing, testing toolkits need to automatically generate test-inputs based on codes under test.Symbolic execution was proposed to deal with this situation. It sees input vari-ables as symbols and collects branch expressions when it simulates the execution. These branch expressions can be used as inputs’constraints which help to generate inputs for white-box testing. However, it is hard for symbolic execution to test real-world programs because the constraints that it extracted from real-world programs are mostly too compli-cated to solve in a reasonable time.In order to relieve this problem, dynamic symbolic execution was proposed. Dynam-ic symbolic execution uses real values of variables to simplify the constraints. To make dynamic symbolic execution more effective for white-box testing, this paper presents three ways to increase the efficiency of dynamic symbolic execution:adding coverage algorithm into dynamic symbolic execution; optimizing constraint-processing algorithm for pointers and offsets; expanding data-generation algorithm for dynamic test inputs set. This paper describes and discusses the design and implementation of a testing toolkit, CAUT, which is based on dynamic symbolic execution. This paper also describes the three algorithms in detail, and tests the toolkit and shows the efficiency of the three algo-rithms.
Keywords/Search Tags:Symbolic execution, Automated testing, White-box testing
PDF Full Text Request
Related items