CN112416806A - 一种基于标准文档分析的js引擎模糊测试方法 - Google Patents

一种基于标准文档分析的js引擎模糊测试方法 Download PDF

Info

Publication number
CN112416806A
CN112416806A CN202011450408.0A CN202011450408A CN112416806A CN 112416806 A CN112416806 A CN 112416806A CN 202011450408 A CN202011450408 A CN 202011450408A CN 112416806 A CN112416806 A CN 112416806A
Authority
CN
China
Prior art keywords
cases
test
generation
model
engine
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.)
Granted
Application number
CN202011450408.0A
Other languages
English (en)
Other versions
CN112416806B (zh
Inventor
叶贵鑫
弋雯
王焕廷
田洋
瞿兴
王媛
汤战勇
房鼎益
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern University
Original Assignee
Northwestern University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern University filed Critical Northwestern University
Priority to CN202011450408.0A priority Critical patent/CN112416806B/zh
Publication of CN112416806A publication Critical patent/CN112416806A/zh
Application granted granted Critical
Publication of CN112416806B publication Critical patent/CN112416806B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

本发明公开了一种基于标准文档分析的JS引擎模糊测试方法,主要包括生成阶段与测试阶段,该方法使用先进的无监督深度学习模型生成大量用例,结合用例中包含的API并对其查询ECMA‑262标准进行解析,根据解析到的边界条件与参数定义对用例进行定向变异得到测试用例。经试验表明,使用该方法得到的测试用例,在JS引擎模糊测试中表现优异,能解决一般的基于生成的方法成本耗费高以及基于变异的方法变异方向不可控的问题,提高测试的效率和质量,为JS引擎的缺陷检测提供了技术支持。采用本发明的方法,不仅能够保证测试用例的大部分信息不变,从而降低语法错误率,还能通过对缺陷热点区域API的变异增大测试用例发现缺陷的可能。

Description

一种基于标准文档分析的JS引擎模糊测试方法
技术领域
本发明涉及计算机技术领域,涉及一种测试方法,特别涉及一种基于标准文档分析的JS引擎模糊测试方法。
背景技术
JavaScript(JS)语言由于其语法相对灵活、简单易学,且在实际应用时可以提高数据传送效率、优化用户操作体验等优点,已经成为目前应用最广泛的Web前端脚本语言。而JS引擎作为对JS脚本代码进行编译执行的平台,也逐渐成为现代Web浏览器的核心组件之一。随着JS的使用范围越来越广,确保JS引擎实现功能的正确性也变得越来越重要。当前,常用的缺陷检测技术有静态分析、符号执行、模糊测试等。静态分析方法注重缺陷产生的根本原因,准确性高,但需要花费大量的时间,效率低;符号执行技术的缺点有路径爆炸、求解困难等。
模糊测试技术的核心思想是将自动生成的大量随机数据输入到待测目标程序中,监视程序在执行过程中出现的异常并对异常情况进行分析,最后判断其是否为缺陷。模糊测试技术具有自动化程度高、测试效率高、且在测试时不依赖测试目标程序源代码等优点,是当前最有效的缺陷检测手段之一。模糊测试的关键环节在于测试用例的生成,所生成的测试用例的质量决定了模糊测试的最终效果。
当前,测试用例的生成方法主要包括两大类:基于生成的生成方法与基于变异的生成方法。基于生成的方法有基于模板的方法以及代码拼接方法以及基于深度学习的方法等。基于模板的方法通过人工根据编写生成数据的语法规则来编写模板生成数据,此方法得到的用例语法正确率高但需要耗费大量的人工成本与时间成本。代码拼接方法是对收集到的种子用例进行拆分与同类替换来生成新的用例,此方法需要收集大量的原始用例且生成数据的质量依赖于分割拼接规则,易产生语法语义无效的用例。近年来,随着机器学习的流行,出现了基于深度学习的生成方法,其是将处理好的用种子文件输入到深度学习模型中训练,然后模型根据学习到的语法结构、编码规范以及各种API的调用关系来生成测试用例,此方法大大减少了人工成本。基于变异的方法是对收集到的原始数据样本进行随机变异,此方法便捷高效,但它对原始数据的依赖性较大,且随机变异的用例难以保证语法语义的正确性,从而影响测试的效果。
发明内容
针对现有的常用测试用例生成方法存在的问题,本发明的目的在于,提供一种基于标准文档分析的JS引擎模糊测试方法。
为了实现上述任务,本发明采取如下技术解决方案:
一种基于标准文档分析的JS引擎模糊测试方法,其特征在于,该方法主要包括生成阶段与测试阶段,其中:
生成阶段:先从GitHub上爬取实际工程项目的JS文件,再对其进行数据预处理;
所述数据预处理的过程是,先根据JS文件的内容的长短选择语法树或正则匹配提取文件中的函数并对其进行全局变量回填,再进行去重、去注释、规则过滤、美化等步骤,将最终得到的代码存入数据库作为模型的训练数据。
然后,将训练数据输入给无监督深度学习模型GPT-2,让其根据训练数据的特点来微调模型生成大量与训练数据格式相同的只包含函数体的测试用例。
得到大量的测试用例后,先根据对其进行传参与自调用使其成为可执行文件,再逐个进行语法解析获取用例中的API,根据此API名称查阅预先使用ECMA-262标准解析器获取到的语法规则,最终根据语法规则中的边界条件以及参数定义对用例进行边界条件以及参数类型定向变异形成最终的测试用例。
测试阶段:将生成阶段最终生成的每一个测试用例依次分别在10个JS引擎上进行差分测试,根据投票机制将执行结果与大多数不一致的引擎、对应的用例以及相关信息进行标记保存为可疑用例,然后对得到的可疑用例进行人工分析,确认是否为引擎的缺陷。
本发明的基于标准文档分析的JS引擎模糊测试方法,基于大量实际JS工程代码数据集,将其预处理后作为训练数据输入给GPT-2模型学习生成庞大的测试用例集,然后定位测试用例中包含的API,并在JavaScript语言标准文档(ECMA-262)中查询到与此API对应的条目,从该条目中解析出API实现过程中的边界条件以及API参数定义进而对用例进行定向变异生成测试用例所需要的参数数据,再对其进行差分测试以及人工分析,实现了降低成本以及降低语法错误率的目的。
该方法使用先进的无监督深度学习模型生成大量用例,结合用例中包含的API并对其查询ECMA-262标准进行解析,根据解析到的边界条件与参数定义对用例进行定向变异得到测试用例。经试验表明,使用该方法得到的测试用例,在JS引擎模糊测试中表现优异,能解决一般的基于生成的方法成本耗费高以及基于变异的方法变异方向不可控的问题,提高测试的效率和质量,为JS引擎的缺陷检测提供了技术支持。
本发明和现有技术相比,技术创新点主要在于:
采用生成与变异相结合,结合ECMA-262标准对用例进行定向变异。大量的实践分析表明API最容易导致JS引擎出现bug。采用ECMA-262标准解析器对ECMA-262标准中的API进行解析,使用边界条件来指导测试用例的变异。采用本发明的方法,不仅能够保证测试用例的大部分信息不变,从而降低语法错误率,还能通过对缺陷热点区域API的变异增大测试用例发现缺陷的可能。
附图说明
图1是本发明的基于标准文档分析的JS引擎模糊测试方法流程图。
图2是数据预处理流程图。
图3是训练数据举例。
图4是使用无监督深度学习生成的测试用例举例。
图5是随机传参与自调用后测试用例举例。
图6是变异后得到的测试用例举例。
以下结合附图和实施例对发明作进一步的详细说明。
具体实施方式
参见图1,本实例给出一种基于标准文档分析的JS引擎模糊测试方法,主要包括生成阶段与测试阶段,其中:
生成阶段:先从GitHub上爬取实际工程项目的JS文件,再对其进行数据预处理。
所述数据预处理的过程是,先根据JS文件的内容的长短选择语法树或正则匹配提取文件中的函数并对其进行全局变量回填,再进行去重、去注释、规则过滤、美化等步骤,将最终得到的代码存入数据库作为模型的训练数据。
然后,将训练数据输入给无监督深度学习模型GPT-2,让其根据训练数据的特点来微调模型生成大量与训练数据格式相同的只包含函数体的测试用例。
得到大量的测试用例后,先根据对其进行传参与自调用使其成为可执行文件,再逐个进行语法解析获取用例中的API,根据此API名称查阅预先使用ECMA-262标准解析器获取到的语法规则,最终根据语法规则中的边界条件以及参数个数对用例进行边界条件以及参数类型定向变异形成最终的测试用例。
测试阶段:将生成阶段最终生成的每一个测试用例依次分别在10个JS引擎上进行差分测试,根据投票机制将执行结果与大多数不一致的引擎、对应的用例以及相关信息进行标记保存为可疑用例,然后对得到的可疑用例进行人工分析,确认是否为引擎的缺陷。
本实施例给出的基于标准文档分析的JS引擎模糊测试方法,也可以划分为五个阶段,即:获取初始数据阶段、数据预处理阶段、模型训练阶段与用例生成阶段、用例变异阶段、差分测试与分析结果阶段,其中:
获取初始数据阶段,是对原始的模型训练数据进行获取。
数据预处理阶段,包括以下四个步骤:
1)判断JS文件的内容长短,选择相应的方法提取函数并进行全局变量回填;
2)使用JSHint对函数进行语法过滤;
3)对剩余函数进行去重、去注释、规则过滤、美化等;
4)将最终结果存入数据库作为模型的最终训练数据。
模型训练阶段与用例生成阶段,将训练数据输入给模型进行学习与生成,得到大量的函数用例,然后对其进行传参与自调用形成完整的测试用例。
用例变异阶段,主要分为两步:
第一步,先对测试用例中包含的API进行语法解析获取可变异的API名称,然后根据API名称查询ECMA-262标准解析器得到语法规则库;
第二步,根据语法规则中的边界条件对用例中API的参数进行变异,然后再对此API的所有参数进行类型变异,形成最终的测试用例。
以下是具体的实施过程:
1、获取初始训练集
选取的生成模型为无监督深度学习模型,生成过程实际上借鉴了自然语言处理的文本生成思想,将代码视为一种特殊的“文本”,让模型根据训练数据中代码的数据格式、编码规范以及API的调用,所以训练数据的语法正确性与代码内容的广度是非常重要的。
GitHub是全世界最大的开源社交编程及代码托管网站,拥有种类繁多、功能齐全的开源代码库。因此,选取了GitHub上在JavaScript分类下star排名前4000的实际工程项目来进行训练数据的提取。由于部分项目过期等原因,对4000个项目进行数据爬取后共得到了3984个仓库,然后对所有仓库进行遍历,提取仓库中的JS文件。
图3给出了训练数据一个实例;图4给出了使用无监督深度学习生成的测试用例一个实例。
2、数据预处理阶段
2.1相关工具简介
(1)Esprima
Esprima是一种性能优异、符合标准的ECMAScript解析器,用于对JS代码进行词法或语法分析。此工具特点如下:完全支持ECMAScript2016;语法树结构合理,对语法节点位置可选追踪;经过了严格的实验测试;支持JSX。Esprima主要提供两个API,即:parseScript与parseModule,可根据代码是否包含import、export类似的语句来进行选择。JS代码经过Esprima后解析为两大部分:变量声明(函数、变量和类)与表达式,其中表达式又被分关键字组成的与运算语句(赋值、计算之类的操作)。
(2)JSHint
JSHint是一种常用的JS代码规范检查工具。它的优势体现在可配置规则、社区支持度高以及可定制结果报表。JSHint为用户提供了近60种可选配置,灵活度极高。在使用时,JSHint可以根据用户自定义的配置,对JS代码进行一系列检查,包括对语法正确性的检查、特定API的筛查、特定编码规范的检查等。
(3)UglifyJS
UglifyJS是集JS解释器、代码最小化、代码压缩、代码美化等多种功能于一身的实用工具,其实此工具也具有一定的语法过滤功能,只是相比于JSHint过滤条件较为宽松。UglifyJS的输入支持单文件、多文件与字符串,其通过不同的选项参数来区别不同的功能,如混淆选项(m)、压缩器选项(-c)、美化器选项(-b)等。选定功能后,可根据需要再传入其他的具体参数来确定更加详细的实现方式。
2.2数据预处理具体步骤
为了保证模型的学习效果以及方便后续测试分析,将训练数据处理为一条条的函数。参见图2,在本实施例中,首先,对得到的所有JS文件进行遍历,若文件内容行数小于1000行,则根据正则匹配对其中的函数进行提取,否则使用Esprima生成语法树,再根据语法树进行函数的提取。提取完函数后,需要对其进行变量回填,以保证函数体能保留原文件的信息且不会出现未定义的变量。得到完整的函数后需要使用JSHint对其进行语法过滤以保证训练数据的有效性。为进一步提高数据集的质量,对有效的测试用例进行去重、去注释以及根据数据集的特点人为制订的规则进行过滤,最后使用UglifyJS统一代码格式,将结果存入数据库待用。
3、模型训练与数据生成阶段
3.1模型训练
(1)模型选择
在生成阶段,选择的无监督深度学习模型为基于Transformer架构的GPT-2模型。与常规的循环神经网络(如RNN、LSTM)具有长距离依赖问题且成本高昂不同,Transformer架构使用attention机制,在每一步处理时都对输入序列的不同片段给予不同的关注度。相比于循环神经网络,Transformer模型的各层之间是高度可并行化的,计算成本低且特征抽取能力更强。GPT-2模型是基于Transformer架构的语言模型,其在自然语言处理方向表现十分优异,因此选择此模型来进行数据的生成。
(2)模型训练
GPT-2模型的训练过程分为预训练与微调两个阶段。预训练阶段为基于庞大的单语语料进行无监督的词预测,训练一个生成式语言模型;微调阶段为在有标签的数据集上进行进一步微调训练。在本实施例中,使用GPT-2模型的参数为117M的基础模型,将预处理得到的JS代码作为微调数据集来更新预训练得到的GPT-2模型的最后两个全连接层的权重微调模型,训练时长30个小时,得到符合训练数据的生成模型。
3.2数据生成
在本实施例中,从模型的训练集中收集到了一个含有2000个函数头文件的样本库,在进行生成时,首先从头文件样本库中随机选择一个头文件,然后生成模型根据当前的字符串生成下一个token。在进行token选择时,使用top-k采样算法,根据实践经验将k设为10,选择预测概率最高的10个token构成集合,再对此集合中各词的概率进行归一化从新的概率分布中进行采样,将选取的token添加到字符串后形成新的字符串,然后将新的字符串提供给模型进行下一个token的选择,重复此过程来补充字符串直至产生终止条件。本实施例中,提供三种终止条件:一是模块括号达到匹配状态;二是模型自动生成终止符号“<EOF>”;三是模型生成的字符串长度达到5000。由于GPT-2模型再生成数据时并不是逐个保存而是以段为单位保存,因此在每段程序结束生成之后,都要在此段程序后加上指定的分割标志,方便下一步提取生成的测试用例。
4、用例变异阶段
在数据生成完毕后,首先要对GPT-2模型生成的字符串根据分割标志进行分割得到生成的测试用例。由于在GPT-2模型训练与数据生成阶段最终生成的为一个个函数体,并非一个完整的用例,因此在进行变异之前,需要先根据生成的函数体对用例进行传参与自调用,并对调用结果进行打印,使其成为完整可执行文件。
图5给出了随机传参与自调用后测试用例举例一个实例。
4.1边界条件提取
ECMA-262标准是JS的语法标准文档,ECMA-262标准解析器的作用是从ECMA-262标准中对语法规则进行提取。ECMA-262标准是一个HTML文档,在本实施例中,为了提高变异的效率,预先使用内容检测分析工具Tika通过人工编写的正则匹配规则获取HTML的元数据,再使用语法分析器ANTLR从伪代码中对标准进行提取,将提取出的规范以语法树的结构存储在ECMA-262数据库中。对于自然语言描述的规则,在本实施例中无法提取。
在变异阶段,会对测试用例逐个执行,定位得到用例中包含的API函数。在获取API函数后,只需根据API函数名称查阅预先构建的ECMA-262数据库,就可得到解析出的API语法规则,其中包含API的边界条件以及参数定义等。
4.2API参数变异
(1)边界条件变异
根据4.1给出的边界条件,对API函数的参数值进行定向更改,包括参数的数量、类型与值,生成具有针对性的测试用例。若在4.1中此API未得到边界条件,则此步忽略直接进行步骤(2)。
(2)参数类型变异
在JS中,有七种基本类型:Object、Boolean、Number、String、Array、null、undefined。在完成步骤(1)后,会根据语法规则中的参数定义进行参数个数判断,对API的每个参数选取七种类型的参数的随机值进行组合,生成不同参数类型的测试用例。
变异后得到的测试用例举例如图6所示,其中(a)图是与(b)图是对图5的用例进行边界条件变异后的得到的测试用例,(c)图是对图5的用例进行参数类型变异后的得到的测试用例。
5、差分测试与分析结果阶段
5.1差分测试
使用差分测试进行结果判断,即将相同的测试用例在不同的JS引擎上编译执行,比较执行结果,使用投票机制来判断哪个编译器的执行结果是与大多数引擎不一致的。
在本实施例中,发明人选取了10个JS引擎,共测试了47个版本。将变异后的用例逐一进行差分测试,在10个引擎上编译执行,将引起执行结果不一致的测试用例标记为可疑用例,存入可疑用例数据库,并对与大多数执行结果不一致的引擎进行标记。
5.2可疑用例分析
在本实施例中,5.1得到的可疑用例需要进一步通过人工分析来进一步确认其为bug还是误报。具体来说,需要开发人员结合各个引擎的执行结果以及差分测试结果,结合ECMA-262标准来进行逐步分析,确定此可疑用例为误报还是bug。若确定为bug,需要向对应的引擎开发人员提交issue,等待开发人员进行确认。
6、实验部分
6.1硬件平台
在本实施例中,实验平台是一台搭载了主频3.6GHz的Intel i7-7820x处理器和Ubuntu 18.04(内核版本4.15)操作系统的高性能服务器。服务器内存为64GB,图形显示卡为四张RTX 2080Ti。
6.2实验结果
(1)bug发现情况
在本实施例中,申请人在10个JS引擎上对25万条生成的测试用例进行了200个小时的测试。表6.1展示了在四大主流JS引擎上发现bug的情况统计表。到目前为止,共发现了26个不同的bug,已有25个被引擎开发人员确认,22个被引擎开发人员修复。
表6.1:四大引擎的bug发现情况统计表
JS引擎 提交数量 确认数量 修复数量
V8 4 4 3
ChakraCore 7 7 5
JavaScriptCore 12 11 11
SpiderMonkey 3 3 3
总计 26 25 22
(2)已发现bug举例
%TypedArray%.prototype.set
测试用例:
Figure BDA0002826583180000121
在执行此测试用例时,JavaScriptCore会在第四行抛出一个TypeError,而按照ECMA-262标准的规定,其应该输出“1,2,3,0,0”。导致此Bug的根本原因是ECMA-262标准中规定应将%TypedArray%.prototype.set的第一个参数转换为对象,但是JavaScriptCore未进行此步转换。此Bug已经被JavaScriptCore开发人员确认并修复。
DataView.prototype.getFloat64
测试用例:
Figure BDA0002826583180000122
在执行此测试用例时,ChakraCore会在第五行抛出一个TypeError,而按照ECMA-262标准的规定,其应该输出“0\n NaN”。导致此Bug的根本原因是ECMA-262标准中规定如果DataView.prototype.getFloat64方法的第二个参数未给出,应当将其设置为默认值“false”,但是ChakraCore未进行此步操作。此Bug已经被ChakraCore开发人员确认并修复。

Claims (1)

1.一种基于标准文档分析的JS引擎模糊测试方法,其特征在于,主要包括生成阶段与测试阶段,其中:
生成阶段:先从GitHub上爬取实际工程项目的JS文件,再对其进行数据预处理;
所述数据预处理的过程是,先根据JS文件的内容的长短选择语法树或正则匹配提取文件中的函数并对其进行全局变量回填,再进行去重、去注释、规则过滤、美化步骤,将最终得到的代码存入数据库作为模型的训练数据;
然后,将训练数据输入给无监督深度学习模型GPT-2,让其根据训练数据的特点来微调模型生成大量与训练数据格式相同的只包含函数体的测试用例;
得到大量的测试用例后,先根据对其进行传参与自调用使其成为可执行文件,再逐个进行语法解析获取用例中的API,根据此API名称查阅预先使用ECMA-262标准解析器获取到的语法规则,最终根据语法规则中的边界条件以及参数定义对用例进行边界条件以及参数类型定向变异,生成最终的测试用例;
测试阶段:将生成阶段最终生成的每一个测试用例依次分别在10个JS引擎上进行差分测试,根据投票机制将执行结果与大多数不一致的引擎、对应的用例以及相关信息进行标记保存为可疑用例,然后对得到的可疑用例进行人工分析,确认是否为引擎的缺陷。
CN202011450408.0A 2020-12-09 2020-12-09 一种基于标准文档分析的js引擎模糊测试方法 Active CN112416806B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011450408.0A CN112416806B (zh) 2020-12-09 2020-12-09 一种基于标准文档分析的js引擎模糊测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011450408.0A CN112416806B (zh) 2020-12-09 2020-12-09 一种基于标准文档分析的js引擎模糊测试方法

Publications (2)

Publication Number Publication Date
CN112416806A true CN112416806A (zh) 2021-02-26
CN112416806B CN112416806B (zh) 2022-03-01

Family

ID=74775486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011450408.0A Active CN112416806B (zh) 2020-12-09 2020-12-09 一种基于标准文档分析的js引擎模糊测试方法

Country Status (1)

Country Link
CN (1) CN112416806B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157565A (zh) * 2021-03-23 2021-07-23 西北大学 一种基于种子用例突变的反馈式js引擎模糊测试方法及装置
CN113238937A (zh) * 2021-05-11 2021-08-10 西北大学 一种基于代码精简与误报过滤的编译器模糊测试方法
CN114385491A (zh) * 2021-12-30 2022-04-22 大连理工大学 一种基于深度学习的js转译器缺陷检测方法
CN116431135A (zh) * 2023-06-12 2023-07-14 江西五十铃汽车有限公司 汽车代码编写方法、系统、计算机及可读存储介质
CN117707987A (zh) * 2024-02-06 2024-03-15 暗物智能科技(广州)有限公司 一种测试用例的检测方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011080321A1 (de) * 2009-12-30 2011-07-07 Tim Frey Hyperadapter und verfahren zum zugreifen auf dokumente in einer dokumentenbasis
CN105893256A (zh) * 2016-03-30 2016-08-24 西北工业大学 基于机器学习算法的软件故障定位方法
CN110113227A (zh) * 2019-04-18 2019-08-09 上海大学 一种变分自编码的模糊测试测试用例生成方法
CN111107779A (zh) * 2017-06-23 2020-05-05 自适应传感技术公司 用于测试和分析视敏度及其变化的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011080321A1 (de) * 2009-12-30 2011-07-07 Tim Frey Hyperadapter und verfahren zum zugreifen auf dokumente in einer dokumentenbasis
CN105893256A (zh) * 2016-03-30 2016-08-24 西北工业大学 基于机器学习算法的软件故障定位方法
CN111107779A (zh) * 2017-06-23 2020-05-05 自适应传感技术公司 用于测试和分析视敏度及其变化的系统和方法
CN110113227A (zh) * 2019-04-18 2019-08-09 上海大学 一种变分自编码的模糊测试测试用例生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张雄 等: "模糊测试技术研究综述", 《计算机科学》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157565A (zh) * 2021-03-23 2021-07-23 西北大学 一种基于种子用例突变的反馈式js引擎模糊测试方法及装置
CN113157565B (zh) * 2021-03-23 2023-02-07 西北大学 一种基于种子用例突变的反馈式js引擎模糊测试方法及装置
CN113238937A (zh) * 2021-05-11 2021-08-10 西北大学 一种基于代码精简与误报过滤的编译器模糊测试方法
CN113238937B (zh) * 2021-05-11 2023-02-03 西北大学 一种基于代码精简与误报过滤的编译器模糊测试方法
CN114385491A (zh) * 2021-12-30 2022-04-22 大连理工大学 一种基于深度学习的js转译器缺陷检测方法
CN116431135A (zh) * 2023-06-12 2023-07-14 江西五十铃汽车有限公司 汽车代码编写方法、系统、计算机及可读存储介质
CN116431135B (zh) * 2023-06-12 2023-09-22 江西五十铃汽车有限公司 汽车代码编写方法、系统、计算机及可读存储介质
CN117707987A (zh) * 2024-02-06 2024-03-15 暗物智能科技(广州)有限公司 一种测试用例的检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112416806B (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
CN112416806B (zh) 一种基于标准文档分析的js引擎模糊测试方法
CN109697162B (zh) 一种基于开源代码库的软件缺陷自动检测方法
CN111459799B (zh) 一种基于Github的软件缺陷检测模型建立、检测方法及系统
CN107943911A (zh) 数据抽取方法、装置、计算机设备及可读存储介质
CN106537333A (zh) 用于软件产物的数据库的系统和方法
CN108984155B (zh) 数据处理流程设定方法和装置
CN109857641A (zh) 对程序源文件进行缺陷检测的方法及装置
US11263062B2 (en) API mashup exploration and recommendation
WO2009108647A1 (en) Evaluating software programming skills
CN111651198A (zh) 代码摘要自动化生成方法及装置
CN112102813A (zh) 基于用户评论中上下文的语音识别测试数据生成方法
CN115495755A (zh) 一种基于CodeBERT和R-GCN的源代码漏洞多分类检测的方法
CN113157565B (zh) 一种基于种子用例突变的反馈式js引擎模糊测试方法及装置
CN111651765A (zh) 基于生成式对抗网络的程序执行路径生成方法
CN108563561A (zh) 一种程序隐性约束提取方法及系统
Perez-Beltrachini et al. Semantic parsing for conversational question answering over knowledge graphs
Velázquez-Rodríguez et al. Uncovering library features from API usage on Stack Overflow
Kahng et al. LLM Comparator: Visual Analytics for Side-by-Side Evaluation of Large Language Models
CN110989991B (zh) 检测应用程序中源代码克隆开源软件的方法及系统
CN113238937A (zh) 一种基于代码精简与误报过滤的编译器模糊测试方法
Chen et al. Neural comment generation for source code with auxiliary code classification task
CN117390130A (zh) 一种基于多模态表示的代码搜索方法
CN113032366A (zh) 基于Flex和Bison的SQL语法树解析方法
Kasegn et al. Spatial locality based identifier name recommendation
CN105975610A (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