[发明专利]一种软件缺陷检测方法与装置有效
申请号: | 202110095728.7 | 申请日: | 2021-01-25 |
公开(公告)号: | CN112860545B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 王召;俞俊;许明杰;李东辉;吴小志;张昕 | 申请(专利权)人: | 国电南瑞科技股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 李淑静 |
地址: | 211106 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 缺陷 检测 方法 装置 | ||
本发明提出了一种软件缺陷检测方法与装置,所述方法包括:构建待检测软件的依赖软件兼容版本树;基于依赖软件兼容版本树,对软件进行源码分析,找出函数调用链,建立函数调用追踪图;依据函数调用追踪图,分析函数调用的数据依赖关系,将源码中的数值运算转化为代数表达式;求解代数表达式的最大值与最小值,得到其取值区间;依据软件运行过程中的限制、规则及约束检测所得取值区间的合法性,当所得取值区间超出合法区间边界时,判定软件存在缺陷。本发明可以较为方便的对多版本软件依赖的待检测程序进行全部版本的程序缺陷预测与检测,避免仅仅检测待检测软件的有限软件依赖版本,而在程序运行在其它合法的依赖兼容版本上时的程序缺陷。
技术领域
本发明属于计算机领域,具体涉及一种软件缺陷检测方法与装置,可用于软件缺陷检测、软件执行过程预测及非停机自适应软件升级解决方案。
背景技术
随着信息技术的蓬勃发展,软件的应用范围日益广泛。软件在国民经济的各个行业中发挥着越来越重要的作用,在商业、工业、学校、交通、政府机构及基础能源等各个行业都与软件紧密结合,软件产品正以各种方式渗透到我们生活的方方面面,成为人们生活必不可缺的一部分,极大的方便了人类的生活,促进了社会的巨大进步。同时,伴随着社会经济的发展,软件的规模越来越庞大,功能及架构也越来越复杂,一个软件所包含的技术也愈来愈多,软件的函数调用链也越来越长,越来越复杂。软件缺陷带来的危害也会造成越来越严重的问题,给社会生活、人类生命财产造成不可估量的损失。
软件测试技术通过设计测试案例来检测软件质量,找出可能存在的软件缺陷,是保证软件质量的重要手段之一。随着软件规模的扩大,软件复杂度的提高,统计结果表明,软件测试占软件生命周期总预算的50%到75%,也就是说,软件测试是软件工程中消耗人力财力等各种资源最多的部分。但多年来信息技术发展的实践表明,经过严格软件测试后,软件仍然会潜藏大量的缺陷,在软件运行期间暴露出来,带来较为严重的后果。而软件运行期带来的危害的修复代价,相比运用软件检测技术发现软件缺陷的代价,往往高数百倍。软件缺陷的预测及检测的重要性也为人们所重视,成为学术界和工业界重要的研究重点之一。
软件依赖是指软件之间由于复用技术产生的软件之间的一种相互关系,在软件工程及实践中,软件依赖是比较常见的。特别是,随着互联网技术的发展,开放源码软件项目得到快速的发展和普及,使软件从过去的集中式开发向模块化分工合作方向转变。软件开发过程中使用的开源软件越来越多,同时软件组件化开发也越来越为更多的软件所使用,软件组件之间互相依赖。这些技术的发展使软件变得越来越庞大,软件与依赖的开源软件及其他组件的关系也越来越复杂,函数的调用分支也越来越繁杂,随着规模的扩大,软件隐藏的缺陷也随之越来越多。传统的软件测试方法,越来越难以覆盖软件运行的所有分支,测试覆盖率越来越低。
软件依赖的广泛性复杂性,以及软件规模的扩大,对软件质量保证提出了严峻的挑战。如何保证软件的质量,在软件进入生产系统前,对软件潜在的缺陷进行预测,是亟待解决的问题。软件及组件的升级速度并不一致,这就造成了软件对依赖软件或组件多个版本均可编译运行,但被依赖的软件各个版本一般存在差异,一般情况下被依赖软件又会对其他软件形成依赖,这就在软件内外部形成了较长的依赖链。加之软件结构的复杂性,一个函数对依赖的调用,往往对应多个兼容版本的情况,这在目前的软件中较为普遍。这就造成了软件在某一个或某些个兼容的依赖版本上测试通过,但在实际部署中,由于依赖的版本链条发生了变化,造成软件缺陷的爆发。而这种缺陷在测试中是很难被发现的,这是因为测试环境一般选定特定的软件依赖及版本进行测试的,难于发现其他兼容版本调用中存在的缺陷。如何检测软件依赖多个兼容版本的缺陷,特别是在软件的生命周期中,软件运行环境的变化,造成软件的依赖版本也在不断发生变化,这就造成在软件的整个生命周期中都需要进行缺陷预测和检测,如何在这种不断变化的环境中检测软件缺陷是一个急需解决的问题。
发明内容
发明目的:针对现有技术的问题,本发明提供一种软件缺陷检测方法,实现软件多版本依赖情形下的软件缺陷预测与检测。
本发明的另一目的是提供一种软件缺陷检测装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国电南瑞科技股份有限公司,未经国电南瑞科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110095728.7/2.html,转载请声明来源钻瓜专利网。