[发明专利]一种软件系统配置错误诊断方法和系统有效
申请号: | 202211474627.1 | 申请日: | 2022-11-23 |
公开(公告)号: | CN116126680B | 公开(公告)日: | 2023-07-21 |
发明(设计)人: | 王伟;周英楠;王俊勇;刘煜昊;李超;段莉;金一;李浥东;刘吉强 | 申请(专利权)人: | 北京交通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市商泰律师事务所 11255 | 代理人: | 刘源 |
地址: | 100044 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 系统配置 错误 诊断 方法 系统 | ||
本发明提供的一种软件系统配置错误诊断方法和系统,通过对程序执行数据构造频谱信息,计算卡方检验数快速定位导致配置错误的配置选项。同时,对配置选项的控制流和数据流抽象为向量,进行向量距离计算,判断配置选项之间是否存在关联关系。解决了多配置错误的诊断难题,同时指出了配置选项之间是否存在约束和关联关系。避免了由于模式匹配造成的漏报,同时使用频谱、卡方检验数和距离度量的方法不局限于特定的软件程序,具有普适性和广泛性,适用于更多的软件程序。
技术领域
本发明涉及计算机科学技术领域,尤其涉及一种软件系统配置错误诊断方法和系统。
背景技术
配置错误是指软件本身的程序设计没有错误,但是由于用户错误地使用某个配置选项的值,导致软件系统出现了不符合用户期望的值,甚至是程序崩溃。配置错误在生产生活中会导致巨大的损失,同时,由于配置选项数量的庞大,以及每个配置选项所设计的范围较广,造成配置空间巨大,很难进行错误的定位。因此,需要建立配置错误的诊断模型,当软件程序发生配置错误时,配置错误诊断模型可以辅助用户进行错误配置选项的快速定位。由于软件不同功能之间的重叠性,造成大量的配置选项之间存在约束和关联,因此,导致配置错误的配置选项往往并非是单一的。
配置错误诊断研究主要分为白盒和黑盒方向,白盒使用程序分析的方法,分析程序的源代码进行诊断;黑盒则使用除了源代码的其他外部信息,例如日志文件等。白盒方向因为从程序的内部分析错误原因,准确率较高。
ConfDiagnoser从配置选项读取点进行程序切片,获取布尔表达式的结果来构建向量结构,然后进行动态插装获得错误执行过程的执行概要文件,对比正确和错误概要文件中发生最大偏移的布尔表达式,逆向切片完成布尔表达式到配置选项的映射,完成单个配置错误的诊断。ConfDoctor对配置选项读取点进行前向切片和堆栈跟踪中最顶部堆栈帧对应的程序语句进行后向切片,将两个切片语句进行取交集操作,根据交集集合的覆盖情况来获取导致错误的选项。这两个工作以及他们的改进工作都是针对单配置错误诊断的经典模型,均采用了程序切片和其他技术的相组合的方法;
cDep关注于寻找关联关系,首先观察得出关联关系的模式,将其对应于代码中进行模式匹配,通过匹配已经预定义好的关联关系得到符合该关系的配置选项,该工作第一次关注到配置关联之间的关系。
发明内容
本发明的实施例提供了一种软件系统配置错误诊断方法和系统,用于解决现有技术中存在的问题。
为了实现上述目的,本发明采取了如下技术方案。
一种软件系统配置错误诊断方法,包括:
基于被检测的软件源代码,随机生成配置数据作为错误注入;
执行配置数据,记录执行的结果以及执行过程中软件源代码的每条语句的覆盖情况,构建程序谱;
基于程序谱,通过计算软件源代码的每条语句与导致程序错误的卡方检验数,获得每条语句的出错可疑度;
通过将所有语句的出错可疑度进行降序排列,再进行向后程序切片操作,获得配置选项列表;
基于配置选项列表,将某条配置选项是否流经某条语句构建为一个向量结构,重复该过程获得多个向量结构;
迭代计算所有配置选项对应的向量结构之间的距离,基于所有配置选项对应的向量结构之间的距离的绝对值大小,获得配置选项之间的关联列表;
将配置选项列表与配置选项之间的关联列表进行合并处理,获得软件系统配置错误诊断结果。
优选地,执行配置数据,记录执行的结果以及执行过程中软件源代码的每条语句的覆盖情况,构建程序谱包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211474627.1/2.html,转载请声明来源钻瓜专利网。