CN111338952B - 一种路径覆盖率反馈的模糊测试方法及装置 - Google Patents
一种路径覆盖率反馈的模糊测试方法及装置 Download PDFInfo
- Publication number
- CN111338952B CN111338952B CN202010117686.8A CN202010117686A CN111338952B CN 111338952 B CN111338952 B CN 111338952B CN 202010117686 A CN202010117686 A CN 202010117686A CN 111338952 B CN111338952 B CN 111338952B
- Authority
- CN
- China
- Prior art keywords
- basic block
- location
- current
- prev
- cur
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010998 test method Methods 0.000 title claims abstract description 17
- 238000012360 testing method Methods 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种路径覆盖率反馈的模糊测试方法及装置,测试方法包括以下步骤:计算当前基本块的位置cur_location;当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,计算得到一个索引值,代表从上一个基本块指向当前基本块的边的位置,将边的访问次数加一;将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,然后左移STEP位,存储为上一个基本块的位置prev_location。本发明同时还提供了一种路径覆盖率反馈的模糊测试装置、终端设备以及计算机可读存储介质。本发明在不增加开销的基础上,能够区分连续K条边相连的路径。
Description
技术领域
本发明属于软件工程领域,具体涉及一种路径覆盖率反馈的模糊测试方法及装置。
背景技术
AFL是一种基于边覆盖率反馈的模糊测试工具,在业界具有非常重要的影响力。基本块到基本块的连接称为边,AFL在测试目标程序时,会收集程序执行过程中的边信息,即每一条分支跳转信息。测试用例称为种子,通过边信息选择种子,即能够触发新边的种子,利用边反馈信息,AFL可以方便的区分有效测试用例,剔除无用测试用例,从而极大的提升模糊测试的效率。为了收集边覆盖率信息,AFL采用静态插桩的方法在程序的每个基本块中插入代码,包括以下步骤:(1)计算当前基本块的位置(即分配一个随机数)为cur_location;(2)当前基本块的位置cur_location与上一个基本块的位置prev_location做异或操作,计算得到一个索引值,代表从上一个基本块指向当前基本块的边的位置,将边的访问次数加一。(3)将当前基本块的位置cur_location右移一位,存储为上一个基本块的位置prev_location。
该代码会为每个基本块分配一个随机数,作为该基本块的唯一标示。cur_location表示当前所在的基本块,prev_location表示程序执行的上一个基本块。通过将两个基本块的标示做异或操作,形成一个边的索引,该索引同时包含了两个基本块索引的信息。通过这种简单的方法,AFL能够方便的区分不同的边,从而更新边所对应的信息。然而在实际中,路径覆盖率往往比边覆盖率更加有效。路径是指连续的多个边,边覆盖率相同,并不代表路径覆盖率相同,例如A->B->C->A和B->C->A->B是两条不同的路径,但是他们的边覆盖率完全相同。一般来讲,路径覆盖更加精确,对测试用例的区分度更高,然而也更加难实现。
发明内容
本发明针对上述现有技术中模糊测试工具路径覆盖不够精确的问题,提供一种路径覆盖率反馈的模糊测试方法及装置,在不增加开销的基础上,能够区分连续K条边相连的路径。
为了实现上述目的,本发明有如下的技术方案:
一种路径覆盖率反馈的模糊测试方法,其特征在于,包括以下步骤:
计算当前基本块的位置cur_location;
当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,计算得到一个索引值,代表从上一个基本块指向当前基本块的边的位置,将边的访问次数加一;
将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,然后左移STEP位,存储为上一个基本块的位置prev_location。
作为一种优选的实施例,本发明路径覆盖率反馈的模糊测试方法,在计算当前基本块的位置时分配一个随机数为当前基本块的位置cur_location。
作为一种优选的实施例,本发明路径覆盖率反馈的模糊测试方法,所述的STEP等于随机数的位数除以K。
本发明还提出一种路径覆盖率反馈的模糊测试装置,包括:
基本块的位置计算模块;
索引值计算模块,将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,确定从上一个基本块指向当前基本块的边的位置,将边的访问次数加一;
基本块的位置移动模块,将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,然后左移STEP位,存储为上一个基本块的位置prev_location。
本发明还提出一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器在执行所述计算机程序时实现本发明上述路径覆盖率反馈的模糊测试方法的步骤。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现本发明上述路径覆盖率反馈的模糊测试方法的步骤。
相较于现有技术,本发明至少具有如下的有益效果:基本块的位置既包含了当前基本块的信息也包含了上一个基本块的信息,然后将该信息左移STEP位,左移是为了保证信息的遗忘,也就是说,越早的基本块,使其信息保留的越少。本发明通过当前基本块之前的基本块信息共同计算出当前路径的信息,再之前的基本块信息被全部遗忘。本发明在没有增加任何开销的基础上,实现将原来的边覆盖率反馈改进为路径覆盖率反馈。
进一步的,本发明能够区分长度为K的两条不同路径。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提还可以进行若干简单的修改和润饰,所获得的所有其他实施例,都属于本发明保护的范围。在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施方案中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本发明所描述的实施例还可以与其它的实施例相结合。
本发明提供了一种路径覆盖率反馈的模糊测试方法,包括以下步骤:
计算当前基本块的位置cur_location,即分配一个随机数为当前基本块的位置cur_location。
当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,计算得到一个索引值,代表从上一个基本块指向当前基本块的边的位置,将边的访问次数加一;
将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,然后左移STEP位,STEP等于随机数的位数除以K,存储为上一个基本块的位置prev_location。
在本发明中,prev_location的计算包含了当前基本块的信息以及上一个基本块的信息,然后再将该信息左移STEP位。左移是为了保证信息的遗忘,也就是说,越早的基本块,其信息保留的越少。当前基本块之前的K-1个基本块信息共同计算出当前路径的信息,再之前的基本块信息被全部遗忘。也就是说,用这种方法,能够区分长度为K的两条不同路径。
本发明在没有增加任何开销的基础上,将原来的边覆盖率反馈改进为K长度路径覆盖率反馈。同时,本发明的算法能够在现有算法的基础上进行改进,操作简便。
本发明同时提供了一种路径覆盖率反馈的模糊测试装置,包括:
基本块的位置计算模块;
索引值计算模块,将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,确定从上一个基本块指向当前基本块的边的位置,将边的访问次数加一;
基本块的位置移动模块,将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,然后左移STEP位,存储为上一个基本块的位置prev_location。
本发明还提供了一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器在执行计算机程序时实现本发明上述模糊测试方法的步骤。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现所述路径覆盖率反馈的模糊测试方法的步骤。
以上所述仅仅是本发明的较佳实施例,并不用以对本发明的技术方案进行任何限制,本领域技术人员应当理解的是,在不脱离本发明精神和原则的前提下,该技术方案还可以进行若干简单的修改和替换,这些简单的修改和替换也均属于本发明权利要求的保护范围之内。
Claims (4)
1.一种路径覆盖率反馈的模糊测试方法,其特征在于,包括以下步骤:
计算当前基本块的位置cur_location;
当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,计算得到一个索引值,代表从上一个基本块指向当前基本块的边的位置,将边的访问次数加一;
将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,然后左移STEP位,存储为上一个基本块的位置prev_location;
计算当前基本块的位置时分配一个随机数为当前基本块的位置cur_location;
所述的STEP等于随机数的位数除以K;
通过当前基本块之前的基本块信息共同计算出当前路径的信息,之前的基本块信息被全部遗忘;在没有增加任何开销的基础上,实现将原来的边覆盖率反馈改进为路径覆盖率反馈。
2.一种路径覆盖率反馈的模糊测试装置,其特征在于,包括:
基本块的位置计算模块;
索引值计算模块,将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,确定从上一个基本块指向当前基本块的边的位置,将边的访问次数加一;
基本块的位置移动模块,将当前基本块的位置cur_location与上一个基本块的位置prev_location进行异或操作,然后左移STEP位,存储为上一个基本块的位置prev_location;
计算当前基本块的位置时分配一个随机数为当前基本块的位置cur_location;
所述的STEP等于随机数的位数除以K;
通过当前基本块之前的基本块信息共同计算出当前路径的信息,之前的基本块信息被全部遗忘;在没有增加任何开销的基础上,实现将原来的边覆盖率反馈改进为路径覆盖率反馈。
3.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述的处理器在执行所述计算机程序时实现如权利要求1所述路径覆盖率反馈的模糊测试方法的步骤。
4.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述的计算机程序被处理器执行时实现如权利要求1所述路径覆盖率反馈的模糊测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117686.8A CN111338952B (zh) | 2020-02-25 | 2020-02-25 | 一种路径覆盖率反馈的模糊测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117686.8A CN111338952B (zh) | 2020-02-25 | 2020-02-25 | 一种路径覆盖率反馈的模糊测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338952A CN111338952A (zh) | 2020-06-26 |
CN111338952B true CN111338952B (zh) | 2024-03-29 |
Family
ID=71183747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010117686.8A Active CN111338952B (zh) | 2020-02-25 | 2020-02-25 | 一种路径覆盖率反馈的模糊测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338952B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0545581A2 (en) * | 1991-12-06 | 1993-06-09 | National Semiconductor Corporation | Integrated data processing system including CPU core and parallel, independently operating DSP module |
CN108427643A (zh) * | 2018-03-21 | 2018-08-21 | 北京理工大学 | 基于多种群遗传算法的二进制程序模糊测试方法 |
CN109032942A (zh) * | 2018-07-24 | 2018-12-18 | 北京理工大学 | 一种基于afl的模糊测试框架 |
CN109726126A (zh) * | 2018-12-28 | 2019-05-07 | 中国人民解放军国防科技大学 | 一种分布式并行fuzz方法及系统 |
CN109739755A (zh) * | 2018-12-27 | 2019-05-10 | 北京理工大学 | 一种基于程序追踪和混合执行的模糊测试系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2513333A (en) * | 2013-04-23 | 2014-10-29 | Ibm | Method and apparatus for testing a storage system |
US10452526B2 (en) * | 2017-06-15 | 2019-10-22 | Microsoft Technology Licensing, Llc | Machine learning for constrained mutation-based fuzz testing |
US10635576B2 (en) * | 2018-06-18 | 2020-04-28 | Fujitsu Limited | Branch coverage guided symbolic execution for hybrid fuzz testing of software binaries |
-
2020
- 2020-02-25 CN CN202010117686.8A patent/CN111338952B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0545581A2 (en) * | 1991-12-06 | 1993-06-09 | National Semiconductor Corporation | Integrated data processing system including CPU core and parallel, independently operating DSP module |
CN108427643A (zh) * | 2018-03-21 | 2018-08-21 | 北京理工大学 | 基于多种群遗传算法的二进制程序模糊测试方法 |
CN109032942A (zh) * | 2018-07-24 | 2018-12-18 | 北京理工大学 | 一种基于afl的模糊测试框架 |
CN109739755A (zh) * | 2018-12-27 | 2019-05-10 | 北京理工大学 | 一种基于程序追踪和混合执行的模糊测试系统 |
CN109726126A (zh) * | 2018-12-28 | 2019-05-07 | 中国人民解放军国防科技大学 | 一种分布式并行fuzz方法及系统 |
Non-Patent Citations (1)
Title |
---|
Fu Y, Shi DH, Zhang Y, Cheng L..mproved Fuzz Testing Approach Based on Coverage Frequency.Computer Systems and Applications.2019,第28卷17-24. * |
Also Published As
Publication number | Publication date |
---|---|
CN111338952A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230152809A1 (en) | Method for Determining Termination of Obstacle-crossing, and Method for Controlling Obstacle-crossing, Chip, and Robot | |
PT2095551E (pt) | Códigos de expansão caóticos e sua criação | |
CN106598822B (zh) | 一种用于容量评估的异常数据检测方法及装置 | |
CN111338952B (zh) | 一种路径覆盖率反馈的模糊测试方法及装置 | |
Wilt et al. | Speedy versus greedy search | |
CN110166238A (zh) | 量子密钥的生成方法及装置 | |
KR101210339B1 (ko) | 트리 구조에서의 노드 식별자 생성 방법 | |
CN108920105A (zh) | 基于社区结构的图数据分布式存储方法及装置 | |
CN105224305B (zh) | 函数调用路径编解码方法、装置及系统 | |
KR20080033742A (ko) | 광대역 무선통신 시스템에서 하향링크 성능향상을 위한세그먼트 할당 장치 및 방법 | |
CN116820929A (zh) | 一种门节点优化的软件定向模糊测试方法及系统 | |
CN115862416B (zh) | 一种路径规划方法、装置、电子设备及存储介质 | |
Kagan et al. | Probabilistic double-distance algorithm of search after static or moving target by autonomous mobile agent | |
CN109754141A (zh) | 一种电能替代新技术评估方法及系统 | |
CN113593397B (zh) | 一种历史轨迹数据加载方法、装置及系统 | |
CN113162814B (zh) | 一种网络质量基准库的生成方法、系统及中央服务器 | |
CN113434326A (zh) | 基于分布式集群拓扑实现网络系统故障定位的方法及装置、处理器及其计算机可读存储介质 | |
CN113204348A (zh) | 一种基于Contraction Hierarchies的国内路网数据编译方法 | |
Aumann et al. | The number of moves of the largest disc in shortest paths on Hanoi graphs | |
CN115622057B (zh) | 供电调度系统供电拓扑分析方法、装置及电子设备 | |
CN113701768A (zh) | 一种路径确定方法、装置及电子设备 | |
CN110086867A (zh) | 一种还车网点推送方法 | |
CN108182313A (zh) | 电缆路径截面的设置方法 | |
CN116033355A (zh) | 用户常驻区域的识别方法和系统 | |
CN117057577A (zh) | 一种园区应急方案分配方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |