一种软件调试方法和电子设备技术

技术编号:32607901 阅读:60 留言:0更新日期:2022-03-12 17:32
本申请实施例提供一种软件调试方法和电子设备。方法包括:确定待测试程序的待测试变量,所述待测试变量包括具备关联关系的自变量以及因变量;在所述待测试程序运行过程中,记录所述自变量以及所述因变量的值的连续变化,获取训练数据集;基于所述训练数据集训练计算机学习模型,拟合测试用回归模型;将所述待测试程序运行过程中所述自变量的值输入到所述测试用回归模型,对比所述测试用回归模型的输出以及所述待测试程序运行过程中所述因变量的值,确定所述待测试程序运行过程中的数据异常点。根据本申请一实施例的方法,可以大大提高软件漏洞定位的准确率,减少软件漏洞定位的耗时,避免遗漏软件漏洞。避免遗漏软件漏洞。避免遗漏软件漏洞。

【技术实现步骤摘要】
一种软件调试方法和电子设备


[0001]本申请涉及智能终端
,特别涉及一种软件调试方法和电子设备。

技术介绍

[0002]在编写软件程序的过程中,通常没有哪个程序员能一下子写出没有错误的代码。因此,在完成软件代码后,需要软件代码进行调试,以定位软件问题。最常见的调试方法是使用以调试器为主的调试工具进行调试,从问题的症状入手,正向跟踪或者反向追溯软件漏洞,从而大大提高定位到软件漏洞根源的效率。
[0003]在现有技术环境中,软件环境在不断向着大型化、并行化、复杂化方向发展,不符合程序预期的原因可能是一个非常小的问题,但是不容易发现。这就导致定位软件漏洞的难度也在随之不断提高,通过现有的软件调试方法定位软件漏洞的耗时也就不断增加,往往软件调试的时间超过编码的时间,甚至于在某些应用场景中,无法定位到软件漏洞。

技术实现思路

[0004]针对现有技术下软件调试的时间过长,在某些应用场景中无法定位到软件漏洞的问题,本申请提供了一种软件调试方法和电子设备,本申请还提供一种计算机可读存储介质。
[0005]本申请实施例采用下述技术方案:
[0006]第一方面,本申请提供一种软件调试方法,包括:
[0007]确定待测试程序的待测试变量,所述待测试变量包括具备关联关系的自变量以及因变量;
[0008]数据采集,包括,在所述待测试程序运行过程中,记录所述自变量以及所述因变量的值的连续变化,获取记录数据集,根据所述记录数据集生成训练数据集;
[0009]模型训练,包括,基于所述训练数据集训练计算机学习模型,拟合测试用回归模型,其中,所述测试用回归模型用于体现所述自变量与所述因变量间的关联关系,在模型训练过程中,模型输入项为所述训练数据集中的自变量的值,模型输出项为所述训练数据集中的因变量的值;
[0010]异常点定位,包括,将所述待测试程序运行过程中所述自变量的值输入到所述测试用回归模型,对比所述测试用回归模型的输出以及所述待测试程序运行过程中所述因变量的值,确定所述待测试程序运行过程中的数据异常点。
[0011]在上述第一方面的一种实现方式中,所述数据采集,包括:
[0012]重复运行所述待测试程序,当所述待测试程序的运行次数满足预设次数或者所述记录数据集中的记录数满足预设记录数时,停止运行所述待测试程序,根据所述记录数据集生成训练数据集。
[0013]在上述第一方面的一种实现方式中,所述数据采集,包括:
[0014]重复运行所述待测试程序,当所述待测试程序的运行次数满足预设次数或者所述
记录数据集中的记录数满足预设记录数时,输出数据采集完成提示;
[0015]当数据采集被关闭或者软件调试被启动时,停止运行所述待测试程序,根据所述记录数据集生成训练数据集。
[0016]在上述第一方面的一种实现方式中:
[0017]所述数据采集,包括:运行所述待测试程序,记录所述自变量以及所述因变量的值的连续变化,获取第一记录数据集,将所述第一记录数据集作为所述训练数据集;
[0018]所述异常点定位,包括:
[0019]所述数据采集,包括:运行所述待测试程序,记录所述自变量以及所述因变量的值的连续变化,获取第二记录数据集,将所述第二记录数据集作为所述测试数据集;
[0020]将所述测试数据集中所述自变量的值输入到所述测试用回归模型,对比所述测试用回归模型的输出以及所述测试数据集中所述因变量的值,确定所述测试数据集中的数据异常点。
[0021]在上述第一方面的一种实现方式中:
[0022]所述数据采集,包括:运行所述待测试程序,记录所述自变量以及所述因变量的值的连续变化,获取所述记录数据集;将所述记录数据集分割为所述训练数据集以及测试数据集;
[0023]所述异常点定位,包括,将所述测试数据集中所述自变量的值输入到所述测试用回归模型,对比所述测试用回归模型的输出以及所述测试数据集中所述因变量的值,确定所述测试数据集中的数据异常点。
[0024]在上述第一方面的一种实现方式中,所述模型训练,包括:
[0025]调用机器学习模型库中的一个未调用过的机器学习模型:
[0026]基于所述训练数据集训练所述机器学习模型,以拟合备选测试用回归模型;
[0027]将所述测试数据集中的自变量的值作为输入项输入所述备选测试用回归模型,以获取所述备选测试用回归模型的输出;
[0028]计算所述备选测试用回归模型的输出,与所述测试数据集中的因变量的值之间的相似度;
[0029]当所述备选测试用回归模型的输出,与所述测试数据集中的因变量的值之间的相似度大于等于预设相似度阈值时,将所述备选测试用回归模型作为所述测试用回归模型。
[0030]在上述第一方面的一种实现方式中,所述模型训练,包括:
[0031]调用机器学习模型库中的机器学习模型:
[0032]基于所述训练数据集,分别训练所述机器学习模型库中的每一个机器学习模型,以拟合多个备选测试用回归模型;
[0033]将所述测试数据集中的自变量的值作为输入项分别输入每一个所述备选测试用回归模型,以获取每一个所述备选测试用回归模型的输出;
[0034]计算每一个所述备选测试用回归模型的输出,与所述测试数据集中的因变量的值之间的相似度,获取相似度数组;
[0035]当所述相似度数组中的最大相似度值大于等于预设相似度阈值时,将所述最大相似度值对应的所述备选测试用回归模型作为所述测试用回归模型。
[0036]在上述第一方面的一种实现方式中,所述模型训练,包括:
[0037]基于所述训练数据集训练所述计算机学习模型,拟合备选测试用回归模型;
[0038]将所述训练数据集中所述自变量的值输入到所述备选测试用回归模型,对比所述备选测试用回归模型的输出以及所述训练数据集中所述因变量的值,确定所述训练数据集中的数据异常点;
[0039]从所述训练数据集中移除数据异常点;
[0040]基于移除数据异常点后的训练数据集训练所述计算机学习模型,拟合所述测试用回归模型。
[0041]在上述第一方面的一种实现方式中,所述方法还包括:
[0042]根据所述记录数据集绘制变量图形,所述变量图形用于图像化描述所述自变量以及所述因变量的值的连续变化。
[0043]在上述第一方面的一种实现方式中,所述方法还包括:
[0044]在所述变量图形上标记所述数据异常点。
[0045]在上述第一方面的一种实现方式中,所述方法还包括:
[0046]确认回退节点所对应的所述自变量和/或所述因变量的值;
[0047]以所述自变量的初始值为起点,运行所述待测试程序;
[0048]当所述待测试程序的运行,导致所述自变量和/或所述因变量的值达到所述回退节点所对应的所述自变量和/或所述因变量的值时,停止运行所述待测试程序;
[0049本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件调试方法,其特征在于,包括:确定待测试程序的待测试变量,所述待测试变量包括具备关联关系的自变量以及因变量;数据采集,包括,在所述待测试程序运行过程中,记录所述自变量以及所述因变量的值的连续变化,获取记录数据集,根据所述记录数据集生成训练数据集;模型训练,包括,基于所述训练数据集训练计算机学习模型,拟合测试用回归模型,其中,所述测试用回归模型用于体现所述自变量与所述因变量间的关联关系,在模型训练过程中,模型输入项为所述训练数据集中的自变量的值,模型输出项为所述训练数据集中的因变量的值;异常点定位,包括,将所述待测试程序运行过程中所述自变量的值输入到所述测试用回归模型,对比所述测试用回归模型的输出以及所述待测试程序运行过程中所述因变量的值,确定所述待测试程序运行过程中的数据异常点。2.根据权利要求1所述的方法,其特征在于,所述数据采集,包括:重复运行所述待测试程序,当所述待测试程序的运行次数满足预设次数或者所述记录数据集中的记录数满足预设记录数时,停止运行所述待测试程序,根据所述记录数据集生成训练数据集。3.根据权利要求1所述的方法,其特征在于,所述数据采集,包括:重复运行所述待测试程序,当所述待测试程序的运行次数满足预设次数或者所述记录数据集中的记录数满足预设记录数时,输出数据采集完成提示;当数据采集被关闭或者软件调试被启动时,停止运行所述待测试程序,根据所述记录数据集生成训练数据集。4.根据权利要求1所述的方法,其特征在于:所述数据采集,包括:运行所述待测试程序,记录所述自变量以及所述因变量的值的连续变化,获取第一记录数据集,将所述第一记录数据集作为所述训练数据集;所述异常点定位,包括:所述数据采集,包括:运行所述待测试程序,记录所述自变量以及所述因变量的值的连续变化,获取第二记录数据集,将所述第二记录数据集作为所述测试数据集;将所述测试数据集中所述自变量的值输入到所述测试用回归模型,对比所述测试用回归模型的输出以及所述测试数据集中所述因变量的值,确定所述测试数据集中的数据异常点。5.根据权利要求1所述的方法,其特征在于:所述数据采集,包括:运行所述待测试程序,记录所述自变量以及所述因变量的值的连续变化,获取所述记录数据集;将所述记录数据集分割为所述训练数据集以及测试数据集;所述异常点定位,包括,将所述测试数据集中所述自变量的值输入到所述测试用回归模型,对比所述测试用回归模型的输出以及所述测试数据集中所述因变量的值,确定所述测试数据集中的数据异常点。6.根据权利要求5所述的方法,其特征在于,所述模型训练,包括:调用机器学习模型库中的一个未调用过的机器学习模型:基于所述训练数据集训练所述机器学习模型,以拟合备选测试用回归模型;
将所述测试数据集中的自变量的值作为输入项输入所述备选测试用回归模型,以获取所述备选测试用回归模型的输出;计算所述备选测试用回归模型的输出,与所述测试数据集中的因变量的值之间的相似度;当所述备选测试用回归模型的输出,与所述测试数据集中的...

【专利技术属性】
技术研发人员:魏可鑫董鑫林志强胡绍平
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1