XJIPC OpenIR  > 多语种信息技术研究室
Thesis Advisor周喜
Degree Grantor中国科学院研究生院
Place of Conferral北京
Degree Discipline计算机应用技术
Keyword软件测试 符号执行 前向遍历 后向遍历 表达式化简

软件测试是保证软件产品质量的重要手段。其中,如何生成最少的测试输入数据而能对程序进行最全面的测试,成为了人们研究的一个重要课题。测试方法主要分为动态测试和静态测试。 符号执行是一种静态测试方法,它利用符号值代替具体数值对程序的行为进行模拟,实现对程序的分析测试。传统符号执行中对程序方法的指令处理顺序采用了单一的前向遍历,这样会记录很多的冗余信息,它们对程序的执行路径没有影响;另外,符号执行产生的表达式,会由于不断的符号替换等操作,增加表达式的规模,最终会降低输入数据的求解速度。 本文首先介绍了软件测试的研究背景及现状,包括测试数据自动生成的现有方法。针对符号执行中存在的问题,构建了一个生成测试数据的框架。作为符号执行的前提,该框架首先从字节码文件中提取程序的指令信息,并以此获得程序的控制结构和执行路径;然后对传统的符号执行过程进行了改进,包括对指令的建模,通过结合现有两种访问程序指令的方式,避免对部分冗余信息的记录,提高了获取路径条件表达式的速度。另外,利用现有的计算机代数系统,对路径条件表达式进行了更加彻底的化简,这有助于约束系统更快的求解出测试数据,进而提高整个测试数据生成过程的效率。 文章最后,对新方法进行了代码实现,并选取几个程序进行了简单实验,结果表明了新方法的有效性。

Other Abstract

Software Testing is an important method for assuring the quality of software. With the continuous expansion of software scale, how to get a least set of test data but a most fully test becomes a significant research topic. And there are two main methods for test, namely dynamic test and static test. Symbolic Execution uses symbolic value instead of concrete value as inputs, virtually simulating programs to analyze and test programs. During the traditional symbolic execution, it applies a single forward traversal to process instructions in a program, and this will record some redundant information, which has no influence on execution path but lower speed. Additionally, expressions from symbolic execution will become more complicated because of continuous symbolic substitution, which will reduce the efficiency of solving test data. This thesis firstly introduces research background and situation about software testing, including automated generation of test data. And on account of problems in symbolic execution I work out a framework on generating test data. This framework can draw instruction information in programs. Then we can obtain control structure and execution paths as the basis of symbolic execution. The part of symbolic execution in this framework makes improvement on the process of traditional symbolic execution, and combines advantages of two traversal fashions. It can avoid the record for redundant information, and increase the speed of processing programs. Current computer algebra system can simplify path conditions more exhaustively. That will help constraint system to get test data more fast and finally improve the efficiency of the whole process for test data generation. At last, we make the implements of new methods, and do some experiments on a few simple programs. The results demonstrate the effectiveness of new method.

Document Type学位论文
Recommended Citation
GB/T 7714
于亚南. 基于符号执行生成测试数据的过程优化[D]. 北京. 中国科学院研究生院,2012.
Files in This Item:
File Name/Size DocType Version Access License
基于符号执行生成测试数据的过程优化.pd(893KB)学位论文 开放获取CC BY-NC-SAView Application Full Text
Related Services
Recommend this item
Usage statistics
Export to Endnote
Google Scholar
Similar articles in Google Scholar
[于亚南]'s Articles
Baidu academic
Similar articles in Baidu academic
[于亚南]'s Articles
Bing Scholar
Similar articles in Bing Scholar
[于亚南]'s Articles
Terms of Use
No data!
Social Bookmark/Share
File name: 基于符号执行生成测试数据的过程优化.pdf
Format: Adobe PDF
All comments (0)
No comment.

Items in the repository are protected by copyright, with all rights reserved, unless otherwise indicated.