CN110427320B - 一种轻量级嵌入式程序控制流异常定位检测方法 - Google Patents
一种轻量级嵌入式程序控制流异常定位检测方法 Download PDFInfo
- Publication number
- CN110427320B CN110427320B CN201910672958.8A CN201910672958A CN110427320B CN 110427320 B CN110427320 B CN 110427320B CN 201910672958 A CN201910672958 A CN 201910672958A CN 110427320 B CN110427320 B CN 110427320B
- Authority
- CN
- China
- Prior art keywords
- tracking point
- tracking
- sample set
- training
- control flow
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种轻量级嵌入式程序控制流异常定位检测方法,包括:步骤1、插装:将程序中含有函数调用的条件测试语句开始处作为插装切入点,插入追踪点监视变量,动态监控程序执行过程中追踪点监视变量后函数的调用情况;步骤2、数据收集及预处理:收集追踪点监视变量的执行序列数据并对序列数据进行预处理;步骤3、神经网络模型:将处理后的追踪点序列数据放入神经网络模型中训练,模型训练完成后用于检测异常追踪点序列;步骤4、建立假设检验方法:检测系统状态是否发生变化;步骤5:将异常报告给开发人员,进行异常诊断;本发明是一种低开销的控制流追踪方法适合资源受限系统,而且提供语句级的诊断信息。
Description
技术领域
本发明属于嵌入式系统检测领域,涉及一种轻量级嵌入式程序控制流异常定位检测方法。
背景技术
随着物联网技术的快速发展,许多具有社会和科研意义的应用被部署到现实生活中,而这些物联网的应用都是基于嵌入式系统实现的。通常嵌入式网络系统的部署环境较为恶劣,为了提高嵌入式网络的可用性,开发人员需要更加有效、便捷和准确的状态检测与异常诊断工具。在嵌入式环境下,需要对采集到的数据进行异常检测,由于采集到的数据较多,靠人工的方式检测显然是一项巨大的工作量,而通过训练神经网络的方式,能大大提高异常检测的效率,这种方法无需程序代码,不受平台限制,具有相当强的适应性和广泛的应用前景。
目前,在嵌入式系统的异常检测技术方面,国内外都进行了相关研究。例如,利用感知节点的测量值,通过比较正常情况下的邻居节点与诊断节点的差异来进行故障分析;通过分析节点内部执行函数的比例来识别那些比例异常函数的行为进行异常诊断。但是,现有的这些研究大多数都是粗粒度的异常检测,无法精确定位到出现异常的位置。
发明内容
鉴于以上现有技术中存在的技术问题,本发明的目的在于提供一种轻量级嵌入式程序控制流异常定位检测方法,这种异常定位检测方法是一种能够有效检测异常的发生并提供程序语句级别诊断信息的细粒度检测方法,此方法操作方便,能快速、准确的定位异常序列,提高异常处理的有效性,并且对任务程序的入侵性较小。
为实现上述目的,本发明有如下技术方案:
步骤1、插装;
确定项目中对应的源码,生成相应的可编译文件,对可编译文件进行程序控制流分析:
在控制流的分支结构中,筛选出含有函数调用的if-else语句和switch-case语句;
选择在有函数调用的上述两种语句开始处作为插装切入点,在插装切入点位置插入追踪点监视变量,最后,将插装后的可编译文件编译生成可执行文件;
步骤2、数据收集及预处理;
将步骤1得到的可执行文件导入仿真环境中执行,记录追踪点监视变量的执行序列;
对追踪点监视变量的执行序列预处理,过滤非序列的文本数据,然后对序列数据去重得到不同追踪点的数量,将追踪点数量基于追踪点种类对数据使用one-hot编码;
步骤3、训练神经网络模型;
使用步骤2编码后的数据对神经网络模型进行训练,训练完后检测异常追踪点序列;
步骤4、建立假设检验方法;
根据实际执行追踪点的概率分布和神经网络模型预测的概率分布检验系统状态是否变化;
步骤5、报告异常事件,根据异常追踪点的监视变量位置找到对应的函数调用关系进行异常诊断。
步骤1在所述追踪点监视变量上设有明显的标志位,该标志位记录当前追踪点监视变量的插入位置,用于动态监控程序执行过程中追踪点监视变量后函数的调用情况。
所述的步骤3对神经网络模型进行基于交叉熵损失函数与随机梯度下降进行训练。
所述的步骤3训练神经网络模型的具体步骤如下:
3-1.设置模型训练超参数;
设置模型训练的追踪点序列窗口,表示根据过去的w个追踪点预测当前追踪点,作为追踪点序列的上文信息,w∈N*;设置模型训练的网络深度;设置模型训练的迭代次数;
设置模型训练的阈值,当正确率大于设置阈值,结束训练;
3-2.检验追踪点异常;
根据追踪点序列的上文信息,模型输出当前追踪点的预测概率,对预测概率进行分析,概率较低的判定是异常追踪点;否则判定为正常追踪点。
所述的步骤4建立假设检验方法的具体步骤如下:
4-1.数据预处理;
为追踪点序列的上文信息设置一个观测计数向量,每次实际执行追踪点后,观测计数向量中对应的追踪点计数累加1,将每个追踪点计数除以相同上文信息观测计数向量的总和得到实际追踪点的概率分布;
4-2.建立假设检验模型进行评判;
首先假定样本集之间的分布无显著差异,对预测样本集和实际样本集的偏差作加权平方和,并以此与已知的显著水平选取阈值做比较,从而判断假设是否成立,若成立,则认为样本集之间无显著差异,若不成立,则认为样本集之间有差异,此样本集为异常的。
所述的步骤4-2具体包括以下步骤:
4-2-1.假设条件H0:μ1=μ0;
μ1为预测样本集的概率分布,μ0为实际样本集的概率分布;选取步骤3中的正常追踪点的预测概率作为预测样本集;将4-1的实际追踪点执行的概率分布作为实际样本集;
4-2-2.使用χ2检验法计算预测样本集和实际样本集偏差的加权平方和;
式中,mi为追踪点i在追踪点上文相同情况下实际执行的观测频数,bi为相同追踪点上文信息的情况下不同的追踪点,l为追踪点的个数,nPj(bi)为程序轨迹n次执行追踪点上文时追踪点执行的预测频数,其中,Pj(bi)为步骤3中的正常追踪点的预测概率;
4-2-4.评判标准:若计算得到的预测样本集和实际样本集的统计量χ2大于等于阈值则认为假设条件H0不成立,即预测样本集和实际样本集之间有差异,以此判断系统状态异常;若χ2小于阈值则认为假设条件H0成立,即认为系统状态正常。
根据以上技术方案,本发明相较于现有技术的有益效果是:
(1)适合资源受限系统,在分支点插入监视变量是低开销控制流追踪方法。
(2)提供语句级的诊断信息,开发人员可以根据追踪点异常诊断信息检查源代码并快速定位异常原因。
在控制流的分支结构中,主要包括if-else语句、switch-case语句、break语句、continue语句、setjmp/longjmp函数和goto语句。大量使用setjmp/longjmp函数与goto语句会造成源代码的控制流程复杂、混乱,使得程序可读性变差,并且break语句、continue语句、setjmp/longjmp函数、goto语句本身不包含条件测试,因此在常规的编程方式下完成程序的分支功能需要结合的条件测试语句是if-else语句和switch-case语句,选择在有函数调用的上述两种语句开始处作为插装切入点,此种方式能够大大减少插装点的数量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的方法流程图
图2为常用操作系统中含有函数调用的分支语句占系统代码行数比例对比图;
图3为追踪点序列数据记录示意图;
图4为本发明具体实施例中分支位置插入追踪点监视变量示意图;
图5为本发明具体实施例中异常追踪点诊断报告与对应函数位置示意图;
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的一种轻量级嵌入式程序控制流异常定位检测方法,包括以下步骤:
步骤1:插装;
确定项目中对应的源码,生成相应的可编译文件,对所述可编译文件进行程序控制流分析,在控制流的分支结构中,首先常规编程方式下完成分支功能需要结合的条件测试语句是if-else语句和switch-case语句,第二筛选出含有函数调用的上述两种语句,最后选择在有函数调用的上述两种语句开始处作为插装切入点,此种方式可以大大减少插装点的数量。
在插装切入点位置插入追踪点监视变量,所述追踪点监视变量上有明显的标志位,该标志位记录当前追踪点监视变量的插入位置,用于动态监控程序执行过程中追踪点监视变量后函数的调用情况。最后将插装后的可编译文件编译生成可执行文件。
其中,在控制流的分支结构中,主要包括if-else语句、switch-case语句、break语句、continue语句、setjmp/longjmp函数和goto语句。大量使用setjmp/longjmp函数与goto语句会造成源代码的控制流程复杂、混乱,使得程序可读性变差,并且break语句、continue语句、setjmp/longjmp函数、goto语句本身不包含条件测试,因此在常规的编程方式下完成程序的分支功能需要结合的条件测试语句是if-else语句和switch-case语句。
步骤2:数据收集及预处理;
将步骤1中可执行文件导入仿真环境中执行,记录追踪点监视变量的执行序列。对追踪点序列数据预处理,过滤非序列的文本数据,然后对序列数据去重得到不同追踪点的数量,将追踪点数量基于追踪点种类对数据使用one-hot编码。
步骤3:神经网络模型;
使用步骤2中编码后的数据对神经网络模型进行基于交叉熵损失函数与随机梯度下降进行训练,模型训练完成后用于检测异常追踪点序列。具体的:
3-1.设置模型训练超参数;
设置模型训练的追踪点序列窗口,表示根据过去的w(w∈N*)个追踪点预测当前追踪点,相当于追踪点序列的上文信息;设置模型训练的网络深度;设置模型训练的迭代次数;设置模型训练的阈值,当正确率大于设置阈值,结束训练。
3-2.检验追踪点异常;
将3-1所述的网络模型检验含有异常行为的追踪点序列,根据追踪点序列的上文信息,模型输出预测结果和对应概率,对所述概率进行分析,概率较低的认为是异常追踪点;否则判定为正常追踪点。
步骤4:建立假设检验方法;
根据实际执行追踪点的概率分布和神经网络模型预测的概率分布检验系统状态是否变化。
4-1.数据预处理过程;
在追踪点序列上文信息相同的情况下,可能会对应不同的追踪点,因此为追踪点上文设置一个观测计数向量,每次实际执行追踪点后,观测计数向量中对应的追踪点计数累加1,将每个追踪点计数除以相同上文信息观测计数的总和得到实际追踪点的概率分布。
4-2.建立假设检验模型;
假设检验方法的基本原理:首先假定样本集之间的分布无显著差异,对预测样本集和实际样本集的偏差作加权平方和,并以此与已知的显著水平选取阈值做比较,从而判断假设是否成立,若成立,则认为样本集之间无显著差异,若不成立,则认为样本集之间有差异,此样本集为异常的。
4-2-1.假设条件H0:μ1=μ0;
μ1为预测样本集的概率分布,μ0为实际样本集的概率分布;本发明选取步骤3中的正常追踪点预测概率作为预测样本集,将4-1的实际追踪点执行的概率分布作为实际样本集;
4-2-2.使用χ2检验法计算预测样本集和实际样本集偏差的加权平方和;
式中,mi为追踪点i在追踪点上文相同情况下实际执行的观测频数,bi为相同追踪点上文的情况下不同的追踪点,l为追踪点的个数,nPj(bi)为程序轨迹n次执行追踪点上文时追踪点执行的预测频数,其中Pj(bi)为步骤3中的正常追踪点预测概率;
4-2-4.评判标准:若计算得到的预测样本集和实际样本集的统计量χ2大于等于阈值则认为假设条件H0不成立,即预测样本集和实际样本集之间有差异,以此判断系统状态异常;若χ2小于阈值则认为假设条件H0成立,即认为系统状态正常。
步骤5:将上述的异常事件报告给开发人员,开发人员根据异常追踪点的监视变量位置找到对应的函数调用关系进行异常诊断。
实施例
以下通过具体实施例对本发明的进行验证:
本发明实施例中使用的嵌入式操作系统是TinyOS 2.1.x和Telosb节点。使用Cooja仿真器运行网络程序,Cooja是一款具有指令集精度的传感器网络仿真器。在Cooja中重现外部存储器件失效故障并利用本发明检测到此异常,本发明给出异常任务诊断信息,该诊断信息可以准确定位到发生异常的函数位置。
Telosb节点使用STM25P作为外部存储器。通过修改Cooja中STM25P80仿真器代码使其不对来自TinyOS节点的任何读写操作做出响应重现了这一故障。
使用本发明对外部存储器件失效故障进行检测,参考图4中的诊断报告可知,追踪点125开始程序出现异常的执行概率,其中较明显的特征是126,129追踪点被执行的概率变为0.0,与预测值相差较大,而127与128追踪点执行概率变为1。通过诊断报告知道程序总是执行125→127→128轨迹,查看该路径源代码,进一步,发现了表1所示的异常任务。
表1实施例中的异常任务
追踪点 | 执行任务 |
125 | !Stm25pSpiP_m_is_writing |
126 | Stm25pSpiP_ClientResource_granted() |
127 | Stm25pSpiP_sendCmd |
128 | Stm25pSpiP_releaseAndRequest() |
129 | Stm25pSpiP_signalDone(SUCCESS) |
125分支由变量!Stm25pSpiP_m_is_writing决定执行哪条轨迹,当Stm25驱动程序向其写数据时,该变量为真,其对应分支路径为125→127;当驱动程序停止写数据时该变量为假,对应分支路径为125→126。因此可以得到异常原因是STM25P驱动程序一直在向STM25PFlash写数据,基于这一点诊断信息,开发人员容易得到写数据失败导致重复写数据的原因。进一步检查代码可以得到127追踪点由函数Stm25pSpiP_sendCmd函数返回值最低决定,当返回值最低为1时,执行127→128路径,否则执行127→129路径。因此可以得到异常的原因是Stm25pSpiP_sendCmd函数返回值的最低位总是为1。
因为128之后无追踪点,所以根据函数的顺序调用得到Stm25pSpiP_sendCmd函数返回值来自于HplMsp430Usart0P_Usart_rx函数返回U0RXBUF的值,发现导致异常的原因是U0RXBUF的值总是最低位为1。
U0RXBUF是Telosb平台的主控微处理器MSP430F1611的一个寄存器,该寄存器作为UART串口接收寄存器或者SPI串行协议的接收寄存器,其对应的引脚为P3.0,在使用M25P80时处理器该引脚处于SPI模式。该引脚连接CC2420射频芯片与M25P80芯片2引脚,并外接一个10k上拉电阻。至此开发人员容易得到串行接收引脚由于上拉电阻导致该引脚总是被置高进而导致sendCmd函数总是返回1造成写数据失败,程序发生异常。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种轻量级嵌入式程序控制流异常定位检测方法,其特征在于,包括以下步骤:
步骤1、插装;
确定项目中对应的源码,生成相应的可编译文件,对可编译文件进行程序控制流分析:
在控制流的分支结构中,筛选出含有函数调用的if-else语句和switch-case语句;
选择在有函数调用的上述两种语句开始处作为插装切入点,在插装切入点位置插入追踪点监视变量,最后,将插装后的可编译文件编译生成可执行文件;
步骤2、数据收集及预处理;
将步骤1得到的可执行文件导入仿真环境中执行,记录追踪点监视变量的执行序列;
对追踪点监视变量的执行序列预处理,过滤非序列的文本数据,然后对序列数据去重得到不同追踪点的数量,将追踪点数量基于追踪点种类对数据使用one-hot编码;
步骤3、训练神经网络模型;
使用步骤2编码后的数据对神经网络模型进行训练,训练完后检测异常追踪点序列;
步骤4、建立假设检验方法;
根据实际执行追踪点的概率分布和神经网络模型预测的概率分布检验系统状态是否变化;
所述的步骤4建立假设检验方法的具体步骤如下:
4-1.数据预处理;
为追踪点序列的上文信息设置一个观测计数向量,每次实际执行追踪点后,观测计数向量中对应的追踪点计数累加1,将每个追踪点计数除以相同上文信息观测计数向量的总和得到实际追踪点的概率分布;
4-2.建立假设检验模型进行评判;
首先假定样本集之间的分布无显著差异,对预测样本集和实际样本集的偏差作加权平方和,并以此与已知的显著水平选取阈值做比较,从而判断假设是否成立,若成立,则认为样本集之间无显著差异,若不成立,则认为样本集之间有差异,此样本集为异常的;
所述的步骤4-2具体包括以下步骤:
4-2-1.假设条件H0:μ1=μ0;
μ1为预测样本集的概率分布,μ0为实际样本集的概率分布;选取步骤3中的正常追踪点的预测概率作为预测样本集;将4-1的实际追踪点执行的概率分布作为实际样本集;
4-2-2.使用χ2检验法计算预测样本集和实际样本集偏差的加权平方和;
式中,mi为追踪点i在追踪点上文相同情况下实际执行的观测频数,bi为相同追踪点上文信息的情况下不同的追踪点,l为追踪点的个数,nPj(bi)为程序轨迹n次执行追踪点上文时追踪点执行的预测频数,其中,Pj(bi)为步骤3中的正常追踪点的预测概率;
4-2-4.评判标准:若计算得到的预测样本集和实际样本集的统计量χ2大于等于阈值则认为假设条件H0不成立,即预测样本集和实际样本集之间有差异,以此判断系统状态异常;若χ2小于阈值则认为假设条件H0成立,即认为系统状态正常;
步骤5、报告异常事件,根据异常追踪点的监视变量位置找到对应的函数调用关系进行异常诊断。
2.根据权利要求1所述的轻量级嵌入式程序控制流异常定位检测方法,其特征在于:步骤1在所述追踪点监视变量上设有明显的标志位,该标志位记录当前追踪点监视变量的插入位置,用于动态监控程序执行过程中追踪点监视变量后函数的调用情况。
3.根据权利要求1所述的轻量级嵌入式程序控制流异常定位检测方法,其特征在于:所述的步骤3对神经网络模型进行基于交叉熵损失函数与随机梯度下降进行训练。
4.根据权利要求1或3所述的轻量级嵌入式程序控制流异常定位检测方法,其特征在于:所述的步骤3训练神经网络模型的具体步骤如下:
3-1.设置模型训练超参数;
设置模型训练的追踪点序列窗口,表示根据过去的w个追踪点预测当前追踪点,作为追踪点序列的上文信息,w∈N*;设置模型训练的网络深度;设置模型训练的迭代次数;
设置模型训练的阈值,当正确率大于设置阈值,结束训练;
3-2.检验追踪点异常;
根据追踪点序列的上文信息,模型输出当前追踪点的预测概率,对预测概率进行分析,概率较低的判定是异常追踪点;否则判定为正常追踪点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910672958.8A CN110427320B (zh) | 2019-07-24 | 2019-07-24 | 一种轻量级嵌入式程序控制流异常定位检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910672958.8A CN110427320B (zh) | 2019-07-24 | 2019-07-24 | 一种轻量级嵌入式程序控制流异常定位检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427320A CN110427320A (zh) | 2019-11-08 |
CN110427320B true CN110427320B (zh) | 2022-10-11 |
Family
ID=68412242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910672958.8A Active CN110427320B (zh) | 2019-07-24 | 2019-07-24 | 一种轻量级嵌入式程序控制流异常定位检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427320B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230244946A1 (en) * | 2022-01-28 | 2023-08-03 | International Business Machines Corporation | Unsupervised anomaly detection of industrial dynamic systems with contrastive latent density learning |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576850A (zh) * | 2009-06-10 | 2009-11-11 | 南京航空航天大学 | 一种改进的面向宿主的嵌入式软件白盒测试方法 |
CN101833500A (zh) * | 2010-04-07 | 2010-09-15 | 南京航空航天大学 | 一种基于Agent的嵌入式软件智能测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7017861B2 (ja) * | 2017-03-23 | 2022-02-09 | 株式会社日立製作所 | 異常検知システムおよび異常検知方法 |
-
2019
- 2019-07-24 CN CN201910672958.8A patent/CN110427320B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576850A (zh) * | 2009-06-10 | 2009-11-11 | 南京航空航天大学 | 一种改进的面向宿主的嵌入式软件白盒测试方法 |
CN101833500A (zh) * | 2010-04-07 | 2010-09-15 | 南京航空航天大学 | 一种基于Agent的嵌入式软件智能测试方法 |
Non-Patent Citations (2)
Title |
---|
基于神经网络的面向函数调用路径的错误定位;赵芳等;《计算机仿真》;20160615(第06期);全文 * |
神经网络在软件故障定位中的应用研究;焦栋斌;《中国优秀博硕士学位论文全文数据库(硕士)》;20121015(第10期);第4.1-4.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN110427320A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lo et al. | SMArTIC: Towards building an accurate, robust and scalable specification miner | |
Liblit et al. | Scalable statistical bug isolation | |
Fu et al. | Execution anomaly detection in distributed systems through unstructured log analysis | |
CN104077144B (zh) | 基于多线程程序约束构建的数据竞争检测与证据生成方法 | |
CN105868116A (zh) | 基于语义变异算子的测试用例生成和优化方法 | |
Nagappan et al. | Early estimation of software quality using in-process testing metrics: a controlled case study | |
Xiang et al. | Detecting data inconsistency based on the unfolding technique of petri nets | |
Ozcelik et al. | Seer: a lightweight online failure prediction approach | |
CN107193732B (zh) | 一种基于路径比对的校验函数定位方法 | |
CN105468517B (zh) | 一种基于黑盒测试用例约简的统计错误定位方法 | |
CN1963783A (zh) | 对计算机程序进行运行时分析的方法和系统 | |
Nugroho et al. | Assessing uml design metrics for predicting fault-prone classes in a java system | |
Emam et al. | Inferring extended probabilistic finite-state automaton models from software executions | |
He et al. | Enhancing spectrum-based fault localization using fault influence propagation | |
CN115098292B (zh) | 应用程序崩溃根原因识别方法、装置及电子设备 | |
CN104715190A (zh) | 一种基于深度学习的程序执行路径的监控方法及系统 | |
US20090182994A1 (en) | Two-level representative workload phase detection method, apparatus, and computer usable program code | |
CN115659335A (zh) | 基于混合模糊测试的区块链智能合约漏洞检测方法及装置 | |
Jiang et al. | Igor: Crash deduplication through root-cause clustering | |
CN110427320B (zh) | 一种轻量级嵌入式程序控制流异常定位检测方法 | |
CN109800152A (zh) | 一种自动化测试方法及终端设备 | |
Pusz et al. | Program-structure-guided approximation of large fault spaces | |
Terboven | Comparing Intel Thread Checker and Sun Thread Analyzer. | |
CN111382052A (zh) | 代码质量评价方法、装置及电子设备 | |
CN109710538B (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 |