一种软件系统配置错误诊断方法和系统技术方案

技术编号:37608976 阅读:36 留言:0更新日期:2023-05-18 12:00
本发明专利技术提供的一种软件系统配置错误诊断方法和系统,通过对程序执行数据构造频谱信息,计算卡方检验数快速定位导致配置错误的配置选项。同时,对配置选项的控制流和数据流抽象为向量,进行向量距离计算,判断配置选项之间是否存在关联关系。解决了多配置错误的诊断难题,同时指出了配置选项之间是否存在约束和关联关系。避免了由于模式匹配造成的漏报,同时使用频谱、卡方检验数和距离度量的方法不局限于特定的软件程序,具有普适性和广泛性,适用于更多的软件程序。用于更多的软件程序。用于更多的软件程序。

【技术实现步骤摘要】
一种软件系统配置错误诊断方法和系统


[0001]本专利技术涉及计算机科学
,尤其涉及一种软件系统配置错误诊断方法和系统。

技术介绍

[0002]配置错误是指软件本身的程序设计没有错误,但是由于用户错误地使用某个配置选项的值,导致软件系统出现了不符合用户期望的值,甚至是程序崩溃。配置错误在生产生活中会导致巨大的损失,同时,由于配置选项数量的庞大,以及每个配置选项所设计的范围较广,造成配置空间巨大,很难进行错误的定位。因此,需要建立配置错误的诊断模型,当软件程序发生配置错误时,配置错误诊断模型可以辅助用户进行错误配置选项的快速定位。由于软件不同功能之间的重叠性,造成大量的配置选项之间存在约束和关联,因此,导致配置错误的配置选项往往并非是单一的。
[0003]配置错误诊断研究主要分为白盒和黑盒方向,白盒使用程序分析的方法,分析程序的源代码进行诊断;黑盒则使用除了源代码的其他外部信息,例如日志文件等。白盒方向因为从程序的内部分析错误原因,准确率较高。
[0004]ConfDiagnoser从配置选项读取点进行程序切片,获取布尔表达本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种软件系统配置错误诊断方法,其特征在于,包括:基于被检测的软件源代码,随机生成配置数据作为错误注入;执行配置数据,记录执行的结果以及执行过程中所述软件源代码的每条语句的覆盖情况,构建程序谱;基于程序谱,通过计算所述软件源代码的每条语句与导致程序错误的卡方检验数,获得每条语句的出错可疑度;通过将所有语句的出错可疑度进行降序排列,再进行向后程序切片操作,获得配置选项列表;基于配置选项列表,将某条配置选项是否流经某条语句构建为一个向量结构,重复该过程获得多个向量结构;迭代计算所有配置选项对应的向量结构之间的距离,基于所有配置选项对应的向量结构之间的距离的绝对值大小,获得配置选项之间的关联列表;将配置选项列表与配置选项之间的关联列表进行合并处理,获得软件系统配置错误诊断结果。2.根据权利要求1所述的方法,其特征在于,所述的执行配置数据,记录执行的结果以及执行过程中所述软件源代码的每条语句的覆盖情况,构建程序谱包括:将配置数据中的配置选项的读取点作为分析起点,基于WALA框架对每个配置选项进行前向的程序切片,获得配置选项影响的程序语句集合S={s1,s2,s3,

,s
y
},基于ASM框架对程序语句集合S的前后加入插桩代码,用于记录执行过程中每条语句的覆盖情况;基于配置选项信息,随机生成m个输入集合TC
i
={C1,C2,C3,

,C
n
},C
j
表示第j个配置选项的值;将TC
i
注入被检测的软件源代码中,获得TC
i
在程序语句集合S上的覆盖率以及程序执行结果R;R取0或1,当R为0时表示程序没有出现错误,为1时表示程序的执行发生错误;将输入集合TC
i
和程序执行结果R表示为程序谱P,其中P
xy
取0或1,为0表示TC
x
的执行路径没有覆盖语句s
y
。3.根据权利要求2所述的方法,其特征在于,所述的基于程序谱,通过计算所述软件源代码的每条语句与导致程序错误的卡方检验数,获得每条语句的出错可疑度包括:对程序谱P中的信息进行统计,获得如下变量:N表示输入集合的数量,N
f
表示R为1的输入集合的数量,N
s
表示R为0的输入集合的数量,N
c
(s
i
)表示覆盖语句s
i
的输入集合的数量,N
cf
(s
i
)表示覆盖语句s
i
且R为1的输入集合的数量,N
cs
(s
i
)表示覆盖语句s
i
且R为0的输入集合的数量,N
u
(s
i
)表示没有覆盖语句s
i
的输入集合的数量,N
uf
(s
i
)表示没有覆盖语句s
i
且R为1的输入集合的数量,N
us
(s
i
)表示没有覆盖语句s
i
且R为0的输入集合的数量,H0表示假设为程序的执行结果和...

【专利技术属性】
技术研发人员:王伟周英楠王俊勇刘煜昊李超段莉金一李浥东刘吉强
申请(专利权)人:北京交通大学
类型:发明
国别省市:

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

1