XJIPC OpenIR  > 多语种信息技术研究室
基于符号执行生成测试数据的过程优化
于亚南
学位类型硕士
导师周喜
2012-05
学位授予单位中国科学院研究生院
学位授予地点北京
学位专业计算机应用技术
关键词软件测试 符号执行 前向遍历 后向遍历 表达式化简
摘要

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

其他摘要

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.

文献类型学位论文
条目标识符http://ir.xjipc.cas.cn/handle/365002/4368
专题多语种信息技术研究室
作者单位中国科学院新疆理化技术研究所
推荐引用方式
GB/T 7714
于亚南. 基于符号执行生成测试数据的过程优化[D]. 北京. 中国科学院研究生院,2012.
条目包含的文件
文件名称/大小 文献类型 版本类型 开放类型 使用许可
基于符号执行生成测试数据的过程优化.pd(893KB)学位论文 开放获取CC BY-NC-SA浏览 请求全文
个性服务
推荐该条目
保存到收藏夹
查看访问统计
导出为Endnote文件
谷歌学术
谷歌学术中相似的文章
[于亚南]的文章
百度学术
百度学术中相似的文章
[于亚南]的文章
必应学术
必应学术中相似的文章
[于亚南]的文章
相关权益政策
暂无数据
收藏/分享
文件名: 基于符号执行生成测试数据的过程优化.pdf
格式: Adobe PDF
所有评论 (0)
暂无评论
 

除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。