一种缺陷关联方法及装置制造方法及图纸

技术编号:8862259 阅读:247 留言:0更新日期:2013-06-28 01:29
本发明专利技术公开了一种缺陷关联方法,包括:从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库;获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列;依据当前频繁子序列对应的缺陷,对缺陷报告中的缺陷进行分组;根据预设的缺陷关联模式,精化分组的缺陷。本发明专利技术同时还公开了一种缺陷关联装置。采用本发明专利技术的技术方案,可以对缺陷进行精确的分组。

【技术实现步骤摘要】

本专利技术涉及计算机中的缺陷关联技术,尤其涉及一种缺陷关联方法及装置
技术介绍
缺陷检测一般包括静态缺陷检测和人工审查两个阶段。静态缺陷检测工具能够检测软件存在的缺陷,并生成缺陷报告。针对静态缺陷检测工具所输出的缺陷报告,开发人员需要通过人工审查来逐一判断这一缺陷是否属实,或者这一缺陷是否足够重要以便需要开发人员修复。大量的缺陷输出、误报以及不重要的缺陷所占的比例过多,就必然会导致开发人员耗费大量的经历去审查缺陷报告。通常情况下开发人员有责任对缺陷进行评估以判定缺陷是否中肯。然而,处理这些缺陷的速度通常并不是很高,根据国内多个行业的大型系统的测试经验,一般每人每小时处理的缺陷在15至30个之间。如果一个静态缺陷检测工具针对某一软件报告了 6000个缺陷,每一个缺陷需要1.5分钟的人工时间来审查,那么一个开发人员需要连续工作18.75天才能全部审查完毕(每天8小时工作),如此耗费了大量的时间和精力。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种缺陷关联方法及装置,能够对缺陷进行分组,从而减少部分缺陷的识别工作,提高测试人员的工作效率。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术提供了一种缺陷关联方法,该方法包括:从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库;获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列;依据当前频繁子序列对应的缺陷,对缺陷报告中的缺陷进行分组;根据预设的缺陷关联模式,精化分组的缺陷。上述方案中,该方法还包括:确定当前频繁子序列能够组成更大的频繁子序列时,将当前频繁子序列组成更大的频繁子序列;消除所述更大的频繁子序列中不满足约束条件的频繁子序列。上述方案中,所述从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库包括:从缺陷报告中提取缺陷对应的变量声明代码、变量赋值处代码和缺陷发生处代码;对所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码进行语句分析及编译,而分别生成所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码对应的语法树;对所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码对应的语法树分别进行代码元素映射;获取映射后的代码元素对应的哈希值;将所述映射后的代码元素对应的哈希值转换为二进制表示的缺陷相关代码块序列信息库。上述方案中,所述获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列包括:获取所述缺陷相关代码块序列信息库中支持数大于等于1、且项集间隔大于等于O的频繁子序列;删除所述频繁子序列中项集个数小于或等于设定阈值的频繁子序列;以及,删除项集间隔大于或等于设定阈值的频繁子序列。上述方案中,所述根据预设的缺陷关联模式,精化分组的缺陷包括:获取缺陷分组Dk ;其中k>=0,k为缺陷分组编号;根据预设的缺陷关联模式Mi,对所有缺陷分组Dk中的缺陷进行模式匹配;其中i>=0, i为缺陷关联模式编号;获得与所述缺陷关联模式Mi匹配的所有缺陷集合DMij ;其中i>=0,j>=0, j为满足缺陷关联模式i的缺陷集合编号;DMs C Dk时,确定Dk为精化的缺陷分组,该缺陷分组Dk的缺陷关联模式为Mi ;其中,Q表不包含于;DM1J Cr Dk时,从缺陷分组Dk中查找包含DMij的最大缺陷分组Dm,将DMij插入缺陷分组Dm中,并且从不包含Dm的缺陷分组Dk中删除DMu中的元素;精化的缺陷分组为删除DMij中的元素之后的缺陷分组Dk和插入DMu的缺陷分组Dni,且该缺陷分组的缺陷关联模式为Mi;其中CT表示不包含于。本专利技术还提供了一种缺陷关联装置,该装置包括:缺陷报告处理单元、频繁子序列处理单元、提纯单元、缺陷分组单元、缺陷分组精化单元;其中,所述缺陷报告处理单元,用于从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库;所述频繁子序列处理单元,用于获取缺陷相关代码块序列信息库的基本频繁子序列;所述提纯单元,用于消除所述基本频繁子序列中不满足约束条件的频繁子序列;所述缺陷分组单元,用于依据当前频繁子序列对应的缺陷,对缺陷报告中的缺陷进行分组;所述缺陷分组精化单元,用于根据预设的缺陷关联模式,精化分组的缺陷。上述方案中,该装置还包括:确定单元和频繁子序列扩大单元;所述确定单元,用于确定当前频繁子序列能否够组成更大的频繁子序列,能时触发所述频繁子序列扩大单元;所述频繁子序列扩大单元,用于将当前频繁子序列组成更大的频繁子序列。上述方案中,所述缺陷报告处理单元包括:缺陷相关代码块提取子单元、语句分析子单元、代码元素映射子单元、哈希值转换子单元、二进制转换子单元;其中,所述缺陷相关代码块提取子单元,用于从缺陷报告中提取缺陷对应的变量声明代码、变量赋值处代码和缺陷发生处代码;所述语句分析子单元,用于对所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码进行语句分析及编译,而分别生成所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码对应的语法树;所述代码元素映射子单元,用于对所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码对应的语法树分别进行代码元素映射;所述哈希值转换子单元,用于获取映射后的代码元素对应的哈希值;所述二进制转换子单元,用于将所述映射后的代码元素对应的哈希值转换为二进制表示的缺陷相关代码块序列信息库。上述方案中,所述提纯单元包括:第一提纯单元、第二提纯单元;其中,所述第一提纯单元,用于删除频繁子序列中项集个数小于或等于设定阈值的频繁子序列;所述第二提纯单元,用于删除项集间隔大于或等于设定阈值的频繁子序列。上述方案中,所述缺陷分组精化单元包括:缺陷分组获取子单元、匹配子单元、精化子单元;其中,所述缺陷分组获取子单元,用于获取缺陷分组Dk ;其中k>=0,k为缺陷分组编号;所述匹配子单元,用于据预设的缺陷关联模式Mi,对所有缺陷分组Dk中的缺陷进行模式匹配;其中i>=0,i为缺陷关联模式编号;获得与所述缺陷关联模式Mi匹配的所有缺陷集合DMij ;其中i>=0,j>=0, j为满足缺陷关联模式i的缺陷集合编号;所述精化子单元,用于确定DMii c 0|时,确定Dk为精化的缺陷分组,且该缺陷分组Dk的缺陷关联模式为Mi ;其中,Q表示包含于;确定DM,j (Z Dk时,从缺陷分组Dk中查找包含DMij的最大缺陷分组Dm,将DMu插入缺陷分组Dm中,并且从除Dm以外的缺陷分组Dk中删除DMu中的元素;精化的缺陷分组为删除DMij中的元素之后的缺陷分组Dk和插入DMij的缺陷分组Dm ;其中,CT表示不包含于。本专利技术提供的缺陷关联方法及装置,从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库;获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列;依据当前频繁子序列对应的缺陷,对缺陷报告中的缺陷进行分组;根据预设的缺陷关联模式,精化分组的缺陷。如此,可以对缺陷进行精确的分组,从而减少部分缺陷的识别工作,提高测试人员的本文档来自技高网...

【技术保护点】
一种缺陷关联方法,其特征在于,该方法包括:从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库;获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列;依据当前频繁子序列对应的缺陷,对缺陷报告中的缺陷进行分组;根据预设的缺陷关联模式,精化分组的缺陷。

【技术特征摘要】
1.一种缺陷关联方法,其特征在于,该方法包括: 从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库; 获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列; 依据当前频繁子序列对应的缺陷,对缺陷报告中的缺陷进行分组; 根据预设的缺陷关联模式,精化分组的缺陷。2.根据权利要求1所述的缺陷关联方法,其特征在于,该方法还包括: 确定当前频繁子序列能够组成更大的频繁子序列时,将当前频繁子序列组成更大的频繁子序列; 消除所述更大的频繁子序列中不满足约束条件的频繁子序列。3.根据权利要求1所述的缺陷关联方法,其特征在于,所述从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库包括: 从缺陷报告中提取缺陷对应的变量声明代码、变量赋值处代码和缺陷发生处代码;对所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码进行语句分析及编译,而分别生成所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码对应的语法树; 对所述变量声明代码、所述变量赋值处代码和所述缺陷发生处代码对应的语法树分别进行代码元素映射; 获取映射后的代码元素对应的哈希值; 将所述映射后的代码元素对应的哈希值转换为二进制表示的缺陷相关代码块序列信息库。4.根据权利要求1所述的缺陷关联方法,其特征在于,所述获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列包括: 获取所述缺陷相关代码块序列信息库中支持数大于等于1、且项集间隔大于等于O的频繁子序列; 删除所述频繁子序列中项集个数小于或等于设定阈值的频繁子序列;以及,删除项集间隔大于或等于设定阈值的频繁子序列。5.根据权利要求1至4任一项所述的缺陷关联方法,其特征在于,所述根据预设的缺陷关联模式,精化分组的缺陷包括: 获取缺陷分组Dk ;其中k>=0,k为缺陷分组编号; 根据预设的缺陷关联模式Mi,对所有缺陷分组Dk中的缺陷进行模式匹配;其中i>=0,i为缺陷关联模式编号; 获得与所述缺陷关联模式Mi匹配的所有缺陷集合DMu ;其中i>=0,j>=0,j为满足缺陷关联模式i的缺陷集合编号; DMlj e Dk时,确定Dk为精化的缺陷分组,该缺陷分组Dk的缺陷关联模式为Mi;其中,&表不包含于;DMy <z Dfc时,从缺陷分组Dk中查找包含DMij的最大缺陷分组Dm,将DMij插入缺陷分组Dm中,并且从不包含Dm的缺陷分组Dk中删除DMij中的元素;精化的缺陷分组为删除DMij中的元素之后的缺陷分组Dk和插入DMu的缺陷分组Dni,且该缺陷分组的缺陷关联模式为Mi ;其中,C表不不包含于。6.一种缺陷关联装置,其特征在于,该装置包括:缺陷报告处理单元、频繁子序列处理单元、提纯单元、缺陷分组单元、缺陷分组精化单元;其中, 所述缺陷报告处理单元,用于从缺陷报告中提取缺陷对应的代码块...

【专利技术属性】
技术研发人员:金大海宫云战张大林黄俊飞王雅文
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1