首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 125 毫秒
1.
基于传统模糊测试框架的S7协议模糊测试技术存在构造困难和代码覆盖率低的问题,对测试效率和质量产生很大影响。借助神经网络模型对数据较强的学习能力和预测能力,提出一种基于长短期记忆(LSTM)神经网络的S7协议模糊测试用例生成方法。将S7协议中的特征值字段分为可变字段和不可变字段,对可变字段进行模糊处理,对不可变字段做固定值操作,进而利用局部模糊实现对S7协议帧各字段的模糊分析,生成有效的测试用例。经过学习,模型可以提取到西门子S7协议的特征,自动产生满足协议结构的测试用例。实验对不同字段进行局部模糊,结果表明,该方法预测出的数据具备真实测试用例的特征,可生成大量对特征字段关联性较大的有效测试用例,提高代码覆盖率。  相似文献   

2.
软件待测版本相对上一个版本的代码变更,会对已有特性带来潜在的质量风险,这一风险水平直接与回归测试用例的优先级相关联.回归测试设计过程中的一个重要问题是如何衡量代码变更对回归测试用例优先级的影响.本文在回归测试用例优先级评估模型的基础上,从测试覆盖的角度建立起回归测试用例与代码变更的直接关联,从代码整体耦合性的角度建立起回归测试用例与代码变更的间接关联,分析了代码变更对回归测试的显性影响和隐性影响,进而结合回归测试用例优先级的评估要求提出了一个新的度量模型.实验结果显示,使用该模型度量代码变更对回归测试用例优先级的影响水平,可以得到比较全面和客观的定量结果,从而为回归测试用例优先级的评估提供有效的支持.  相似文献   

3.
主流区块链平台以太坊上频繁发现由不安全编程引起的智能合约安全漏洞。为了提高模糊测试对合约代码的覆盖率,以更全面地检测安全漏洞,提出了一种智能合约模糊测试方法。首先构造智能合约交易序列数据集,再基于深度学习构建智能合约交易生成模型以生成模糊测试初始种子;然后根据覆盖率和分支距离信息,对智能合约进行信息反馈引导的模糊测试,提出了特定的测试用例染色体编码方式,并设计实现了相应的交叉和变异算子。所提方法能有效覆盖智能合约的深层次状态以及严格条件守卫的分支代码。在500个智能合约上进行实验,结果表明,所提方法的代码覆盖率为93.73%,漏洞检测率为93.93%,与ILF,sFuzz, Echidna方法相比,所提方法的代码覆盖率提高了3.80%~25.49%,漏洞检测率提高了4.64%~24.02%。所提方法有助于提升以太坊智能合约安全测试的有效性,具有参考价值。  相似文献   

4.
为在测试用例自动化生成中有效利用现有用例信息,降低测试用例生成成本,提高生成效率,提出一种基于代码相似性的测试用例重用及生成方法。设计基于文本和度量的被测代码相似性检测方法,分别从语法和语义上检测并划分相似类型;针对不同相似类型,采用更名重用和补充重用生成测试用例。将代码相似性应用于测试用例生成,综合考虑代码的语法、语义等多维相似信息,提升代码相似性检测的准确性,能更有效运用重用技术提升测试用例生成效率。实验结果表明,所提方法具有更高的重用召回率和重用精度,在相同时间成本下生成的测试用例覆盖率更高。  相似文献   

5.
李斌  陈榕 《福建电脑》2008,24(6):1-3
本文提出了在和欣项目中一种分析代码覆盖率的简单而经济的方法。和欣项目有多种测试手段用以保证软件质量,如单元测试已经积累了大量测试用例。但是如果不应用应用代码覆盖率分析,很难发现未测试到的被测对象和重复的测试用例。我们应用了基本块度量方法,并且移植和应用了GCOV和LCOV工具到和欣开发环境,建立了一种代码覆盖率分析方法。另外本文还演示了对一个简单单元测试的分析。基于这种覆盖率分析方法,可以开展进一步的流程改进工作,比如:灵巧的回归测试以及测试驱动开发等。  相似文献   

6.
为解决依赖结构优先级在测试用例权值相等时存在的问题,针对流行的深度优先搜索算法进行改进。通过结合测试用例之间的功能依赖和测试用例的代码覆盖率,推导出有向无环图和算法流程图;利用推导出的有向无环图和流程图,使用权值和代码覆盖率算出最长路径作为测试集,以达到缩减测试集,同时保证代码覆盖率的目的。结合实例,将依赖结构优先级和现存的技术进行对比,验证了依赖结构优先级技术在提高错误检测率方面的可行性和实用性。  相似文献   

7.
编译器模糊测试,是测试编译器功能性与安全性的常用技术之一.模糊测试器通过产生语法正确的测试用例,对编译器的深层代码展开测试.近来,基于循环神经网络的深度学习模型被引入编译器模糊测试用例生成过程.针对现有方法生成测试用例的语法正确率不足、生成效率低的问题,提出一种基于前馈神经网络的编译器模糊测试用例生成方法,并设计实现了原型工具FAIR.与现有的基于token序列学习的方法不同,FAIR从抽象语法树中提取代码片段,利用基于自注意力的前馈神经网络捕获代码片段之间的语法关联,通过学习程序设计语言的生成式模型,自动生成多样化的测试用例.实验结果表明,FAIR生成测试用例的解析通过率以及生成效率均优于同类型先进方法.该方法显著提升了检测编译器软件缺陷的能力,已成功检测出GCC和LLVM的20处软件缺陷.此外,该方法具有良好的可移植性,简单移植后的FAIR-JS已在JavaScript引擎中检测到两处软件缺陷.  相似文献   

8.
覆盖测试是检验嵌入式软件功能结构正确性以及查找问题的重要方法和手段。纯粹的人工测试工作量大、操作不方便、周期长,需要借助一定的工具才能取得较好的效果。使用测试工具LDRA Testbed进行了覆盖率测试,达到了一定的语句、分支以及LCSAJ覆盖率。测试过程说明了该工具能够有效获取被测软件的动态覆盖率信息,评价测试用例的完整性,并有针对性地补充测试用例,进而提高软件测试的覆盖率,帮助决定何时终止软件测试。  相似文献   

9.
覆盖率统计是软件白盒测试的重要手段。BWDSP处理器为其软件用户实现了一个代码覆盖率统计工具。该工具可以统计语句覆盖率、分支覆盖率,还可以用累加方式统计覆盖率。该工具通过调试信息得到被测软件的代码行号信息。它使被测软件在BWDSP模拟器上运行,并同时搜集被测软件的覆盖信息,最后把覆盖信息与行号信息结合得到覆盖率。该覆盖率统计工具已经被BWDSP操作系统等大型软件在测试时使用,对这些软件的测试工作起到了重要作用。  相似文献   

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

11.
为解决软件生产过程中存在的测试时间过长而导致成本急剧增长的问题,针对基于动静结合的Fuzzing方法中存在的缺陷,提出了基于控制依赖路径覆盖的Fuzzing模型。在该模型中,动态测试目标为静态分析提取的脆弱性语句。设计了一种基于两层相似度的适应度函数来指导遗传算法搜索覆盖控制依赖路径的测试用例,并在该测试用例基础上生成Fuzzing测试用例来验证脆弱性语句中的脆弱性,排除误报的脆弱性语句。该模型将有限的测试资源放在最可能出现漏洞的代码上,从而达到在增强Fuzzing方向性并保持高度自动化的同时提高测试效率的目的。  相似文献   

12.
Fuzzing测试是一种基于缺陷注入的自动软件测试技术.近几年来,广泛应用于软件测试、安全漏洞挖掘等领域.Peach 是基于Fuzzing技术实现的跨平台测试框架,具有灵活性、可重用等特点,是Fuzzing测试的代表工具之一.Fuzzing测试要求对测试用例进行优化来提高测试效率,对Peach的样本优化工具minset...  相似文献   

13.
方浩然  郭帆  李航宇 《软件学报》2022,33(6):1978-1995
覆盖反馈的灰盒Fuzzing已经成为漏洞挖掘最有效的方式之一.广泛使用的边覆盖是一种控制流信息,然而在面向污点风格(taint-style)的漏洞挖掘时,这种反馈信息过于粗糙.大量污点无关的种子被加入队列,污点相关的种子数量又过早收敛,导致Fuzzing失去进化方向,无法高效测试Source和Sink之间的信息流.首先,详细分析了现有反馈机制在检测污点风格漏洞时不够高效的原因;其次,提出了专门用于污点风格漏洞挖掘的模糊器TaintPoint.TaintPoint在控制流轨迹的基础上加入了活跃污点这一数据流信息,形成活跃轨迹(livetrace)作为覆盖反馈,并围绕活跃轨迹分别在插桩、种子过滤、选择和变异阶段改进现有方法.在UAFBench上的实验结果表明:TaintPoint检测污点风格漏洞的效率、产出和速度优于业界领先的通用模糊器AFL++及定向模糊器AFLGO;此外,在两个开源项目上发现了4个漏洞并被确认.  相似文献   

14.
设计并实现一种基于符号化执行的Fuzzing测试方法。通过代码插装,在程序执行过程中收集路径约束条件,依据一定的路径遍历算法生成新路径约束条件并进行求解,构造可以引导程序向新路径执行的输入测试数据。提出一种改进的污点分析机制,对路径约束条件进行简化,提高了代码覆盖率和漏洞检测的效率。  相似文献   

15.
针对白盒模糊测试漏洞触发能力较弱的问题,提出一种基于污点分析的白盒模糊测试(WFBTA)方案,依据不同的漏洞特征,识别危险操作,获得漏洞相关的约束条件,与路径约束条件优化结合后通过约束求解器求解,产生覆盖率较高且漏洞触发能力良好的测试用例。实验结果表明,与原有的白盒模糊测试方法相比,WFBTA方案具有更强的漏洞发现能力、更低的漏报率与误报率,而平均时间开销仅增加了1.31%。  相似文献   

16.
Violating assumptions with fuzzing   总被引:4,自引:0,他引:4  
Fuzzing is a highly automated testing technique that covers numerous boundary cases using invalid data (from files, network protocols, API calls, and other targets) as application input to better ensure the absence of exploitable vulnerabilities. Fuzzing lets developers or quality assurance (QA) teams test large numbers of boundary cases when doing so with techniques such as functional testing would be cost prohibitive. Comprehensive negative test cases - those that verify that a product does not do something it shouldn't do, rather than that it does something it is supposed to (positive test cases) - are difficult to construct because the number of possible permutations is astronomical. Yet, fuzzing covers a significant portion of negative test cases without forcing the tester to deal with each specific test case for a given boundary condition.  相似文献   

17.
模糊测试(fuzzing)具备自动化程度高、可重现性好及易扩展等特点,是软件漏洞挖掘的有效方法之一。针对其固有的测试盲目性和低效性,一批先进的灰盒模糊测试方法被提出并应用在AFL、AFLFast、Vuzzer等工具中。随着高性能芯片和云计算技术的发展,模糊测试可以充分利用其中蕴含的丰富并行计算能力、通过多实例并行的手段进一步提高单位时间内的综合测试效率,典型的代表如Xu等人提出的多核并行方法、谷歌的ClusterFuzz等。但现有并行模糊测试方法,由于不同测试实例在测试用例生成过程中缺少有效的控制,导致生成的畸形样本冗余高、测试综合覆盖率低等问题。针对该问题,本文提出了一种有效控制多测试实例间模糊测试过程的方案,该方案以变异策略为基本粒度进行并行化,定期同步不同测试实例间的有效畸形样本和优化变异策略应用比例,减少不同测试实例间的测试冗余,提高测试综合覆盖率。本文实现了一个变异策略感知的并行模糊测试框架,并选择AFL作为基本模糊测试器,使用5款开源软件及LAVA-M测试集的实验结果表明,相同测试时间内本文的方法比AFL默认调度方法提高目标覆盖率达132%、发现异常数量最多提高50余倍。  相似文献   

18.
分析军用报文格式及其软件特点,给出一种智能强制性Fuzzing测试的畸形数据构造方法。根据Fuzzing技术的原理,设计军用报文软件漏洞发掘系统MTSFuzzer,并对其构架、模块以及关键技术进行描述。测试结果表明,MTSFuzzer能提高军用报文软件漏洞的发掘效率,并且具有较好的可扩展性。  相似文献   

19.
软件测试是保证软件质量的有效方法,但测试工作过程繁琐,工作量较多。探索高效、可靠的测试用例设计方法一直是大家追求的目标,随着航空航天产品逻辑复杂性的提高及软件规模的日益增大,这种要求也变得更加迫切。依据MC/DC设计的测试用例既提高了测试用例设计的效率又增加了测试覆盖率,比较适合测试逻辑关系相对复杂的软件。当前的很多软件测试工具提供了软件测试覆盖率的判定功能,可以评定设计出的测试用例是否满足MC/DC的要求,而软件测试人员需要的是逆向的过程,论文提出应用唯一原因法和屏蔽法原理设计测试用例,可达到根据逻辑关系自动生成满足MC/DC要求测试用例的目的,提高了测试用例设计的效率。  相似文献   

20.
软件测试是软件工程的一个重要组成部分,其目标是能够及时发现软件中的错误,确保软件高质量。测试用例是软件测试的基础,覆盖度较高且精简的测试用例集可以提高测试效率和降低成本。软件测试覆盖标准较多,一个好的测试用例评价指标也存在多种,为了能够在约简测试用例集规模的同时获取较高的测试能力,本文提出了一种基于多优化目标的测试用例集约简算法,该算法旨在根据测试用例需求,构建多优化目标的测试用例模型,使用该模型获取一个最优解的测试用例子集,使用最小化用例集方法最小化测试用例,迭代执行直到测试用例集覆盖所有的测试需求,实验结果表明该算法可以约简测试用例集,获取较高的综合测试效果。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号