CN112181420B - 基于强化学习的编译器缺陷定位方法 - Google Patents
基于强化学习的编译器缺陷定位方法 Download PDFInfo
- Publication number
- CN112181420B CN112181420B CN202010880640.1A CN202010880640A CN112181420B CN 112181420 B CN112181420 B CN 112181420B CN 202010880640 A CN202010880640 A CN 202010880640A CN 112181420 B CN112181420 B CN 112181420B
- Authority
- CN
- China
- Prior art keywords
- program
- learning
- representing
- reward
- compiler
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于强化学习的编译器缺陷定位方法,步骤1,执行结构变异过程,包括创建材料池、分析程序以选择有效的插入行和选择待插入的语句;步骤2,利用A2C算法进行基于强化学习的变异程序生成;步骤3,实现基于编译覆盖情况的缺陷定位。与现有技术相比,本发明在突破已有技术DiWi的局限性,首次利用结构变异与强化学习生成编译成功的变异程序,以更有效地定位编译器缺陷。
Description
技术领域
本发明涉及强化学习和编译器调试领域,特别是涉及一种有效地自动化定位编译器缺陷的方法。
背景技术
编译器是众多软件系统的基础,它影响着上层应用程序的安全性和鲁棒性。由于编译器的复杂性,定位编译器缺陷十分困难。含有编译器缺陷的代码片段会参与编译失败的测试程序的编译过程,而该代码片段大概率不会参与编译成功的测试程序的编译过程。DiWi技术通过对比原始测试程序(即触发编译器缺陷的编译失败的测试程序)和变异程序(即变异得到的能够编译成功的测试程序)在编译过程中对于编译器文件的覆盖情况(简称为编译覆盖情况)分析缺陷位置。为了完成变异分析过程,Chen等人设计了3种类型的元素变异规则,分别针对三种不同的程序元素(即变量、常量和操作符)进行变异。元素变异对测试程序的修改程度较小,因此其容易生成与原始测试程序编译覆盖情况相似的变异程序,从而更准确地定位缺陷。然而,受制于较小的变异空间,元素变异也有其局限性,比如生成的变异程序缺乏多样性。
发明内容
为解决上述技术问题,本发明提出了一种基于强化学习的编译器缺陷定位方法,通过设计四种结构变异规则并结合强化学习方法,实现了新型编译器缺陷定位技术RecBi。
本发明的一种基于强化学习的编译器缺陷定位方法,该方法包括以下步骤:
步骤1、执行结构变异过程,具体包括以下步骤:
步骤1.1、创建材料池,即首先从GCC开发者提供的测试程序中抽取if、while语句和函数体,组成材料池;
步骤1.2、分析程序以选择有效的插入行,具体为:将函数体外的代码行视为无效插入行;除了禁止的printf语句、return语句、__builtin_abort语句的代码行之外,其余代码行均为有效插入行;调用本步骤的代码用于在构建代码的抽象语法树后表示各个结点,并记录节点信息;
步骤1.3,选择待插入的语句,进行语句中的变量重命名,具体为:从材料池中选择if语句、while语句和函数体、构建goto语句,随后将这些语句中的变量重命名为原始测试程序中的类型能兼容的变量;
如果程序中的变量数量不足以供重命名,则报错并重新进行选择;
步骤2、基于强化学习生成变异程序,具体步骤如下:
学习者的多个学习状态在上一轮学习过程中环境给予的奖赏后步入新的学习状态,状态由一个数组表示,该数组存储着每一个变异规则生成编译成功的变异程序的数量,作为ANN神经网络的输入,进行本轮学习中动作的概率分布的预测,并根据这一分布选择一动作;根据步骤1所选择出的最优的变异规则,从而生成能够有效定位编译器缺陷的变异程序,计算得到环境给予的奖赏;同时,将动作输入CNN神经网络,预测选择这一动作能够获得的奖赏,进而获得优势损失函数;
奖赏由生成的变异程序的多样性以及变异程序与原始测试程序的相似性决定;
多样性与相似性分别由公式(1)和公式(2)定义如下:
其中,pi和pj表示生成的变异程序,f表示原始测试程序,dist()表示两个程序之间的距离,dist()由公式(3)定义:
其中,cova和covb分别表示程序a和程序b的编译覆盖情况,
在第t轮学习过程中,奖赏由以下三个公式定义:
Qt=n(α·divt+(1+α)·simt) (4)
其中,α表示divt和simt线性组合的参数,n表示已经生成的编译成功的变异程序的数量,Qt表示本轮学习情况的得分,该得分将作为奖赏的重要考量标准,ΔQt表示本轮Qt和上一轮Qt-1的差值;Rewardt表示第t轮的奖赏,T(mi)表示历史上选择了变异规则mi的次数;
每一轮学习过程中,利用公式(4)和公式(5)挑选高效的变异程序,移除了ΔQt<0对应的变异程序;
优势损失函数的定义如公式(7)所示:
其中,γ表示未来可能奖赏的权重,PRt表示利用当前神经网络预测的第t轮学习所获得的奖赏,PRt+u表示采用当前CNN对于第t+u轮奖赏的预估值;
步骤3、实现基于编译覆盖情况的缺陷定位,即由步骤2生成多个编译成功的变异程序后,分析它们的编译覆盖情况,以定位缺陷;采用公式(9)和公式(10)对于每一个参与编译过程的编译器文件进行打分,该得分表示文件的可疑值,可疑值越高表示该文件越有可能含有缺陷;
编译器文件的某一条语句s的可疑值的计算公式如下:
其中,efs表示运行了语句s且编译失败的变异程序的数量;nfs表示未运行语句s且编译失败的变异程序的数量;eps表示运行了语句s并编译成功的变异程序的数量;
每一个参与编译的编译器文件的可疑值的计算公式如下:
其中,nf表示在编译过程中,编译器文件f涉及到的全部语句的数量;
在计算了全部文件的可疑值后,将全部文件按照该值从大到小的顺序排序,可疑值排名位列前j名的文件含有缺陷,j受制于开发人员的实验标准。
与现有技术相比,本发明的优点和有益效果如下:
在突破已有技术DiWi的局限性,首次利用结构变异与强化学习生成编译成功的变异程序,以更有效地定位编译器缺陷。
附图说明
图1为本发明的一种基于强化学习的编译器缺陷定位方法整体流程图;
图2为结构变异过程示意图;
图3为利用A2C算法进行基于强化学习的变异程序生成过程示意图;
图4为超参数μ和α的影响结果示意图。
具体实施方式
下面结合具体实施方式对本发明做进一步详细的描述;
如图1所示,本发明的一种基于强化学习的编译器缺陷定位方法整体流程图。本发明的技术方案整体描述如下(步骤1和步骤2为本发明的创新点):
步骤1、执行结构变异过程:在DiWi所包含的三种元素变异的基础上设计了四种结构变异规则即分别为插入if语句、插入while语句、插入函数体和调用函数语句和插入goto语句,从而解决了元素变异规则的局限性问题。
如图2所示,是结构变异过程示意图。结构变异过程具体包括以下步骤:
步骤1.1、创建材料池:首先从GCC开发者提供的测试程序中抽取if/while/语句和函数体,组成材料池;
步骤1.2、分析程序以选择有效的插入行,具体为:将函数体外的代码行视为无效插入行;除了禁止的printf语句、return语句、__builtin_abort语句的代码行之外,其余代码行均为有效插入行;调用本步骤的代码用于在构建代码的抽象语法树后表示各个结点,并记录节点信息。利用这些代码,本发明能够获取原始测试程序的重要信息:printf语句的位置、程序包含的变量以及对应的类型等等。这些信息用于实现筛选有效插入行、变量重命名等功能;
步骤1.3,选择待插入的语句,进行语句中的变量重命名,具体为:从材料池中选择if语句/while语句/函数体或者构建goto语句,随后将这些语句中的变量重命名为原始测试程序中的类型能兼容的变量,以保证生成的程序的合法性;如果程序中没有足够多的变量以供重命名,则报错并重新进行选择;
步骤2、基于强化学习生成变异程序:
本发明利用A2C算法进行基于强化学习的变异程序生成过程示意图。A2C算法包括两个轻量级神经网络(ANN和CNN)。其中,ANN根据历史信息预测本轮学习中动作的概率分布并根据这一分布选择某一动作;CNN预测选择这一动作能够获得的奖赏。如图3所示,为本发明的利用A2C算法进行基于强化学习的变异程序生成过程示意图。基于强化学习生成变异程序的流程具体包括以下步骤:学习者的多个学习状态(state)在上一轮学习过程中环境给予的奖赏(reward)后步入新的学习状态,状态由一个数组表示,该数组存储着每一个变异规则生成编译成功的变异程序的数量,作为ANN神经网络的输入,进行本轮学习中动作的概率分布的预测,并根据这一分布选择某一动作(动作指选择某变异规则并利用它生成变异程序);根据步骤1所选择出的最优的变异规则,从而生成能够有效定位编译器缺陷的变异程序,计算得到环境给予的奖赏;同时,将动作输入CNN神经网络,预测选择这一动作能够获得的奖赏,进而获得优势损失函数。
基于强化学习的“获得最优策略”这一特性,强化学习方法能够协助选择最优的变异规则,从而生成能够有效定位编译器缺陷的变异程序。
奖赏值由生成的变异程序的多样性以及变异程序与原始测试程序的相似性决定。
多样性与相似性分别由公式(1)和公式(2)定义。
其中,pi和pj表示生成的变异程序,f表示原始测试程序,dist()表示两个程序之间的“距离”,dist()由公式(3)定义:
其中,cova和covb分别表示程序a和程序b的编译覆盖情况,dist()越大,表示两个程序的覆盖距离差别越大。
在第t轮学习过程中,奖赏由以下三个公式(组)定义:
Qt=n(α·divt+(1+α)·simt) (4)
其中,α表示divt和simt线性组合的参数,n表示已经生成的编译成功的变异程序的数量,Qt表示本轮学习情况的“得分”,该得分将作为奖赏的重要考量标准,ΔQt表示本轮Qt和上一轮Qt-1的差值。
在每一轮学习过程中,利用公式(4)和公式(5)挑选高效的变异程序,移除了ΔQt<0对应的变异程序。这样的筛选规则保留了大量的优质变异程序,提升了技术的效率。Rewardt表示第t轮的奖赏,T(mi)表示历史上选择了变异规则mi的次数。这一计算旨在忽略某一轮学习中可能存在的特殊值,从而在未来更加理性且有效地更新学习策略。
在获取每一轮的奖赏时,都考虑了历史信息。而在计算优势损失函数(AdvantageLoss Function)时,本发明也考虑了未来的可能情况,使得强化学习模型不会落入局部最优解而忽略全局最优解。
优势损失函数的定义如公式(7)所示:
其中,γ表示未来可能奖赏的权重,γ越大,未来对于当前的决定的影响越大,PRt表示利用当前神经网络预测的第t轮学习所获得的奖赏,PRt+u表示采用当前CNN对于第t+u轮奖赏的预估值。
在公式(7)中,考虑了u轮学习过程,由于只有本轮学习的奖赏,而无法提前获得未来的奖赏,因此本发明采用了“估值”的策略,利用本轮(第t轮)的神经网络CNN预测未来几轮的奖赏。
最后,通过公式(8)所示的参数更新策略,在每一轮学习过程中得到环境的反馈后更新神经网络的参数ω,表达式如下:
其中,ω表示神经网络的参数,β表示学习率,Pω(at|st)表示在第t轮学习中,学习者处于状态st并选择执行动作at的概率,这一概率由ANN预测得到;
公式(7)与公式(8)中的超参数γ和β分别表示未来奖赏对于当前模型的影响程度,以及学习效率。两者的取值都与模型的学习效率和学习准确度有关。γ取值过小会导致模型陷入局部最优而非全局最优,然而γ取值过大会降低模型预测的准确性,并减缓模型收敛时间。同样,β取值过小或过大也会造成相似的对应结果。为了最小化这两个超参数对于结果的不良影响,本发明沿用已有研究的参数设置,分别赋值0.9和0.01。然而,对于超参数μ和α,由于未发现历史文献中存在对于这两个参数的设置的情况,超参数μ的意义与γ类似,都用于表示未来结果的重要程度。超参数α的意义在于线性地结合了多样性和相似性,并给予两者不同的权重。对于这两个超参数,本发明进行了大量相关实验以探究其对效果的影响。如图4所示,为超参数μ和α的影响结果示意图。由图可见,在α=0.8,μ=5时,针对于LLVM缺陷和GCC缺陷的实验结果最优。
步骤3、实现基于编译覆盖情况的缺陷定位:由步骤2生成多个编译成功的变异程序后,分析它们的编译覆盖情况,以定位缺陷。采用以下两个公式对于每一个参与编译过程的编译器文件进行打分,该得分表示文件的可疑值,可疑值越高表示该文件越有可能含有缺陷。在本发明的相关实验中,编译成功与否的标准是:测试程序中printf语句的输出值和return语句的返回值是否符合预期,以及程序是否在意料之外中止运行。
编译器文件的某一条语句s的可疑值的计算公式如下:
其中,efs表示运行了语句s且编译失败的变异程序的数量;nfs表示未运行语句s且编译失败的变异程序的数量;eps表示运行了语句s并编译成功的变异程序的数量。在本发明中,由于只有一个给定的未通过测试的测试程序,并且只考虑该程序在编译过程中涉及的编译器文件中的语句,因此efs=1且nfs=0。
每一个参与编译的编译器文件的可疑值的计算公式如下:
其中,nf表示在编译过程中,编译器文件f涉及到的全部语句的数量;
在计算了全部文件的可疑值后,将全部文件按照该值从大到小的顺序排序,可疑值排名位列前j名(j受制于开发人员的实验标准)的文件更有可能含有缺陷,优先检查这些文件会在较大程度上提高定位缺陷的效率。
为了准确地证明新型编译器缺陷定位技术RecBi的有效性并非偶然,将本发明的所有涉及随机性相关实验全部重复5次,取中位数作为最终结果。为了证明基于强化学习的变异程序生成策略的有效性,本发明采用控制变量的思想,创建了三个变体技术:1)使用DiWi采用的Metropolis-Hasting算法替代强化学习策略进行变异程序生成的技术RecBimh,2)用完全随机的变异程序生成策略取代强化学习策略的技术RecBirand,和3)在RecBirand的基础上保留了公式(4)和公式(5)用于移除低质量变异程序的技术RecBifilter。具体结果如表1所示,表中结果证实了采用强化学习方法进行变异程序生成的有效性。如表1所示,为本发明的新型编译器缺陷定位技术RecBi和DiWi的性能比较结果。
表1
Claims (2)
1.一种基于强化学习的编译器缺陷定位方法,其特征在于,该方法包括以下步骤:
步骤1、执行结构变异过程,具体包括以下步骤:
步骤1.1、创建材料池,即首先从GCC开发者提供的测试程序中抽取if、while语句和函数体,组成材料池;
步骤1.2、分析程序以选择有效的插入行,具体为:将函数体外的代码行视为无效插入行;除了禁止的printf语句、return语句、__builtin_abort语句的代码行之外,其余代码行均为有效插入行;调用本步骤的代码用于在构建代码的抽象语法树后表示各个结点,并记录节点信息;
步骤1.3,选择待插入的语句,进行语句中的变量重命名,具体为:从材料池中选择if语句、while语句和函数体、构建goto语句,随后将这些语句中的变量重命名为原始测试程序中的类型能兼容的变量;
如果程序中的变量数量不足以供重命名,则报错并重新进行选择;
步骤2、基于强化学习生成变异程序,具体步骤如下:
学习者的多个学习状态在上一轮学习过程中环境给予的奖赏后步入新的学习状态,状态由一个数组表示,该数组存储着每一个变异规则生成编译成功的变异程序的数量,作为ANN神经网络的输入,进行本轮学习中动作的概率分布的预测,并根据这一分布选择一动作;根据步骤1所选择出的最优的变异规则,从而生成能够有效定位编译器缺陷的变异程序,计算得到环境给予的奖赏;同时,将动作输入CNN神经网络,预测选择这一动作能够获得的奖赏,进而获得优势损失函数;
奖赏由生成的变异程序的多样性以及变异程序与原始测试程序的相似性决定;
多样性与相似性分别由公式(1)和公式(2)定义如下:
其中,pi和pj表示生成的变异程序,f表示原始测试程序,dist()表示两个程序之间的距离,dist()由公式(3)定义:
其中,cova和covb分别表示程序a和程序b的编译覆盖情况,
在第t轮学习过程中,奖赏由以下三个公式定义:
Qt=n(α·divt+(1+α)·simt) (4)
ΔQt=Qt-Qt-1
=(n-1)(α·Δdiv+(1-α)·Δsim)+(α·divt+(1-α)·simt) (5)
Δdivt=divt-divt-1,Δsimt=simt-simt-1
其中,α表示divt和simt线性组合的参数,n表示已经生成的编译成功的变异程序的数量,Qt表示本轮学习情况的得分,该得分将作为奖赏的重要考量标准,ΔQt表示本轮Qt和上一轮Qt-1的差值;Rewardt表示第t轮的奖赏,T(mi)表示历史上选择了变异规则mi的次数;
每一轮学习过程中,利用公式(4)和公式(5)挑选高效的变异程序,移除了ΔQt<0对应的变异程序;
优势损失函数的定义如公式(7)所示:
其中,γ表示未来可能奖赏的权重,PRt表示利用当前神经网络预测的第t轮学习所获得的奖赏,PRt+u表示采用当前CNN对于第t+u轮奖赏的预估值;
步骤3、实现基于编译覆盖情况的缺陷定位,即由步骤2生成多个编译成功的变异程序后,分析它们的编译覆盖情况,以定位缺陷;采用公式(9)和公式(10)对于每一个参与编译过程的编译器文件进行打分,该得分表示文件的可疑值,可疑值越高表示该文件越有可能含有缺陷;
编译器文件的某一条语句s的可疑值的计算公式如下:
其中,efs表示运行了语句s且编译失败的变异程序的数量;nfs表示未运行语句s且编译失败的变异程序的数量;eps表示运行了语句s并编译成功的变异程序的数量;
每一个参与编译的编译器文件的可疑值的计算公式如下:
其中,nf表示在编译过程中,编译器文件f涉及到的全部语句的数量;
在计算了全部文件的可疑值后,将全部文件按照该值从大到小的顺序排序,可疑值排名位列前j名的文件含有缺陷,j受制于开发人员的实验标准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880640.1A CN112181420B (zh) | 2020-08-27 | 2020-08-27 | 基于强化学习的编译器缺陷定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880640.1A CN112181420B (zh) | 2020-08-27 | 2020-08-27 | 基于强化学习的编译器缺陷定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181420A CN112181420A (zh) | 2021-01-05 |
CN112181420B true CN112181420B (zh) | 2022-06-28 |
Family
ID=73924156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010880640.1A Active CN112181420B (zh) | 2020-08-27 | 2020-08-27 | 基于强化学习的编译器缺陷定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181420B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204349B (zh) * | 2021-05-10 | 2023-02-03 | 西北大学 | 基于rl的超优化编译器建立、代码超优化方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522839A (zh) * | 2020-04-25 | 2020-08-11 | 华中科技大学 | 一种基于深度学习的自然语言查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930925B2 (en) * | 2009-10-20 | 2015-01-06 | Russell WAYNE Guenthner | Method for enabling compilation of a Cobol source program utilizing a two-stage compilation process, the Cobol source program including a mix of Cobol, C++ or JAVA statements, and optional OpenMP directives |
-
2020
- 2020-08-27 CN CN202010880640.1A patent/CN112181420B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522839A (zh) * | 2020-04-25 | 2020-08-11 | 华中科技大学 | 一种基于深度学习的自然语言查询方法 |
Non-Patent Citations (3)
Title |
---|
CDDLD Detection Framework:Combining Clustering with Deep Learning Classification for Semantic Clones;Sheneamer A;《IEEE INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND APPLICATIONS》;20190418;全文 * |
Continuous Incident Triage for Large-Scale Oline Service Systems;CHEN JJ et al.;《IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING》;20200602;全文 * |
深度神经网络测试研究综述;王赞等;《软件学报》;20200407;第31卷(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112181420A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Panichella et al. | A large scale empirical comparison of state-of-the-art search-based test case generators | |
Pizzoleto et al. | A systematic literature review of techniques and metrics to reduce the cost of mutation testing | |
Wardat et al. | Deeplocalize: Fault localization for deep neural networks | |
Chen et al. | Formal query building with query structure prediction for complex question answering over knowledge base | |
Kessentini et al. | A cooperative parallel search-based software engineering approach for code-smells detection | |
Mkaouer et al. | Recommendation system for software refactoring using innovization and interactive dynamic optimization | |
Miller et al. | Automatic test data generation using genetic algorithm and program dependence graphs | |
Amal et al. | On the use of machine learning and search-based software engineering for ill-defined fitness function: a case study on software refactoring | |
Fleck et al. | Marrying search-based optimization and model transformation technology | |
CN114117454A (zh) | 一种基于漏洞预测模型的种子优化方法 | |
Chen et al. | Active learning of Markov decision processes for system verification | |
CN112181420B (zh) | 基于强化学习的编译器缺陷定位方法 | |
Xie et al. | Coverage-guided fuzzing for feedforward neural networks | |
Romdhana et al. | IFRIT: Focused Testing through Deep Reinforcement Learning | |
CN114780967B (zh) | 基于大数据漏洞挖掘的挖掘评估方法及ai漏洞挖掘系统 | |
CN114064472B (zh) | 基于代码表示的软件缺陷自动修复加速方法 | |
Papadakis et al. | An effective path selection strategy for mutation testing | |
Dang et al. | Multi-task optimization-based test data generation for mutation testing via relevance of mutant branch and input variable | |
CN114356778A (zh) | 一种基于覆盖引导模糊测试的深度强化学习软件测试方法 | |
Grand et al. | Incramlsi: Incremental learning of accurate planning domains from partial and noisy observations | |
Gandhi | A survey on prospects of automated software test case generation methods | |
Liu et al. | Reinforcement compiler fuzzing | |
Romanov et al. | Prediction of types in python with pre-trained graph neural networks | |
Malhotra et al. | Multiple feature selection frameworks based on evolutionary computing and ensemble learning for software defect prediction | |
Jiang et al. | High-Reliability Compilation Optimization Sequence Generation Framework Based ANN |
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 |