【技术实现步骤摘要】
本专利技术涉及软件静态分析,尤其涉及软件静态警告的分类,具体涉及基于阈值操作的代价敏感神经网络的警告分类方法。
技术介绍
在软件开发过程中,大量资源被消耗在发现和解决软件中的缺陷。除了一些大公司在开发过程中会使用自动化测试方法,在大多数中小规模的软件公司或项目团队中,软件的测试工作仍然停留在手工处理阶段。其测试任务往往繁重且低效,稍小的功能变动都需要回归测试其他功能,在资源有限以及时间紧迫的情况下,软件测试工作通常不能顺利的完成,造成仍有许多未被发现的错误遗留在软件系统中。测试手段的匮乏己经成为制约软件产出效率以及软件质量的瓶颈。鉴于此,动态分析和静态分析方法被分别提出,以在节约开发资源的前提下发现软件潜在的错误。动态分析需要编译执行程序,以观察该软件是否满足预先设置好的输出结果;静态分析通常对源代码或其相应的二进制文件进行分析,在不编译运行软件的情况下发现代码中是否存在不佳的编程实践。静态分析技术目标不在于证实软件是否输出正确或发现程序中的逻辑问题,而是作为动态分析方法的一种补充,在项目编码阶段尽可能地发现潜在问题,提高程序的鲁棒性和可靠性。静态分析技术可以自动化检测软件中可能造成程序崩溃的潜在异常代码块,如空指针引用、下标越界、代码风格不一致等,帮助开发人员在项目的初期阶段发现一些可能存在的代码安全隐患。目前,前沿的JAVA静态分析工具有FindBugs、PMD、Checkstyle等,本专利技术将这些静态分析工具分析报告的潜在异常信息统一称为警告。与测试和代码走查等代码质量控制手段不同的是,静态分析工具往往会报告大量的警告,平均每千行代码中有40个 ...
【技术保护点】
基于阈值操作的代价敏感神经网络的警告分类方法,其特征在于,包括如下步骤:S1:使用FindBugs工具对目标软件一系列版本的jar文件进行分析,得到目标软件的静态警告;S2:对步骤S1获得的静态警告进行标注;S2a:将目标软件一系列版本中,相邻两个版本中静态警告进行两两对比,如果前一个版本中警告在后一个版本中消失则认为该警告是有效警告;反之,如果前一个版本中的警告在后一个版本中仍然存在则认为该警告是误报警告;S2b:将有效警告中重复的有效警告剔除后,剩下的所有的有效警告构成有效警告集,将所有误报警告中重复的误报警告剔除后,剩下的所有误报警告构成误报警告集,有效警告集和误报警告集构成样本集;有效警告集中的有效警告和无效警告集中的无效警告均为样本集中的样本;S3:采用BP神经网络,使用样本集中的样本训练分类器,采用该分类器对样本集中的所有样本进行分类,计算得到用于预测有效警告或误报警告的真实类别概率值,采用阈值操作的方式对所述真实类别概率值进行调整得到新类别概率值,然后使用该新类别概率值对样本集中的所有样本进行预测分类,将样本集中的所有样本预测为有效警告或误报警告。
【技术特征摘要】
1.基于阈值操作的代价敏感神经网络的警告分类方法,其特征在于,包括如下步骤:S1:使用FindBugs工具对目标软件一系列版本的jar文件进行分析,得到目标软件的静态警告;S2:对步骤S1获得的静态警告进行标注;S2a:将目标软件一系列版本中,相邻两个版本中静态警告进行两两对比,如果前一个版本中警告在后一个版本中消失则认为该警告是有效警告;反之,如果前一个版本中的警告在后一个版本中仍然存在则认为该警告是误报警告;S2b:将有效警告中重复的有效警告剔除后,剩下的所有的有效警告构成有效警告集,将所有误报警告中重复的误报警告剔除后,剩下的所有误报警告构成误报警告集,有效警告集和误报警告集构成样本集;有效警告集中的有效警告和无效警告集中的无效警告均为样本集中的样本;S3:采用BP神经网络,使用样本集中的样本训练分类器,采用...
【专利技术属性】
技术研发人员:葛永新,潘志辉,徐玲,洪明坚,杨梦宁,张小洪,杨丹,王洪星,黄晟,
申请(专利权)人:重庆大学,
类型:发明
国别省市:重庆;50
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。