CN107656863A - 一种基于关键点引导的数据流测试方法及其测试系统 - Google Patents
一种基于关键点引导的数据流测试方法及其测试系统 Download PDFInfo
- Publication number
- CN107656863A CN107656863A CN201610956731.2A CN201610956731A CN107656863A CN 107656863 A CN107656863 A CN 107656863A CN 201610956731 A CN201610956731 A CN 201610956731A CN 107656863 A CN107656863 A CN 107656863A
- Authority
- CN
- China
- Prior art keywords
- definition
- key point
- path
- analysis
- use pair
- 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.)
- Pending
Links
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/3676—Test management for coverage analysis
-
- 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
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
本发明公开了一种基于关键点引导的数据流测试方法,包括:通过标准的数据流分析方法获得待测程序中的定义‑使用对;根据控制流分析方法分析所述定义‑使用对中的关键点;将所述定义‑使用对和所述关键点输入符号执行器;所述符号执行器使用基于关键点的路径搜索器引导符号执行;如果符号执行路径覆盖所述定义‑使用对,返回所述符号执行路径对应的测试用例,否则继续执行步骤四,直至对于所有定义‑使用对都产生了对应的测试用例,或者所有的符号执行路径均执行结束,则结束所述符号执行器的执行;根据符号执行的结果,统计覆盖率。本发明还公开了一种基于关键点引导的数据流测试系统。
Description
技术领域
本发明涉及计算机软件测试领域,具体涉及一种基于关键点引导的数据流测试方法及其测试系统。
背景技术
随着互联网的发展,计算机在各行各业中的应用逐步深入。计算机软件不但在大型的商业系统中发挥着不可替代的作用,还在各种工业系统里扮演着重要的的角色。随着计算机软件系统的规模不断增长,大型电商、核电、航空航天、轨道控制等领域对软件系统的可靠性提出了更高的要求。剑桥大学在2013年的一份调研中指出,全球一年在解决软件错误上的花费高达3120亿美元,平均每个程序员会花50%的时间去找到并且解决软件错误。由此可见,避免产生软件错误、提高软件可靠性可以减少因为软件错误所导致的巨额经济损失,而软件测试技术是保证软件可靠性的重要手段之一。
软件测试是一个分析程序,发现程序中所存在的问题,并验证程序特性的过程。如今,计算机软件越来越需要保证正确性与可靠性,而保证软件可靠性的手段也从之前的静态技术(如:模型检查、静态分析技术),过渡到动态技术(如:软件测试)。这些保证软件可靠性的手段有不同的缺点,比如,模型检查技术虽然自动化程度高,而且全面,但是却难以处理代码量庞大的项目;静态分析技术,在某些大型项目中,很容易造成大量的错误误报;普通的测试又容易遗漏一些严重的错误。而符号执行技术在保证了测试强度的同时,也克服了一些缺点。
数据流测试是一直以来一种经典的测试方法,但也不乏许多优秀的工具以及优秀的研究,比如可以生成数据流测试集的ATAC,应用于web应用的数据流测试工具WATM。同时也有很多针对数据流测试的研究,比如有使用数据流测试对面向切面程序的研究,或者使用数据流测试去测试面向对象的库等等。原本数据流测试是用来测试面向过程的语言,但是近年来,数据流测试在面向对象的语言中通过检查对象的状态是否存在错误,也取得了很好的效果,被很多研究者所关注。
为了解决目前数据流测试存在覆盖率低、测试耗时长等问题,本发明提高了一种基于关键点引导的数据流测试方法及其系统,在数据流测试覆盖率、缩短数据流测试耗时,该方法能够自动的生成测试用例,节省人工成本。
发明内容
本发明提出了一种基于关键点引导的数据流测试方法,包括:
步骤一:通过标准的数据流分析方法获得待测程序中的定义-使用对,所述定义-使用对是指存在一条控制流路径总从变量的定义控制流节点到相同变量的使用控制流节点,并且所述定义控制流节点与所述使用控制流节点之间不存在关于所述变量的重定义;
步骤二:根据控制流分析方法分析所述定义-使用对中的关键点;所述关键点是覆盖所述定义-使用对时必须经过的控制流路径的节点;
步骤三:将所述定义-使用对和所述关键点输入符号执行器;
步骤四:所述符号执行器使用基于关键点的路径搜索器引导符号执行;
步骤五:如果符号执行路径覆盖所述定义-使用对,那么就返回所述符号执行路径对应的测试用例,否则继续执行步骤四,直至对于所有定义-使用对都产生了对应的测试用例,或者所有的符号执行路径均执行结束,则结束所述符号执行器的执行;
步骤六:根据符号执行的结果,统计覆盖率。
本发明提出的所述基于关键点引导的数据流测试方法中,所述定义-使用对以如下方式获得:
步骤A1:获取所述待测程序中每一个变量的定义;
步骤A2:获取每一个变量的使用所对应的定义,构建初级的定义-使用对;所述初级的定义-使用对为有序对,其表示一语句包含一个变量并且通过路径到达使用所述变量的另一语句;如定义-使用对记为(d,u),一个(d,u)是一个有序对,表示语句d包含对变量x的定义,它可以通过某路径到达包含对变量x的使用的语句u;
步骤A3:构建控制流路径,在控制流路径上从所述初级的定义-使用对中排除包含重定义的定义-使用对;
步骤A4:获得所述待测程序中的定义-使用对。
本发明提出的所述基于关键点引导的数据流测试方法中,步骤二中所述控制流分析方法分析关键点包含以下步骤:
步骤B1:构建程序的控制流图;
步骤B2:读取所述定义-使用对的信息;
步骤B3:对于每一个定义-使用对,在控制流图上找到到达所述变量的定义节点与该变量的使用的必经节点,存入关键点列表;
步骤B4:对于所述关键点列表中的每一个关键点,重复步骤B3,直到找到的必经点为程序入口;
步骤B5:输出与定义-使用对相对应的关键点列表。
本发明提出的所述基于关键点引导的数据流测试方法中,步骤四中基于关键点的路径搜索器引导符号执行包括如下步骤:
步骤C1:如果在待选路径列表中的一条路径将会经过关键点,则选择即将经过关键点的所述路径;
步骤C2:如果在待选路径列表中所有路径均不即将经过关键点,则在控制流图上选择距离关键点最近的路径执行;
步骤C3:如果待选路径列表为空,则结束执行。
本发明还提出了一种基于关键点引导的数据流测试系统,包含:
覆盖率检测模块,其用于提取待测程序中的数据流信息以及辅助信息,并维护用于保存数据流信息的数据结构;
搜索算法模块,其用于根据覆盖率检测模块提供的信息优化搜索算法,并提供程序状态;
符号执行模块,其用于根据所述程序状态,将执行情况发送至所述覆盖率检测模块,并生成测试用例。
本发明的有益效果在于:本发明设计并实现了一种基于符号执行工具的数据流测试框架,并基于该框架实现了一种基于关键点引导的面向数据流覆盖的路径搜索方法,通过代码静态分析找出到达每个定义—使用对中定义点和使用点的关键点,使用搜索算法优先选择经过最多关键点的定义,告知搜索算法模块哪些程序状态更具有价值,从而引导符号执行,更为高效的完成数据流覆盖。
相对传统的符号执行方法,需要选择所有的控制流路径进行执行,本发明所使用的静态分析方法辅助的符号执行,能够使得搜索更具导向性,从而更高效的覆盖定义-使用对。
相对传统的数据流测试方法,本方法使用了符号执行方法进行辅助,能够自动生成测试用例,大大增加了数据流测试的可行性,降低了进行数据流测试门槛。
附图说明
图1为基于关键点引导的数据流测试方法的流程图。
图2为基于关键点引导的数据流测试系统的示意图。
图3为搜索算法模块状态图。
图4为实施例中对比数据的柱状图。
图5为数据流信息传输协议图。
图6为实例代码
图7为静态分析导出的数据流信息文件内容
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
以下图1显示的是本发明基于关键点引导的数据流测试方法的流程示意图,如图1。其中包括如下步骤:
步骤一:通过标准的数据流分析方法获得待测程序中的定义-使用对,所述定义-使用对是指存在一条控制流路径总从变量的定义控制流节点到相同变量的使用控制流节点,并且所述定义控制流节点与所述使用控制流节点之间不存在关于所述变量的重定义;其中,定义-使用对以如下方式获得:获取所述待测程序中每一个变量的定义;获取每一个变量的使用所对应的定义,构建初级的定义-使用对;初级的定义-使用对为有序对,其表示一语句包含一个变量并且通过路径到达使用变量的另一语句;构建控制流路径,在控制流路径上从初级的定义-使用对中排除包含重定义的定义-使用对;获得所述待测程序中的定义-使用对。
步骤二:根据控制流分析方法分析所述定义-使用对中的关键点;所述关键点是覆盖所述定义-使用对时必须经过的控制流路径的节点;控制流分析方法分析关键点包含以下步骤:构建程序的控制流图;读取所述定义-使用对的信息;对于每一个定义-使用对,在控制流图上找到到达所述变量的定义节点与该变量的使用的必经节点,存入关键点列表;对于所述关键点列表中的每一个关键点,重复步骤B3,直到找到的必经点为程序入口;输出与定义-使用对相对应的关键点列表。
步骤三:将所述定义-使用对和所述关键点输入符号执行器;
步骤四:所述符号执行器使用基于关键点的路径搜索器引导符号执行;基于关键点的路径搜索器引导符号执行包括如下步骤:如果在待选路径列表中的一条路径将会经过关键点,则选择即将经过关键点的所述路径;如果在待选路径列表中所有路径均不即将经过关键点,则在控制流图上选择距离关键点最近的路径执行;如果待选路径列表为空,则结束执行。
步骤五:如果符号执行路径覆盖所述定义-使用对,那么就返回所述符号执行路径对应的测试用例,否则继续执行步骤四,直至对于所有定义-使用对都产生了对应的测试用例,或者所有的符号执行路径均执行结束,则结束所述符号执行器的执行;
步骤六:根据符号执行的结果,统计覆盖率。
本方法的基于关键点引导的数据流测试系统包含三个基本模块:覆盖率检测模块,符号执行模块,搜索算法模块,三个基本模块的概览如附图2所示。
覆盖率检测模块需要具有的功能有,数据流分析、统计覆盖率、更新覆盖率信息,并向搜索模块提供参考信息。根据经典的数据流测试框架的设计,我们将覆盖率检测模块分为两个部分,一个是数据流分析部分,一个是覆盖率统计部分。数据流分析部分将待测代码中的数据流信息以及必要的辅助信息提取出来,交由覆盖率统计部分处理,覆盖率统计部分维护一个主要的保存数据流信息的数据结构,同时根据符号执行的信息,维护主要的数据结构,并向搜索模块提供下一步搜索的参考。
符号执行模块的功能是执行搜索算法所提供的程序状态,将执行情况告诉覆盖率统计模块,并生成测试用例。我们采用符号执行引擎进行符号执行并针对数据流覆盖生成测试用例。符号执行引擎会根据符号执行的路径上收集到的约束,生成测试用例。
搜索算法模块需要根据覆盖率检测模块提供的信息优化搜索算法,并向符号执行模块提供较优的程序状态。为了达到这个目的,我们需要执行那些更容易完成数据流覆盖的程序状态,同时将那些不需要执行的状态,排除在符号执行之外,这样便可高效的完成数据流覆盖,搜索算法模块状态图如附图3所示。
本发明数据流测试方法采用前端(Static Analysis Module,简称SAM)对被测程序进行数据流分析找出关键点,并将关键点的覆盖信息作为参考,告知测试用例自动生成模块(Symbolic Execution Module,简称SEM)哪些程序状态更具有价值。由此,定义前端SAM与测试用例生成模块SEM之间的通信协议。SAM与SEM通过写入与读取文件作为通信方式,SAM在进行数据流分析之后,将会把分析结果,包括“定义——使用”对与关键点,以图5协议的形式,存储在文件中。
而SEM则会在初始化时,读取协议文件,从而构建出数据流信息表。在SEM的Module中新增一个名为CilInfoTable的类来存储以及维护数据流信息表,同时,将数据流信息表作为一个持久化的成员对象,加入到Executor类中,让Executor依赖于CilInfoTable类。当符号执行模块需要更新数据流信息表时,便通过Executor类访问CilInfoTable对象,调用CilInfoTable类的成员函数,从而更新数据流信息表。而当搜索模块需要获取下一步检索的参考信息时,也同样通过Executor类访问CilInfoTable对象,获取到关键点以及覆盖情况的信息。
符号执行模块需要在符号执行的过程中获取到插桩函数,并且将插桩函数的信息更新到数据流信息表。在SEM中,加入一个名为handleCilInfo的成员函数,并将这个控制函数绑定名为sem_cil_info的插桩函数,当符号执行遇到sem_cil_info插桩函数时,便触发handleCilInfo函数。
接下来在sem中定义sem_cil_info函数的参数列表,根据如图5所示的数据流信息传输协议,将在sem_cil_info函数中定义8个字符串类型的参数,分别对应关键点类型,变量名称,变量id,变量所在行数,所在文件名,所在函数名,所在函数id,所在语句id。之后便可以在待测文件中插入符合协议的8个参数sem_cil_info插桩函数。
当在符号执行的过程中遇到sem_cil_info插桩函数,触发handleCilInfo函数,handleCilInfo的参数列表有三个参数:state,用来获取当前执行到插桩函数的程序状态;target,用来获取当前插桩函数所在的语句;argument,用来获取插桩函数传入的参数。当handleCilInfo函数被触发后,首先读取插桩函数传入的参数,并通过Executor获取到CilInfoTable,将读取到的参数传给CilInfoTable,如果CilInfoTable内部信息有更新,则通过Executor获取到Searcher,增加当前程序状态的权值重新选择程序状态,或清空待选程序状态结束执行。
对于搜索算法模块的实现,本方法在SEM中新增一个Searcher。首先声明一个新的搜索器DataFlowSearcher类,其中state选择函数每次将会返回待执行程序状态队列中权值最高的程序状态,即返回经过关键点最多的程序状态,如果待执行程序状态队列中所有程序状态的权值相同,则返回待执行程序状态队列中的第一个程序状态。
下面讲解一个本数据流测试方法的使用实例,代码如图6所示,数据流测试框架的覆盖率检测模块会使用SAM对待测文件进行数据流分析,并完成插桩。如图7所示,是SAM对待测文件进行数据流分析后得出的符合图5协议的数据流信息文件,图中每一行代表一个“定义——使用”对,而SAM处理的另外一个产品是插桩过后的源代码文件,对于图6的实例代码。接下来,对源代码进行编译,并调用根据本发明实现的数据流搜索模块,从而定向产生满足一定关键点覆盖的测试用例。
本发明实施例中,使用了深度优先搜索算法、随机搜索算法,以及本发明实现的基于关键点引导的数据流测试算法,在冒泡排序、选择排序、插入排序以及空中防撞系统实例程序上进行实验,将采用两种实验方法,第一种方法是一次执行,目标是覆盖多个“定义-使用”对(def-use pair),第二种方法是,每次执行的目标是只覆盖一个“定义-使用”对。对于第一种方法,将会统计基于符号执行的数据流测试框架中每一种算法的覆盖率,对于第二种方法,将会统计覆盖到目标“定义-使用”对时,执行了多少条语句,完成了多少条路径以及生成了多少个测试用例。一次执行,覆盖多个“定义-使用”对的实验结果见附图4。如图4所示,基于关键点引导的数据流测试算法,相比深度优先搜索算法以及随机搜索算法,覆盖率有明显的提高,体现了本发明在数据流测试中相比通用算法的优势。
一次执行,目标覆盖一个“定义-使用”对的实验结果见表1。表1可以看到,在面向固定“定义-使用”对目标的实验中,本发明能够执行相对更少的语句,完成更少的路径,生成更少的测试用例,在这样的开销更少的情况下,找到并生成覆盖目标定义使用对的测试用例。这是因为本发明,能够通过关键点(cut point)的引导,有效的避开无效的程序路径,从而能够直接的覆盖所需要覆盖的“定义-使用”对,而深度优先搜索算法和随机搜索算法,很有可能在执行时,错过正确的路径,需要大量的开销才能够覆盖到所需要的“定义-使用”对。
表1目标覆盖一个“定义-使用”对的实验结果
可以看出,不论是在数据流测试的覆盖率上,还是命中固定目标“定义-使用”对的开销上,基于关键点引导的面向数据流测试技术,都相较其他通用方法表现更好。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (5)
1.一种基于关键点引导的数据流测试方法,其特征在于,包括:
步骤一:通过标准的数据流分析方法获得待测程序中的定义-使用对,所述定义-使用对是指存在一条控制流路径总从变量的定义控制流节点到相同变量的使用控制流节点,并且所述定义控制流节点与所述使用控制流节点之间不存在关于所述变量的重定义;
步骤二:根据控制流分析方法分析所述定义-使用对中的关键点;所述关键点是覆盖所述定义-使用对时必须经过的控制流路径的节点;
步骤三:将所述定义-使用对和所述关键点输入符号执行器;
步骤四:所述符号执行器使用基于关键点的路径搜索器引导符号执行;
步骤五:如果符号执行路径覆盖所述定义-使用对,那么就返回所述符号执行路径对应的测试用例,否则继续执行步骤四,直至对于所有定义-使用对都产生了对应的测试用例,或者所有的符号执行路径均执行结束,则结束所述符号执行器的执行;
步骤六:根据符号执行的结果,统计覆盖率。
2.如权利要求1所述的基于关键点引导的数据流测试方法,其特征在于,所述定义-使用对以如下方式获得:
步骤A1:获取所述待测程序中每一个变量的定义;
步骤A2:获取每一个变量的使用所对应的定义,构建初级的定义-使用对;所述初级的定义-使用对为有序对,其表示一语句包含一个变量并且通过路径到达使用所述变量的另一语句;
步骤A3:构建控制流路径,在控制流路径上从所述初级的定义-使用对中排除包含重定义的定义-使用对;
步骤A4:获得所述待测程序中的定义-使用对。
3.如权利要求1所述的基于关键点引导的数据流测试方法,其特征在于,步骤二中所述控制流分析方法分析关键点包含以下步骤:
步骤B1:构建程序的控制流图;
步骤B2:读取所述定义-使用对的信息;
步骤B3:对于每一个定义-使用对,在控制流图上找到到达所述变量的定义节点与该变量的使用的必经节点,存入关键点列表;
步骤B4:对于所述关键点列表中的每一个关键点,重复步骤B3,直到找到的必经点为程序入口;
步骤B5:输出与定义-使用对相对应的关键点列表。
4.如权利要求1所述的基于关键点引导的数据流测试方法,其特征在于,步骤四中基于关键点的路径搜索器引导符号执行包括如下步骤:
步骤C1:如果在待选路径列表中的一条路径将会经过关键点,则选择即将经过关键点的所述路径;
步骤C2:如果在待选路径列表中所有路径均不即将经过关键点,则在控制流图上选择距离关键点最近的路径执行;
步骤C3:如果待选路径列表为空,则结束执行。
5.一种基于关键点引导的数据流测试系统,其特征在于,包含:
覆盖率检测模块,其用于提取待测程序中的数据流信息以及辅助信息,并维护用于保存数据流信息的数据结构;
搜索算法模块,其用于根据覆盖率检测模块提供的信息优化搜索算法,并提供程序状态;
符号执行模块,其用于根据所述程序状态,将执行情况发送至所述覆盖率检测模块,并生成测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610956731.2A CN107656863A (zh) | 2016-11-03 | 2016-11-03 | 一种基于关键点引导的数据流测试方法及其测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610956731.2A CN107656863A (zh) | 2016-11-03 | 2016-11-03 | 一种基于关键点引导的数据流测试方法及其测试系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107656863A true CN107656863A (zh) | 2018-02-02 |
Family
ID=61127292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610956731.2A Pending CN107656863A (zh) | 2016-11-03 | 2016-11-03 | 一种基于关键点引导的数据流测试方法及其测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107656863A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086606A (zh) * | 2018-07-16 | 2018-12-25 | 腾讯科技(深圳)有限公司 | 一种程序漏洞挖掘方法、装置、终端及存储介质 |
CN110321458A (zh) * | 2019-05-21 | 2019-10-11 | 国家电网有限公司 | 一种基于控制流图的数据流分析方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070033440A1 (en) * | 2005-08-04 | 2007-02-08 | Microsoft Corporation | Parameterized unit tests |
CN102681939A (zh) * | 2012-05-07 | 2012-09-19 | 北京邮电大学 | 一种选取路径的方法及装置 |
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径爆炸的动态符号执行方法 |
CN102736979A (zh) * | 2012-06-29 | 2012-10-17 | 南京大学 | 一种基于符号执行的带反馈测试用例生成方法 |
-
2016
- 2016-11-03 CN CN201610956731.2A patent/CN107656863A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070033440A1 (en) * | 2005-08-04 | 2007-02-08 | Microsoft Corporation | Parameterized unit tests |
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径爆炸的动态符号执行方法 |
CN102681939A (zh) * | 2012-05-07 | 2012-09-19 | 北京邮电大学 | 一种选取路径的方法及装置 |
CN102736979A (zh) * | 2012-06-29 | 2012-10-17 | 南京大学 | 一种基于符号执行的带反馈测试用例生成方法 |
Non-Patent Citations (1)
Title |
---|
苏亭: ""基于覆盖准则的软件测试用例自动化生成方法的研究与实现"", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086606A (zh) * | 2018-07-16 | 2018-12-25 | 腾讯科技(深圳)有限公司 | 一种程序漏洞挖掘方法、装置、终端及存储介质 |
CN109086606B (zh) * | 2018-07-16 | 2020-08-07 | 腾讯科技(北京)有限公司 | 一种程序漏洞挖掘方法、装置、终端及存储介质 |
CN110321458A (zh) * | 2019-05-21 | 2019-10-11 | 国家电网有限公司 | 一种基于控制流图的数据流分析方法及装置 |
CN110321458B (zh) * | 2019-05-21 | 2021-10-15 | 国家电网有限公司 | 一种基于控制流图的数据流分析方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Deescvhunter: A deep learning-based framework for smart contract vulnerability detection | |
Scanniello et al. | Clustering support for static concept location in source code | |
CN109525556A (zh) | 一种用于确定嵌入式系统固件中协议漏洞的轻量级方法及系统 | |
Fan et al. | Querying big graphs within bounded resources | |
CN106126235A (zh) | 一种复用代码库构建方法、复用代码快速溯源方法及系统 | |
CN105637519A (zh) | 使用行为辨识系统的认知信息安全性 | |
CN103473506A (zh) | 用于识别恶意apk文件的方法和装置 | |
CN105045715B (zh) | 基于编程模式和模式匹配的漏洞聚类方法 | |
CN109670306A (zh) | 基于人工智能的电力恶意代码检测方法、服务器及系统 | |
CN113326187A (zh) | 数据驱动的内存泄漏智能化检测方法及系统 | |
CN112115326B (zh) | 一种以太坊智能合约的多标签分类和漏洞检测方法 | |
CN107247668A (zh) | 代码自动检测和校正方法 | |
CN109240903A (zh) | 一种自动评估的方法和装置 | |
Xu et al. | Answering label-constraint reachability in large graphs | |
Ashraf et al. | WeFreS: weighted frequent subgraph mining in a single large graph | |
Bi et al. | MM-GNN: Mix-moment graph neural network towards modeling neighborhood feature distribution | |
CN107426610A (zh) | 视频信息同步方法及装置 | |
CN107656863A (zh) | 一种基于关键点引导的数据流测试方法及其测试系统 | |
CN107168881A (zh) | 代码异常定位与处理方法 | |
CN117331826A (zh) | 一种针对挖掘安全漏洞的混合模糊测试优化方法 | |
CN116975881A (zh) | 一种基于llvm的漏洞细粒度定位方法 | |
Cruz et al. | A machine learning based automatic hardware trojan attack space exploration and benchmarking framework | |
US20140365535A1 (en) | Visual data definition for identifying data items in loosely-structured data | |
CN107239317A (zh) | 可执行程序编程优化方法 | |
Aljanabi et al. | Distributed denial of service attack defense system-based auto machine learning algorithm |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180202 |
|
WD01 | Invention patent application deemed withdrawn after publication |