缺陷检测系统中警报自动聚类方法研究及实现
发布时间:2020-11-01 21:47
静态缺陷检测技术因利用各种静态分析方法来发现程序中的潜在缺陷而深受用户青睐。但缺陷检测结果往往存在大量的漏报和误报,这需要用户投入大量的时间和精力进行人工确认。降低缺陷检测结果的误报率以及提高人工确认的效率是提升静态缺陷检测技术的实用性的两个有效途径。本文在对缺陷检测结果进行大量分析的基础上,提出了一种基于缺陷检测系统的警报自动聚类方法。本文首先根据警报相关特性以及变量的数据来源提出了警报间等价、主宰、相似和支配这四种关系。然后具体分析了每种关系的性质和产生原因,给出了相应的判定策略。最后基于缺陷检测系统,利用变量的定值函数,给出了警报自动聚类的相关算法。本文所述的警报自动聚类方法已在缺陷检测系统DTS中实现。基于警报聚类结果,如果一个警报被确认是误报(或真实故障),那么与之存在等价关系的警报也一定是误报(或真实故障),与之存在相似关系的警报则有极大可能也是误报(或真实故障),这在一定程度上减少了警报确认数量。通过对5个开源工程的检测结果进行分析,该方法可以提高约60%的人工确认效率,为静态缺陷检测工具检测大规模的软件提供了有力支持。
【学位单位】:北京邮电大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP311.53;TP311.13
【部分图文】:
一个等价类可以生成一棵主宰关系树,基于主宰关系的传递性可知主宰关系??树中的根节点是这个等价类的主宰警报。??基于以上定义和分析,图3-1描述了一个警报集合中等价类和主宰类的关系。??在一个警报集合中,具有等价关系的警报组成等价类(图中£31和ES2),每个??等价类可以生成一棵主宰关系树(实线表示过程内主宰,虚线表示过程间主宰),??其中树的根节点是其所在等价类的主宰警报,所有的主宰警报构成了主宰类。??警报集合??(S^|)??图3-1等价类和主宰类??3.3.3判定策略??通过上小节可以知道,如果两个警报存在主宰关系那么它们一定存在等价关??系。但是并不是所有具有等价关系的警报都具有主宰关系,比如在代码3-5中,??警报IP9、IP10和IP11的相关变量均来自于my_strsep函数的返回值,因此存在??等价类ES={IP9.?IP]0.?P11丨。其中IP9和P10的触发语句均在notifyl函数中(分??别在第7行和第9行),分析代码可以发现这两个语句属于条件语句中的真假分??支
4.1自动聚类系统架构设计??本文是基于DTS缺陷检测系统做警报自动聚类相关研宄,因此本文在DTS??原来的检测流程上,增加警报自动聚类模块。如下图4-1所示,实线框为DTS??原有模块,虚线框为新增的警报自动聚类模块。??语法树生成???}?[??载入需检测的缺陷??符号表生成?|?\?|?模式类型???±??:??i???控制流:图生成|?:收集待检测的源文?...???X??!?|?件??定义-使^?链分析?:?^?1?.....???^预分析:得到文件?/?报类^」???*?1?;?分析次序?^?1一?^??丨函_用丨关系分析|?:'?1?J?;?厂‘等i-丨???J正式分析:为每个?1?丨??逆序进行区I司分析?j文件创建分析线程;?「43主^"―I???i???丄—?;??生成变量符号化定?丨个?I???r?^?1??fi?lit?:丨警报自动聚类卜'?匕」十_?相关??J"?^?丨?1?^?1?\?r??i??缺陷状态机自动检?丨|结果写入数据库并?匕」十_?苎酉^?一」??测??/?|?统计??图4-1?DTS检测流程??DTS整体1:作流程主要分为五部分:(1)输入待测试的源文件,并根据缺??陷模式配置信总载入需检测的缺陷模式类型;(2)对源代码进行预处理,首先利??用JavaCCl34〗生成源代码的抽象语法树(AST),然后基于AST生成符号表(ST)??和函数的控制流图(CFG),接着基于控制流图生成变量的定义-使用链,之后生??成程序的全局函数调用关系图,再基于AST、ST和C
其中DBEqual表示警报属于哪个等价类,DBDominant表示警报是哪个等价类的??主宰警报,DBSimilar表不警报的相似类,DBConcontrol表不警报的支配类。结??构类图如图4-3所示。????^?sc-fftest-scvp.c.SCWStrlng???〇?邊論―^?ipOe^tist^S^??〇?&?stmctureiS#ing??=aiaj-mFeaiure;?AlarffsFeature?a?constants:?〇5t<S^mg>??Q?Df£q?aij?St??5g?s?cRrcsr?lis^?Strings??s?DSDomfeant;?Swfegf?s?P〇s*6gf???^?DSSimjbr:?a?ya;j-;?Stri^??s?diCcMroi;?I??〇?ssmilarVlIltedli?boolean?人??a?boolean??\f???a?SimferI^lu^〇f^iarnvHashSef<Stnrs9>??論e—scv^DSCVI^aM—"??^?cbit^rVisted;?boolean?—;?:?:???????—?????:?;???;?—?*?l^yer:?mt??#?crest^AlarrriFeatureCdefectSe^Mep:?M3^<Strir!g
【参考文献】
本文编号:2866145
【学位单位】:北京邮电大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP311.53;TP311.13
【部分图文】:
一个等价类可以生成一棵主宰关系树,基于主宰关系的传递性可知主宰关系??树中的根节点是这个等价类的主宰警报。??基于以上定义和分析,图3-1描述了一个警报集合中等价类和主宰类的关系。??在一个警报集合中,具有等价关系的警报组成等价类(图中£31和ES2),每个??等价类可以生成一棵主宰关系树(实线表示过程内主宰,虚线表示过程间主宰),??其中树的根节点是其所在等价类的主宰警报,所有的主宰警报构成了主宰类。??警报集合??(S^|)??图3-1等价类和主宰类??3.3.3判定策略??通过上小节可以知道,如果两个警报存在主宰关系那么它们一定存在等价关??系。但是并不是所有具有等价关系的警报都具有主宰关系,比如在代码3-5中,??警报IP9、IP10和IP11的相关变量均来自于my_strsep函数的返回值,因此存在??等价类ES={IP9.?IP]0.?P11丨。其中IP9和P10的触发语句均在notifyl函数中(分??别在第7行和第9行),分析代码可以发现这两个语句属于条件语句中的真假分??支
4.1自动聚类系统架构设计??本文是基于DTS缺陷检测系统做警报自动聚类相关研宄,因此本文在DTS??原来的检测流程上,增加警报自动聚类模块。如下图4-1所示,实线框为DTS??原有模块,虚线框为新增的警报自动聚类模块。??语法树生成???}?[??载入需检测的缺陷??符号表生成?|?\?|?模式类型???±??:??i???控制流:图生成|?:收集待检测的源文?...???X??!?|?件??定义-使^?链分析?:?^?1?.....???^预分析:得到文件?/?报类^」???*?1?;?分析次序?^?1一?^??丨函_用丨关系分析|?:'?1?J?;?厂‘等i-丨???J正式分析:为每个?1?丨??逆序进行区I司分析?j文件创建分析线程;?「43主^"―I???i???丄—?;??生成变量符号化定?丨个?I???r?^?1??fi?lit?:丨警报自动聚类卜'?匕」十_?相关??J"?^?丨?1?^?1?\?r??i??缺陷状态机自动检?丨|结果写入数据库并?匕」十_?苎酉^?一」??测??/?|?统计??图4-1?DTS检测流程??DTS整体1:作流程主要分为五部分:(1)输入待测试的源文件,并根据缺??陷模式配置信总载入需检测的缺陷模式类型;(2)对源代码进行预处理,首先利??用JavaCCl34〗生成源代码的抽象语法树(AST),然后基于AST生成符号表(ST)??和函数的控制流图(CFG),接着基于控制流图生成变量的定义-使用链,之后生??成程序的全局函数调用关系图,再基于AST、ST和C
其中DBEqual表示警报属于哪个等价类,DBDominant表示警报是哪个等价类的??主宰警报,DBSimilar表不警报的相似类,DBConcontrol表不警报的支配类。结??构类图如图4-3所示。????^?sc-fftest-scvp.c.SCWStrlng???〇?邊論―^?ipOe^tist^S^??〇?&?stmctureiS#ing??=aiaj-mFeaiure;?AlarffsFeature?a?constants:?〇5t<S^mg>??Q?Df£q?aij?St??5g?s?cRrcsr?lis^?Strings??s?DSDomfeant;?Swfegf?s?P〇s*6gf???^?DSSimjbr:?a?ya;j-;?Stri^??s?diCcMroi;?I??〇?ssmilarVlIltedli?boolean?人??a?boolean??\f???a?SimferI^lu^〇f^iarnvHashSef<Stnrs9>??論e—scv^DSCVI^aM—"??^?cbit^rVisted;?boolean?—;?:?:???????—?????:?;???;?—?*?l^yer:?mt??#?crest^AlarrriFeatureCdefectSe^Mep:?M3^<Strir!g
【参考文献】
相关期刊论文 前6条
1 金大海;宫云战;王雅文;黄俊飞;;软件代码测试技术[J];信息通信技术;2015年03期
2 何清;李宁;罗文娟;史忠植;;大数据下的机器学习算法综述[J];模式识别与人工智能;2014年04期
3 张大林;金大海;宫云战;王前;董玉坤;张海龙;;基于缺陷关联的静态分析优化[J];软件学报;2014年02期
4 李鹏;赵逢禹;;软件缺陷关联分析与缺陷排除研究[J];计算机科学;2013年10期
5 季晓慧;张健;;约束问题求解[J];自动化学报;2007年02期
6 景涛,江昌海,胡德斌,白成刚,蔡开元;软件关联缺陷的一种检测方法[J];软件学报;2005年01期
相关博士学位论文 前4条
1 张大林;静态缺陷检测优化若干关键技术研究[D];北京邮电大学;2014年
2 朱明敏;贝叶斯网络结构学习与推理研究[D];西安电子科技大学;2013年
3 赵云山;基于符号分析的静态缺陷检测技术研究[D];北京邮电大学;2012年
4 王雅文;基于缺陷模式的软件测试技术研究[D];北京邮电大学;2009年
相关硕士学位论文 前1条
1 李蕊彤;基于数据流分析的缺陷关联研究[D];北京邮电大学;2014年
本文编号:2866145
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2866145.html