CN111581086B - 一种基于RankNet的混合软件错误定位方法及系统 - Google Patents
一种基于RankNet的混合软件错误定位方法及系统 Download PDFInfo
- Publication number
- CN111581086B CN111581086B CN202010350329.6A CN202010350329A CN111581086B CN 111581086 B CN111581086 B CN 111581086B CN 202010350329 A CN202010350329 A CN 202010350329A CN 111581086 B CN111581086 B CN 111581086B
- Authority
- CN
- China
- Prior art keywords
- code
- ranknet
- software
- error
- statement
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012163 sequencing technique Methods 0.000 claims abstract description 32
- 238000012549 training Methods 0.000 claims abstract description 15
- 239000000284 extract Substances 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 17
- 238000001228 spectrum Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 11
- 238000011161 development Methods 0.000 claims description 10
- 230000004807 localization Effects 0.000 claims description 9
- 238000010606 normalization Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000015654 memory Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims 1
- 230000003068 static effect Effects 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 206010042635 Suspiciousness Diseases 0.000 description 5
- 230000008439 repair process Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000001959 radiotherapy Methods 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
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/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- 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/362—Software debugging
-
- 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
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
本发明提供一种基于RankNet的混合软件错误定位方法及系统,该方法包括:S1.RankNet排序模型的训练:所述RankNet排序模型自动提取代码语句的文本特征,再将所述文本特征与代码语句的数值特征结合并输入RankNet排序模型进行排序学习;S2.利用训练好的RankNet排序模型进行代码语句排序,得到可疑代码语句列表来进行软件错误定位。该方法和系统能快速精确地自动定位到软件的错误,大大增强了错误定位方法的自适应性,而且减少了由人为设定参数带来的局限性和不确定性。
Description
技术领域
本发明涉及软件错误定位技术领域,尤其涉及一种基于RankNet的混合软件错误定位及系统。
背景技术
随着计算机硬件的不断发展与普及,计算机软件也变得更庞大和更消耗资源。正如安迪比尔定律指出,硬件提高的性能,很快被软件消耗掉了。企业或者科研机构在开发软件过程中,通常使用测试驱动开发(Test-Driven Development,TDD)方法,即在编写功能代码之前先编写测试代码,再编写使测试用例通过的功能代码,通过测试来驱动整个开发的进行。TDD的方法可以编写出简洁高效的代码,并加速开发过程。在TDD的过程中,每当执行测试用例失败,即软件出现了故障,则需要开发人员对软件进行调试、错误定位和修复。当软件功能代码简单,代码量少时,开发者可以根据软件在执行测试用例期间的行为表现和输出,快速定位到错误所在并解决错误。可是在庞大复杂的软件代码面前,手动定位软件错误犹如大海捞针,费时费力。如果可以在调试的过程中能够根据软件的相关信息来自动定位软件的错误,那么开发者只需要专注于软件错误的修复,可以大大减少开发人员的调试时间,节约软件的开发成本。因此如何能够根据软件运行时的信息和行为表现,快速精确地定位到软件的错误,具有重要的经济价值和意义。
为了保证软件开发的质量,工业界在软件测试阶段投入了大量的人力物力。据统计,软件错误的定位和修复占据整个开发和更新过程开销的50%到80%,美国国家标准技术研究所(National Institute of Standards and Technology,NIST)在2002年的一份报告中指出,软件错误每年给美国经济造成595亿美元的损失(占美国GDP的0.6%)。到目前为止,软件错误带来的损失无疑是增加了。此外,对于医疗、航空和交通等安全至关重要的大型软件,其中的错误会导致非常严重的后果。例如20世纪80年代控制Threac-25放射治疗仪的代码中的错误直接导致了患者的死亡;1996年机载指导计算机中的错误导致了Ariane 5火箭发射不到一分钟后就被摧毁等等。
手动进行软件错误定位非常依赖于软件开发人员的直觉与经验,他们根据软件的行为表现分析和判断哪些代码更有可能导致了软件出错,然后再对错误软件进行修复。随着软件规模和复杂性的增加,软件更加容易出现错误,并且错误带来的损失也更加巨大。
如果可以自动化软件的错误定位,直接列出导致运行测试用例失败的代码,那么开发人员就只需要把注意力集中于错误的修复,可以很大程度上降低调试的开销。目前自动化软件错误定位的相关研究还不够成熟,根据分析过程中使用的信息类型,主要分为动态软件错误定位和静态软件错误定位。研究者提出的软件错误定位方案多数基于手动提取软件的静态或者动态信息的特征,结合基于频谱的软件错误定位技术的风险评估公式计算的程序元素可疑性,或者使用学习排序的方法进行错误定位。
专利CN103995780A公开了一种基于语句频度统计的程序错误定位方法,该方法对已有的Tarantula错误定位方法进行分析与改进,在原来的方法基础上考虑了语句的具体执行频度,然后将频度映射为0~1之间的数,提出了基于语句频度的错误定位方法。本发明充分考虑了语句的具体执行频度而不是统计语句在每次执行时的覆盖情况。只要某两条语句对应的测试用例语句频度不同,那么它们的可疑度值就会不同。该方法也是属于基于程序频谱的软件错误定位方法,需要将语句频度映射为0~1之间的数,作为可疑度值得权值,但是映射函数需要人工选择,执行频度与覆盖情况之间的比较需要衡量,并且不同场景的错误定位可能需要不同的映射函数。由于同一个基本块中的代码具有相同的频谱,最终通过该方法还是会得到相同的可疑性,因此很难在代码语句的级别对软件进行错误定位。
专利CN106886490A公开了一种基于失效轨迹的程序错误定位方法。本发明通过挑选一个合适的失效测试用例的执行谱即失效轨迹,再根据已有的基于频谱的软件错误定位方法的特定模型计算出语句可疑度序列在失效轨迹中的投影,按照语句可疑度大小从大到小一次排查错误语句。本发明通过失效轨迹中选取函数值最小的失效轨迹作为关键失效轨迹,将传统错误定位报告中的语句可疑度排序序列投影到关键失效轨迹上,最终提高错误定位的效果。该方法也是基于程序频谱的软件错误定位方法,没有解决相同基本块中代码具有相同可疑性的问题,并且已有研究表明,没有任何一种基于软件频谱的错误定位方法是可以适用于所有的错误定位场景。
专利CN106951372A公开了一种基于变量切片和关联规则的软件错误定位方法。本发明针对软件测试中错误定位效率低的问题,首先将JAVA程序语句进行变量切片,将所有变量切片信号信息作为事物数据库,然后利用关联分析得到关联规则集合,根据置信度和支持度由高到低的排列顺序,生成检查语句优先级次序;最后根据语句优先级次序越靠前越优先这检查的原则定位错误出现的具体位置。该方法使用了代码内容的信息,结合静态程序切片对软件进行错误定位,但是对大型软件生成静态程序切片,会带来一定时间上的开销。而且本发明使用的评测数据集的错误类型为植入错误,与真实的软件错误之间存在一定的差异性。
专利CN109857675A公开了一种利用语句类型的程序错误定位方法,根据每一个程序语句进行语句类型系数计算,并且结合基于频谱的软件错误定位方法计算每条程序语句的可疑度,对每条语句的可疑度从大到小排序,获取错误语句的可疑排名。该方法结合了代码本身的内容,可以在一定程度上提高错误定位的准确度,但是系数的计算依据存在一定的局限性,只考虑了分支条件或循环条件语句,其它语句类型则都归结于其它类型语句,因此对错误定位准确度的提高有限。
总而言之,现有的关于混合错误定位方法主要是手动提取代码语句的特征,再利用该提取的特征计算代码语句可疑性的权重系数,然后用权重系数与可疑性进行组合,计算最终的可疑性。由于手动提取的特征存在一定的局限性,而且计算的权重系数很难在静态特征和动态特征之间衡量,但是依然存在错误定位的准确度较低等问题。
发明内容
为解决上述问题,本发明提出一种基于RankNet的混合软件错误定位方法及系统,其能快速精确地自动定位到软件的错误,大大增强了错误定位方法的自适应性,而且减少了由人为设定参数带来的局限性和不确定性。
本发明提出一种基于RankNet的混合软件错误定位方法,包括:S1.RankNet排序模型的训练:所述RankNet排序模型自动提取代码语句的文本特征,再将所述文本特征与代码语句的数值特征结合并输入RankNet排序模型进行排序学习;S2.利用训练好的RankNet排序模型进行代码语句排序,得到可疑代码语句列表来进行软件错误定位。
本发明还提供一种基于RankNet的混合软件错误定位系统,包括:包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的基于RankNet的混合软件错误定位方法。
本发明的有益效果:利用RankNet排序模型自动提取代码语句的文本特征(即:静态特征),再和数值特征进行结合,使用学习排序算法自动对这些特征进行学习排序,计算代码语句最终的可疑性,大大增强了软件错误定位方法的自适应性,降低了软件开发人员调试的时间,为科研机构或者企业节省了开发成本,而且减少了由人为设定参数带来的局限性和不确定性。RankNet排序模型为同一个基本块中的文本信息分别计算一个不同的可疑性,解决了同一个基本块之间代码语句可疑性相同的问题,提高了软件错误定位的准确度。
附图说明
图1为本发明实施例中基于RankNet的混合软件错误定位系统结构图。
图2为本发明实施例中子网络结构图。
图3为本发明实施例中代码语句的统计特征。
图4为本发明实施例中代码语句的类型。
具体实施方式
下面结合具体实施方式并对照附图对本发明作进一步详细说明,应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
实施例一
本实施例针对Java程序中的代码语句进行混合软件错误定位。本实施例结合静态软件错误定位和动态软件错误定位,使用RankNet排序模型自动提取软件源代码的静态特征,并对错误的软件进行错误定位。
RankNet排序模型的训练
基于RankNet的混合软件错误定位系统结构如图1所示,RankNet排序模型包含两个子网络(如图1中左右对称的两个虚线框),这两个子网络共享参数权值。子网络的输入分为两部分,一部分是代码语句,例如代码语句本身的内容(图1中的代码语句1和代码语句2)、软件的开发历史、软件的错误报告等;另一部分是数值特征(图1中的其他特征1和其他特征2),例如其它动态错误定位技术计算的可疑性分数,或者代码语句的其它统计特征。
在RankNet排序模型的训练阶段,RankNet排序模型先使用子网络自动提取输入的代码语句的文本特征(也叫静态特征),如图1所示,子网络提取代码语句对(代码语句1和代码语句2)的相关特征形成代码语句向量,图1中的LSTM表示Long Short Term Memory,为一种神经网络,可以计算序列的特征,用于输出代码语句的向量。然后再将提取出的文本特征结合输入的数值特征(图1中的其他特征1和其他特征2),通过全连接神经网络为两个代码语句分别计算一个可疑性分数,最后两个代码语句的可疑性分数的差值经过Sigmoid函数后即可得到第一个代码语句(代码语句1)比第二个代码语句(代码语句2)更加可疑的概率。当模型训练完毕后,其中的子网络就具有计算代码语句可疑性分数的能力,只要给将测试集中一条代码语句的特征输入给子网络,即可得到该代码语句对应的可疑性分数。
子网络
子网络的网络结构如图2所示,子网络的输入分为代码语句和数值特征,对于代码语句,使用带有嵌入层的循环神经网络(图2中的嵌入矩阵)对符号处理器处理后的符号序列进行建模,其中图2中的“return root”表示的是一个例子,代表一行代码;“return”和“root”为上述代码进行分词之后的结果;<EOS>为终止符号,表示读入了一个完整的代码语句。循环神经网络输出的代码语句向量再与其它数值特征进行合并,得到一个更高维度的特征向量,然后这个特征向量经过一个含隐藏层的全连接神经网络后,最终得到一个输出,该输出即可认为是代码语句的可疑性分数。文本特征提取的对象不仅可以是代码语句,还可以是代码的错误报告或者软件开发历史等其它文本类型信息,数值特征不仅可以是频谱、其它基于频谱的错误定位(SBFL,Spectrum Based Fault Localization)方法计算的可疑性分数,还可以是其它动态错误定位技术计算的可疑性分数或者源代码的统计特征等等,例如代码语句的类型、代码的长度或者代码语句中操作符的个数等统计信息。
目标函数
由于真实场景中,只有少部分代码存在错误,因此基于回归和分类的机器学习模型会存在数据不均衡的问题,本实施例采用的RankNet是一种基于文档对的学习排序技术,对同一个错误软件中的代码语句构造代码语句对,即错误的代码语句和正确的代码语句两两组合,再通过RankNet判断第一个代码语句是否比第二个代码语句的可疑性更高。
RankNet是一种孪生网络,即RankNet中的两个子网络共享权值。RankNet在训练的过程中需要减少排序列表中的逆序对,因此RankNet将学习排序问题转化成了一个二分类问题,使用交叉熵作为训练模型的目标函数。给定一对代码语句,sigmoid函数可以将输出映射到0和1之间的数,这个数再用来计算交叉熵。
交叉熵的公式如下所示:
其中L表示损失;即模型的预测值与真实值之间的差距;N表示一个批次中样本的数量;yi表示真实的标签,yi的值为0或1,当yi为1时,表示第一代码语句有错,第二代码语句没错,也就是第一代码语句更可疑,当yi为0时,则相反;表示模型的预测值,即RankNet排序模型认为代码语句对中第一代码语句比第二代码语句更加可疑的概率。
数值特征
本实施例使用了代码语句的多种特征,其中文本特征为从错误软件的代码语句中所提取出的文本特征,数值特征不仅包括代码语句在执行测试用例期间的频谱,还可以包括:代码语句的统计特征和代码语句的类型,如图3和图4所示。
在RankNet排序模型的训练阶段,由于可疑性表示代码语句导致软件出错的可能性,所以需要对输入RankNet的高维度特征向量进行归一化处理。归一化是利用特征的最大最小值,对原始数据的线性变换。这是一种最简单的将数据范围缩放到0到1之间的方法,归一化不仅能够提高计算的精度,还可以提升模型的收敛速度。归一化的公式如下所示:
其中vi和ui分别表示特征向量中第i个代码语句的特征向量u归一化之后和归一化之前的值。max(u)和min(u)分别表示同一个错误软件中所有代码语句的特征向量u的最大值和最小值。得到了代码语句归一化后的特征向量后,通过对同一个错误软件中的代码语句构造代码语句对,然后使用RankNet对代码语句进行学习和排序。
代码语句排序
RankNet训练完毕后,其中的子网络就具备计算代码语句可疑性的功能,因此对于新的代码语句,只需要提取其对应的特征向量,输入RankNet的子网络中,子网络的输出即为该代码语句导致软件出错的可能性。将所有代码语句输入子网络后再根据每个代码语句的可疑性进行排序,最终得到了可疑代码语句列表。
本实施例还提供一种基于RankNet的混合软件错误定位系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的基于RankNet的混合软件错误定位方法。
有益效果
根据RankNet自动提取的代码语句的静态特征,并将其与其它数值特征结合,使用学习排序算法自动对这些特征进行学习排序,通过子网络计算每一个代码语句的可疑性,与目前研究手动设计映射函数、计算权重系数不同,使用的学习排序系统是根据深度学习中监督学习的方法,自动为每一维特征计算其权重系数,计算代码语句最终的可疑性,大大增强了错误定位方法的自适应性,而且减少了由人为设定参数带来的局限性和不确定性。由于不同错误代码语句具有不同的静态特征,RankNet为同一个基本块中的代码语句分别计算一个不同的可疑性,不需要任何人为的设定,解决了同一个基本块之间代码语句可疑性相同的问题,提高了软件错误定位的准确度,降低了软件开发人员调试的时间,为科研机构或者企业节省了开发成本。
另外,基于RankNet的软件错误定位方法相对于利用自编码器的软件错误定位方法,不需要额外训练自编码器,就可以加速模型训练的效率与错误定位的速度;优化目标只有错误定位的准确率,避免在训练自编码器时引入额外的误差;提取的代码特征维度可以随意调节,无需过高的维度来保存代码语句的全部信息,避免提取冗余特征,节省了模型的存储开销。
实施例二
与实施例一的不同在于,本实施例中错误定位的软件不局限于Java程序,循环神经网络提取特征的粒度不局限于代码语句,还包括函数和文件等级别。循环神经网络提取特征的对象不局限于代码内容,还包括软件的开发历史、软件的错误报告等相关内容。循环神经网络提取的特征维度不局限于固定的值,应该根据提取特征对象内容的长度动态调整。
以上内容是结合具体/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。
Claims (8)
1.一种基于RankNet的混合软件错误定位方法,其特征在于,包括以下步骤:
S1.RankNet排序模型的训练:所述RankNet排序模型自动提取代码语句的文本特征,再将所述文本特征与代码语句的数值特征结合并输入RankNet排序模型进行排序学习;
所述RankNet排序模型包含两个子网络,所述两个子网络共享参数权值;步骤S1包括:
S11.对同一个错误软件中的代码语句构造代码语句对,使用所述两个子网络分别提取代码语句对中第一代码语句的第一文本特征以及第二代码语句的第二文本特征;
S12.将所述第一文本特征与第一代码语句的第一数值特征结合形成第一高维度特征向量,经RankNet排序模型训练得到第一可疑性分数;将所述第二文本特征与第二代码语句的第二数值特征结合形成第二高维度特征向量,经RankNet排序模型训练得到第二可疑性分数;
S13.将所述第一可疑性分数与所述第二可疑性分数的差值经过Sigmoid函数计算得到所述第一代码语句比所述第二代码语句更加可疑的概率;
所述第一高维度特征向量和所述第二高维度特征向量分别进行归一化处理后再输入RankNet排序模型进行训练;
S2.利用训练好的RankNet排序模型进行代码语句排序,得到可疑代码语句列表来进行软件错误定位。
3.如权利要求1所述的方法,其特征在于,所述步骤S13中,所述差值经过Sigmoid函数计算后用于计算交叉熵,并使用交叉熵作为RankNet排序模型的目标函数。
5.如权利要求1所述的方法,其特征在于,所述数值特征包括下列中的一种或多种:代码语句在执行测试用例期间的频谱,基于频谱的错误定位方法计算的可疑性分数,代码语句的统计特征,代码语句的类型。
6.如权利要求1所述的方法,其特征在于,所述RankNet排序模型自动提取代码语句的文本特征中,文本特征提取的对象包括:代码语句本身的内容,软件的开发历史,软件的错误报告。
7.如权利要求1所述的方法,其特征在于,所述文本特征的粒度包括:代码语句,函数和文件。
8.一种基于RankNet的混合软件错误定位系统,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现权利要求1-7任一项所述的基于RankNet的混合软件错误定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010350329.6A CN111581086B (zh) | 2020-04-28 | 2020-04-28 | 一种基于RankNet的混合软件错误定位方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010350329.6A CN111581086B (zh) | 2020-04-28 | 2020-04-28 | 一种基于RankNet的混合软件错误定位方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111581086A CN111581086A (zh) | 2020-08-25 |
CN111581086B true CN111581086B (zh) | 2023-03-31 |
Family
ID=72113159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010350329.6A Active CN111581086B (zh) | 2020-04-28 | 2020-04-28 | 一种基于RankNet的混合软件错误定位方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111581086B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528290B (zh) * | 2020-12-04 | 2023-07-18 | 扬州大学 | 漏洞定位方法、系统、计算机设备和存储介质 |
CN112685314A (zh) * | 2021-01-05 | 2021-04-20 | 广州知图科技有限公司 | 一种JavaScript引擎安全测试方法及测试系统 |
CN115510782B (zh) * | 2022-08-31 | 2024-04-26 | 芯华章科技股份有限公司 | 定位验证错误的方法、电子设备和存储介质 |
CN117744714A (zh) * | 2023-12-28 | 2024-03-22 | 南通大学 | 一种基于回调的深度神经网络错误定位方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886490A (zh) * | 2016-12-30 | 2017-06-23 | 浙江理工大学 | 一种基于失效轨迹的程序错误定位方法 |
CN107577603A (zh) * | 2017-08-31 | 2018-01-12 | 中国科学院软件研究所 | 一种基于测试用例构建决策树的程序条件语句自动化修复系统及方法 |
-
2020
- 2020-04-28 CN CN202010350329.6A patent/CN111581086B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886490A (zh) * | 2016-12-30 | 2017-06-23 | 浙江理工大学 | 一种基于失效轨迹的程序错误定位方法 |
CN107577603A (zh) * | 2017-08-31 | 2018-01-12 | 中国科学院软件研究所 | 一种基于测试用例构建决策树的程序条件语句自动化修复系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111581086A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111581086B (zh) | 一种基于RankNet的混合软件错误定位方法及系统 | |
US12014282B2 (en) | Data processing method and apparatus, electronic device, and storage medium | |
US10678673B2 (en) | Software program fault localization | |
Goodreau et al. | A statnet tutorial | |
US11915104B2 (en) | Normalizing text attributes for machine learning models | |
CN112699377A (zh) | 基于切片属性图表示学习的函数级代码漏洞检测方法 | |
EP4075281A1 (en) | Ann-based program test method and test system, and application | |
CN111459799A (zh) | 一种基于Github的软件缺陷检测模型建立、检测方法及系统 | |
Zhao et al. | Deep neural network based on android mobile malware detection system using opcode sequences | |
CN110008309A (zh) | 一种短语挖掘方法及装置 | |
CN118012767B (zh) | 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法 | |
US11995573B2 (en) | Artificial intelligence system providing interactive model interpretation and enhancement tools | |
CN110245232A (zh) | 文本分类方法、装置、介质和计算设备 | |
He et al. | On distribution shift in learning-based bug detectors | |
CN113672931A (zh) | 一种基于预训练的软件漏洞自动检测方法及装置 | |
CN111539612A (zh) | 一种风险分类模型的训练方法和系统 | |
CN112882899B (zh) | 一种日志异常检测方法及装置 | |
Gruner et al. | Cross-domain evaluation of a deep learning-based type inference system | |
CN116701222A (zh) | 基于特征加权迁移学习的跨项目软件缺陷预测方法及系统 | |
CN115422092A (zh) | 一种基于多方法融合的软件bug定位方法 | |
CN116185684A (zh) | 一种服务器故障根因分析模型的构建方法及应用 | |
CN114706769B (zh) | 基于日志的面向回归测试的黑盒测试用例排序方法 | |
Wang et al. | Multi-type source code defect detection based on textcnn | |
CN115757141A (zh) | 基于异构图表示学习的软件缺陷自动定位方法 | |
CN115080386A (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 |