基于数据流分析的警报关联研究

基于数据流分析的警报关联研究#李蕊彤1,金大海1,薛伟2**(1.北京邮电大学网络与交换技术国家重点实验室,北京100876;5101520253035402.75475部队)摘要:在大型软件工程测试中,静态缺陷检测工具产生的警报数量巨大,开发人员需要耗费大量精力来判断警报实际是缺陷还是误报。本文通过在缺陷检测过程中,发掘警报间依赖关系,对警报进行分类;对于每类警报,通过前向数据流分析和后向数据流分析选取主导警报。如果该类中的主导警报为误报,则该类其它警报也为误报。实验表明,本文的聚类方法可以减少40%-50%的人工审查工作。关键词:软件工程;静态缺陷检测;数据流分析;缺陷关联;中图分类号:TP311.5AlarmClusteringbasedonDataFlowAnalysisLiRuitong1,JinDahai1,XueWei2(1.StateKeyLaboratoryofNetworkingAndSwitchingTechnology,BeijingUniversityofpostsandTelecommunications,Beijing100876;2.75475PoliceForce)Abstract:Staticanalysistoolshavebeensuccessfullyadoptedinsoftawaretesting;howevermillionsofalarmsthataregeneratedbythetoolsarereviewedmanuallyataverylowspeed.Tohelpwiththisreviewprocess,wefirstclusteredalarmsbydiscoveringdependenciesamongthemsuchthatiftheleaderalarmofaclusterisafalsepositivethenitisassuredthatallothersinthesameclusterarealsofalse.Empiricalresultsshowthatourclusteringmethodscouldreduce40-50%manualreviewefforts.Keywords:SoftwareEngineering;StaticAnalysis;DataFlowAnalysis;Alarmclustering0引言缺陷检测工具可以自动检测代码缺陷,在高可信软件开发领域扮演着重要的角色[1]。然而,针对缺陷检测工具所报告的警报,开发人员需要通过大量的人工审查来判断某警报是否属实(即是否为真,而不是误报)。但是处理这些警报的速度并不是很高。根据我们对国内多个行业的大型系统测试经验,一般每一个警报需要1.5分钟的人工时间来审查。针对某一系统,如果一个分析工具报告了6000个警报,那么一个开发人员需要连续工作18.75天才能全部审查完毕(每天8小时工作)。因此,减少警报审查所需工作量意义重大。在现阶段缺陷检测工具的输出结果中误报较多,而警报间关系缺失缺乏有效聚类,且由于代码中存在大量代码复用、方法复用等,输出的警报存在重复性,缺乏合理分组优化。本研究围绕上述问题提出了基于数据流分析的警报关联方法。我们将具有相互依赖关系的警报聚为一类并为每类找出一个主导警报,其它警报标识为跟随警报。在审查时,仅需判断主导警报是否为误报即可确定该类警报中跟随警报是否为误报。如图1所示,所有数组越界类警报实质上是同一个数组被相同下标引用,若其中一个警报为误报,则其它五个警报也是误报。基金项目:国家自然科学基金(91318301)作者简介:李蕊彤(1989-),女,硕士研究生,主要研究方向:计算机科学、软件测试通信联系人:金大海(1974-),男,副教授,主要研究方向:软件测试.jindh@bupt.edu.cn-1-for(i=0;i<len;i++)//i,len的值均未知{strArr[i].m1=strArr[i].m1+v1;strArr[i].m2=strArr[i].m2+v2;strArr[i].m3=strArr[i].m3+v3;}图1数组越界警报Fig.1OutofBoundaryWarnings455055本文第1节介绍了警报关联相关工作;第2节详细介绍了警报关联的概念并提出相似警报聚类算法;第3节介绍了该警报聚类方法的具体实现;第4节通过实验对本文方法进行评估;最后对全文进行了总结。1相关工作基于静态缺陷检测工具产生的警报数据,有多种不同的进行警报关联的方法。Williams等人针对缺陷检测工具所输出的警报复杂和冗余这一弊病,通过构建软件代码资源库,对资源库进行挖掘,进而来驱动缺陷检测工具,以达到优化警报列表的目的[2]。但这一工具依赖于CVS,降低了工具的有效性;Heckman发表的综述总结了程序运行时警报进行分类的方法[3],这些方法涵盖了警报类型选择,上下文信息,图理论,数学统计建模,机器学习等各种理论,但是这些方法最终都未能既准确又有效的进行聚类。2相似警报聚类研究2.1相似警报的概念静态缺陷检测工具通过分析程序源代码来发现程序在运行时可能有的潜在缺陷。常见的...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?