一种基于增量调试的配置错误定位方法技术

技术编号:39846072 阅读:9 留言:0更新日期:2023-12-29 16:43
本发明专利技术提供了一种基于增量调试的配置错误定位方法,属于通信技术领域,该方法包括:错误配置定位:利用二分重置的错误配置定位方法,对诱发软件故障的缺陷配置项集合进行定位,得到导致软件故障的最小配置项集合;错误代码定位:将最小配置项集合中的正常值与异常值注入被测系统,获取程序的执行流信息,并通过对比执行流信息得到最终的缺陷代码块,完成基于增量调试的配置错误定位,本发明专利技术解决了云和数据中心软件中的配置错误定位效率低下的问题

【技术实现步骤摘要】
一种基于增量调试的配置错误定位方法


[0001]本专利技术属于通信
,尤其涉及一种基于增量调试的配置错误定位方法


技术介绍

[0002]软件是当今生活的基础,其影响无处不在

事实上,目前软件不仅被用于日常生活中,而且对于医学

航空学和核能等行业至关重要

同时,这一趋势伴随着软件的规模和复杂性的上升而急剧增加

不幸的是,这也导致了更多的软件错误和执行失败

此外,系统中的软件故障对经济损失有显著影响,这是一个令人担忧的问题

同时,在云和数据中心软件中,由于规模庞大和复杂性高,很难手动配置和管理所有软件

因此,经常会出现人为错误配置

这些错误配置可能导致软件故障和性能问题,甚至带来严重的安全漏洞,如服务中断

数据丢失等等

一旦出现错误配置引起的漏洞,开发者首先需要快速找到引发漏洞的代码片段,而后通过程序修复来恢复系统的正常运行

[0003]目前,软件的故障定位技术主要分为两大类:传统的故障定位技术和先进的故障定位技术

[0004]传统的故障定位技术主要包括:基于日志

程序断言

断点调试

[0005]1)
基于日志的故障定位技术,通过把打印语句临时插入到代码中,以监控变量值和程序状态信息,但是日志分析的过程比较复杂

[0006]2)
程序断言的故障定位技术,通过添加断言约束条件,检测运行时的错误,但是在添加约束条件的时候需要大量的先验知识

[0007]3)
断点调试的故障定位技术,通过插入断点来更改程序执行,但是它需要大量的人工参与,人工成本高

[0008]先进的故障定位技术主要包括:程序切片

程序频谱

程序状态

[0009]1)
基于程序切片的故障定位的技术,通过静态分析,删除不相关的代码将程序简单化,以缩减搜索范围,但是这需要大量的计算,而且准确率也不高

[0010]2)
基于程序频谱的故障定位技术,通过测试样例的执行情况来推断出语句出错的概率

这需要高质量的测试样例,同时需要大量的测试样例

[0011]3)
基于程序状态的故障定位技术,通过改变程序中的特定变量来定位程序错误,但是这可能会造成状态空间爆炸

[0012]尽管现有的软件故障定位技术可以有效地帮助开发者快速定位软件缺陷,但是在将其应用于云和数据中心等复杂软件时,仍然面临着一些挑战

首先,由于云和数据中心等复杂软件通常拥有大量的配置项,这些配置项可能会因为不正确的设置而引起软件缺陷

同时,配置项的数量往往非常繁多,一旦触发软件缺陷,开发者需要逐一检查每个配置项,以确定哪个配置项导致了缺陷

由于配置项数量的庞大,这样的过程需要大量的时间和人力成本,并且容易出现疏漏

因此,开发者需要有效的方法来快速识别和定位导致缺陷的配置项,以缩短软件的维护时间,以及降低人力成本

其次,云和数据中心等复杂软件通常由多个功能模块组成,这些功能模块之间可能存在复杂的交互关系

如果发生了缺陷,可能会
涉及多个模块

这使得开发者更加难以确定哪个模块存在缺陷,进而导致难以定位缺陷代码


技术实现思路

[0013]针对现有技术中的上述不足,本专利技术提供的一种基于增量调试的配置错误定位方法,以解决上述问题

[0014]为了达到以上目的,本专利技术采用的技术方案为:一种基于增量调试的配置错误定位方法,包括以下步骤:
[0015]S1、
错误配置定位:利用二分重置的错误配置定位方法,对诱发软件故障的缺陷配置项集合进行定位,得到导致软件故障的最小配置项集合;
[0016]S2、
错误代码定位:将最小配置项集合中的正常值与异常值注入被测系统,获取程序的执行流信息,并通过对比执行流信息得到最终的缺陷代码块,完成基于增量调试的配置错误定位

[0017]本专利技术的有益效果是:本专利技术充分考虑了云和数据中心软件的特点,设计了针对这类软件的配置错误定位方法

具体地,本专利技术使用了增量调试技术,其主要思想是将程序的调试过程分为多个阶段,每个阶段只调试程序的一部分,逐步排除问题,直到定位到最终的问题

因此,本专利技术的关键原理是,通过把配置定位拆分为两部分:错误配置定位和错误代码定位,通过两阶段的定位,可以有效地缩减搜索范围

具体而言,第一阶段的错误配置定位可以定位到具体的诱发软件故障的配置项集合;第二阶段根据第一阶段的结果运行被测程序,获取程序的执行流信息,通过对比执行流信息得到最终的缺陷代码块,有效地缩减搜索范围

[0018]进一步地,其特征在于,所述步骤
S1
包括以下步骤:
[0019]S101、
获取初始的配置项集合和被测系统,并初始化计数器;
[0020]S102、
利用配置二分器随机选择配置项集合的一半,获取配置测试集长度;
[0021]S103、
根据获取的配置测试集长度,判断当前选择的配置项集合大小是否大于1,若是,则得到导致软件故障的最小配置项集合,完成对诱发软件故障的缺陷配置项集合的定位,否则,将选择的配置项集合设为异常值,并注入被测系统中,同时运行被测系统,并进入步骤
S104

[0022]S104、
判断被测系统是否执行失败,若是,则更新配置项集合为当前选择的一半参数,并将计数器重置为0,并返回步骤
S102
,否则,被测系统执行程序,将计数器的值加1,并进入步骤
S105

[0023]S105、
判断计数器的大小是否超过排列组合次数若是,则得到导致软件故障的最小配置项集合,完成对诱发软件故障的缺陷配置项集合的定位,否则,返回步骤
S102
,其中,
n
表示选择的配置项集合的长度

[0024]上述进一步方案的有益效果是:本专利技术把每次搜索的配置项集合放入到系统中进行运行验证,并对搜索组合进行不断地拆分,直到搜索组合中只包含缺陷配置项为止,提高了缺陷配置项的搜索效率

[0025]再进一步地于,所述步骤
S2
包括以下步骤:
[0026]S201、
获取最小配置项集合以及被测系统;
[0027]S202、
...

【技术保护点】

【技术特征摘要】
1.
一种基于增量调试的配置错误定位方法,其特征在于,包括以下步骤:
S1、
错误配置定位:利用二分重置的错误配置定位方法,对诱发软件故障的缺陷配置项集合进行定位,得到导致软件故障的最小配置项集合;
S2、
错误代码定位:将最小配置项集合中的正常值与异常值注入被测系统,获取程序的执行流信息,并通过对比执行流信息得到最终的缺陷代码块,完成基于增量调试的配置错误定位
。2.
根据权利要求1所述的基于增量调试的配置错误定位方法,其特征在于,所述步骤
S1
包括以下步骤:
S101、
获取初始的配置项集合和被测系统,并初始化计数器;
S102、
利用配置二分器随机选择配置项集合的一半,获取配置测试集长度;
S103、
根据获取的配置测试集长度,判断当前选择的配置项集合大小是否大于1,若是,则得到导致软件故障的最小配置项集合,完成对诱发软件故障的缺陷配置项集合的定位,否则,将选择的配置项集合设为异常值,并注入被测系统中,同时运行被测系统,并进入步骤
S104

S104、
判断被测系统是否执行失败,若是,则更新配置项集合为当前选择的一半参数,并将计数器重置为0,并返回步骤
S102
,否则,被测系统执行程序,将计数器的值加1,并进入步骤
S105

S105、
判断计数器的大小是否超过排列组合次数
C
2nn
,若是,则得到导致软件故障的最小配置项集合,完成对诱发软件故障的缺陷配置项集合的定位,否则,返回步骤
S102
,其中,
n
表示选择的配置项集合的长度
。3.
根据权利要求1所述的基于增量调试的配...

【专利技术属性】
技术研发人员:虞红芳罗发林张鹏程李俊强孙罡
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1