删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

基于符号执行与模糊测试的混合测试方法

本站小编 Free考研考试/2022-01-02

摘要:软件测试是保障软件质量的常用方法,如何获得高覆盖率是测试中十分重要且具有挑战性的研究问题.模糊测试与符号执行作为两大主流测试技术已被广泛研究并应用到学术界与工业界中,这两种技术都具有一定的优缺点:模糊测试随机变异生成测试用例并动态执行程序,可以执行并覆盖到较深的分支,但其很难通过变异的方法生成覆盖到复杂条件分支的测试用例.而符号执行依赖约束求解器,可以生成覆盖复杂条件分支的测试用例,但在符号化执行过程中往往会出现状态爆炸问题,因此很难覆盖到较深的分支.有工作已经证明,将符号执行与模糊测试相结合可以获得比单独使用模糊测试或者符号执行更好的效果.分析符号执行与模糊测试的优缺点,提出了一种基于分支覆盖将两种方法结合的混合测试方法——Afleer,结合双方优点从而可以生成具有更高分支覆盖率的测试用例.具体来说,模糊测试(例如AFL)为程序快速生成大量可以覆盖较深分支的测试用例,符号执行(例如KLEE)基于模糊测试的覆盖信息进行搜索,仅为未覆盖到的分支生成测试用例.为了验证Afleer的有效性,选取标准程序集LAVA-M以及实际项目oSIP作为评测对象,以漏洞检测能力以及覆盖能力作为评测指标.实验结果表明:(1)在漏洞检测能力上,Afleer总共可以发现755个漏洞,而AFL仅发现1个;(2)在覆盖能力上,Afleer在标准程序集上以及实际项目中都有不同程度的提升.其中,在oSIP中,Afleer比AFL在分支覆盖率上提高2.4倍,在路径覆盖率上提升6.1倍.除此之外,Afleer在oSIP中还检测出一个新的漏洞.



Abstract:Software testing is a common way to guarantee software quality. How to achieve high coverage is a very important and challenging goal in testing. Fuzz testing and symbolic execution, as two mainstream testing techniques, have been widely studied and applied to academia and industry, both technologies have certain advantages and limitations. Fuzz testing can execute and cover deeper branches by randomly mutating test cases and dynamically executing programs. However, it is difficult to generate test cases that can cover complex conditional branches by random mutation. Symbolic execution can cover complex conditional branches with SMT solvers, but it is difficult to cover deeper branches due to state explosion during symbolic execution. Current works have shown that hybrid testing involving fuzzing and symbolic execution can archive better performance than fuzzing or symbolic execution. By analyzing the advantages and disadvantages in fuzzing and symbolic execution, this study proposes a branch coverage-based hybrid testing approach that combines the two methods with each other to achieve better test cases with high branch coverage. Specifically, fuzz testing (e.g., AFL) quickly generates a large number of test cases that can cover deeper branches, and symbolic execution (e.g., KLEE) performs a search based on the coverage of fuzz testing, and generating test cases for uncovered branches. To evaluate the effectiveness of Afleer, the study selects the standard benchmark LAVA-M and one real project oSIP as the evaluation object, and uses bug detection and coverage as the evaluation measures. The experimental results show that:1) For bug discovery, Afleer found 755 bugs while AFL only found 1; 2) For coverage, Afleer achieved some improvement on benchmarks and real project. In the project oSIP, Afleer increases the branch coverage by 2.4 times and the path coverage by 6.1 times. In addition, Afleer found a new bug in oSIP.



PDF全文下载地址:

http://jos.org.cn/jos/article/pdf/5789
相关话题/测试 程序 软件 技术 工作

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 软件缺陷预测技术研究进展
    摘要:随着软件规模的扩大和复杂度的不断提高,软件的质量问题成为关注的焦点,软件缺陷是软件质量的对立面,威胁着软件质量,如何在软件开发的早期挖掘出缺陷模块成为一个亟需解决的问题.软件缺陷预测通过挖掘软件历史仓库,设计出与缺陷相关的内在度量元,然后借助机器学习等方法来提前发现与锁定缺陷模块,从而合理地分 ...
    本站小编 Free考研考试 2022-01-02
  • 体现使用反馈的APP软件用户评论挖掘
    摘要:随着APP软件应用的普及,针对APP软件的用户评论数量急剧增加,基于用户评论挖掘有价值的软件使用反馈,可以帮助开发人员有针对性地维护和改进APP软件.针对不同类型的APP软件使用反馈,提出了评价对象和评价观点抽取规则,给出了评论模式和评论种子的定义;应用评论种子挖掘与之相同或相似的体现相同使用 ...
    本站小编 Free考研考试 2022-01-02
  • 企业级区块链技术综述
    摘要:在传统跨机构交易的企业应用中,各个机构都是独立记录己方的交易数据,机构间数据的差异会引起争议,通常需要人工对账或中介机构来解决,因而增加了结算时间和交易费用.区块链技术实现了交易数据在写入前共识验证、写入后不可篡改的分布式记账,可信地保证了多机构间的数据一致性,避免了人工对账和中介机构.区块链 ...
    本站小编 Free考研考试 2022-01-02
  • 数据治理技术
    摘要:随着信息技术的普及,人类产生的数据量正在以指数级的速度增长,如此海量的数据就要求利用新的方法来管理.数据治理是将一个机构(企业或政府部门)的数据作为战略资产来管理,需要从数据收集到处理应用的一套管理机制,以期提高数据质量,实现广泛的数据共享,最终实现数据价值最大化.目前,各行各业对大数据的研究 ...
    本站小编 Free考研考试 2022-01-02
  • 软件实时可信度量:一种无干扰行为可信性分析方法
    摘要:可信度量作为可信计算"度量、存储、报告"三大核心功能的基础,到目前为止仍未有有效的数学理论以及运行时(runtime)度量方法.其困难在于3点:一是如何建立涵盖不同主流"可信"定义的通用数学模型;二是如何依托数学模型构建运行时可信度量理论;三是如何将上述模型和理论映射到真实信息系统以形成可实践 ...
    本站小编 Free考研考试 2022-01-02
  • 恶意代码演化与溯源技术研究
    摘要:恶意代码溯源是指通过分析恶意代码生成、传播的规律以及恶意代码之间衍生的关联性,基于目标恶意代码的特性实现对恶意代码源头的追踪.通过溯源可快速定位攻击来源或者攻击者,对攻击者产生一定的震慑打击作用,具有遏制黑客攻击、完善网络安全保障体系的重要作用和价值.近年来,网络安全形势愈加严峻,归类总结了学 ...
    本站小编 Free考研考试 2022-01-02
  • 面向模式软件体系结构合成中的冲突消解方法
    摘要:面向模式的软件体系结构合成主要包括两个核心活动:(1)将软件职责分配到对象类的职责合成活动;(2)减少体系结构模式约束违背的模式合成活动.但如何从以上两个核心活动生成的候选方案中无冲突地组合出最终的软件体系结构设计方案,是面向模式的软件体系结构合成所面临的挑战.以基于搜索的软件工程技术为框架, ...
    本站小编 Free考研考试 2022-01-02
  • 网络隐蔽信道关键技术研究综述
    摘要:网络隐蔽信道是在网络环境下违反通信限制规则进行隐蔽信息传输的信息通道,为网络信息安全带来了新的挑战,也为数据传输的安全性和隐私性带来了新的研究方向.首先介绍了网络隐蔽信道的定义、分类、能力维度等基本概念;进而从码元设计、信息编码和信道优化这3个方面归纳分析了存储型和时间型两类网络隐蔽信道的构建 ...
    本站小编 Free考研考试 2022-01-02
  • 基于SVM的多项式循环程序秩函数生成
    摘要:程序终止性问题是自动程序验证领域中的一个研究热点.秩函数探测是进行终止性分析的主要方法.针对单重无条件分支的多项式循环程序,将其秩函数计算问题归结为二分类问题,从而可利用支持向量机(SVM)算法来计算程序的秩函数.与基于量词消去技术的秩函数计算方法不同,该方法能在可接受的时间范围内探测到更为复 ...
    本站小编 Free考研考试 2022-01-02
  • 软件形式化验证专题前言
    摘要:Abstract:PDF全文下载地址:http://jos.org.cn/jos/article/pdf/5758 ...
    本站小编 Free考研考试 2022-01-02