软件缺陷检测方法及装置制造方法及图纸

技术编号:10308374 阅读:229 留言:0更新日期:2014-08-08 15:51
本发明专利技术公开了一种软件缺陷检测方法及装置,其中,方法包括:扫描源代码,检测所述源代码中是否存在缺陷;若所述源代码中存在缺陷,则确定所述缺陷是否为已确认过的误报缺陷;若所述缺陷不是已确认过的误报缺陷,则将所述缺陷显示给用户,以供用户进行确认或修改;若所述缺陷是已确认过的误报缺陷,则拒绝将所述缺陷显示给用户。本发明专利技术通过确定所述缺陷是否为已确认过的误报缺陷,将未确认过的缺陷显示给用户,以供用户进行确认或修改,将已确认过的误报缺陷屏蔽掉,不再显示给用户,这样在后续的检测过程中用户就不用再对已确认过的误报缺陷进行重复确认,可以大大减少用户的工作量,减少用户的负担。

【技术实现步骤摘要】
软件缺陷检测方法及装置
本专利技术实施例涉及计算机软件技术,尤其涉及一种软件缺陷检测方法及装置。
技术介绍
随着科学技术的发展,软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素,而软件缺限的存在容易导致软件产品在某种程度上不能满足用户的需求,对软件质量有着重要的影响。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺限。目前,软件缺陷的检测方法有很多,最常见的是静态分析法,即在不实际执行程序的情况下,对被测试程序源代码进行扫描,提取程序关键语法,解释其语义,理解程序行为,根据预先设定的漏洞特征、安全规则等检测程序中所存在的缺陷。但是,上述静态检测方法,一般采用将缺陷所在的位置显示给用户,以供用户确认是否是误报的缺陷,并针对非误报的缺陷进行修改,当用户再次扫描源代码时或者对后续版本的源代码进行扫描时,原来已确认后的误报缺陷会再次被检测出来,这样就需要用户对已确认过的误报缺陷再进行一次确认,致使用户做大量的重复性工作,给用户带来不便。
技术实现思路
本专利技术提供一种软件缺陷检测方法及装置,用以解决现有技术中当用户再次扫描源代码时或者对后续版本的源代码进行扫描时,原来已确认后的误报缺陷会再次被检测出来,这样就需要用户对已确认过的误报缺陷再进行一次确认,致使用户做大量的重复性工作,给用户带来不便的缺陷。本专利技术提供一种软件缺陷检测方法,包括:扫描源代码;检测所述源代码中是否存在缺陷;若所述源代码中存在缺陷,则确定所述缺陷是否为已确认过的误报缺陷;若所述缺陷不是已确认过的误报缺陷,则将所述缺陷显示给用户,以供用户进行确认或修改;若所述缺陷是已确认过的误报缺陷,则拒绝将所述缺陷显示给用户。本专利技术还提供一种软件缺陷检测装置,包括:扫描模块,用于扫描源代码;检测模块,用于检测所述源代码中是否存在缺陷;确定模块,用于若所述源代码中存在缺陷,则确定所述缺陷是否为已确认过的误报缺陷;显示模块,用于若所述缺陷不是已确认过的误报缺陷,则将所述缺陷显示给用户,以供用户进行确认或修改;拒绝模块,用于若所述缺陷是已确认过的误报缺陷,则拒绝让所述显示模块将所述缺陷显示给用户。本专利技术通过确定所述缺陷是否为已确认过的误报缺陷,将未确认过的缺陷显示给用户,以供用户进行确认或修改,将已确认过的误报缺陷屏蔽掉,不再显示给用户,这样在后续的检测过程中用户就不用再对已确认过的误报缺陷进行重复确认,可以大大减少用户的工作量,减少用户的负担。附图说明图1为本专利技术提供的软件缺陷检测方法实施例一流程示意图;图2为本专利技术提供的软件缺陷检测方法实施例二流程示意图;图3为本专利技术提供的软件缺陷检测装置实施例一结构示意图;图4为本专利技术提供的软件缺陷检测装置实施例二结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术提供的软件缺陷检测方法实施例一流程示意图,如图1所示,具体包括如下步骤:S101、扫描源代码;需要说明的是,本实施例的执行主体为图3和图4所示的软件缺陷检测装置,在开始测试被测软件存在的缺陷之前,需要获取到软件的源程序代码,例如,可以采用用户输入或上传的方式。在获取到软件的源程序代码之后,则开始逐行扫描源代码,以检测所述源代码中是否存在缺陷。S102、检测所述源代码中是否存在缺陷;具体来说,本实施例检测所述源代码中是否存在缺陷可以采用现有技术,例如静态检测法,直接分析源代码,通过词法分析、语法分析和静态语义分析,检测源代码中存在的缺陷,上述方法均为现有技术,这里不再累述。若检测到所述源代码中存在的缺陷,例如,每检测到一个缺陷,则执行一次步骤S103,或者,等检测完源代码中存在的所有缺陷之后,执行步骤S103,若检测到所述源代码中未存在缺陷,则结束本次检测。S103、确定所述缺陷是否为已确认过的误报缺陷;具体来说,可以采用下述方法来确定:确定所述缺陷是否存在于误报缺陷库中,所述误报缺陷库存储有所述用户已确认过的误报缺陷,例如,所述误报缺陷库中可以存储已确认过的误报缺陷所在的程序代码或者程序代码对应的行号等,当所述误报缺陷库中存储有已确认过的误报缺陷所在的程序代码时,则提取所述缺陷所在的程序代码,确定所述缺陷所在的程序代码是否存在于所述误报缺陷库中,或者,当所述误报缺陷库中存储有已确认过的误报缺陷所在的程序代码对应的行号时,提取所述缺陷所在的程序代码对应的行号,确定所述缺陷所在的程序代码对应的行号是否存在于所述误报缺陷库中,若存在,则确定所述缺陷为已确认过的误报缺陷;若不存在,则确定所述缺陷为未确认过的缺陷。若确定所述缺陷不是已确认过的误报缺陷,则执行步骤S104,若确定所述缺陷是已确认过的误报缺陷,则执行步骤S105。S104、将所述缺陷显示给用户,以供用户进行确认或修改;S105、拒绝将所述缺陷显示给用户。具体来说,上述检测过程可以为每检测到一个缺陷,则确定该缺陷是否为已确认过的误报缺陷,若确定该缺陷不是已确认过的误报缺陷,则将该缺陷显示给用户,以供用户进行确认或修改,若确定该缺陷是已确认过的误报缺陷,则拒绝将该缺陷显示给用户,重复上述过程,直至检测完源代码中存在的所有缺陷;或者,等检测完源代码中存在的所有缺陷之后,一一确定上述所有缺陷是否为已确认过的误报缺陷,相应地,则将不是已确认过的误报缺陷的缺陷一一显示给用户,以供用户进行确认或修改,拒绝将已确认过是误报缺陷的缺陷显示给用户,或者,一一确定上述所有缺陷中不是已确认过的误报缺陷的缺陷,等确定完所有的缺陷之后,然后将这些不是已确认过的误报缺陷的缺陷一次性显示给用户,以供用户进行确认或修改。本实施例通过确定所述缺陷是否为已确认过的误报缺陷,将未确认过的缺陷显示给用户,以供用户进行确认或修改,将已确认过的误报缺陷屏蔽掉,不再显示给用户,这样在后续的检测过程中用户就不用再对已确认过的误报缺陷进行重复确认,可以大大减少用户的工作量,减少用户的负担。图2为本专利技术提供的软件缺陷检测方法实施例二流程示意图,如图2所示,本实施例在上述方法实施例一的基础上,进一步增加了根据预设条件对检测到的缺陷进行分类,得到各类型的缺陷这一方法步骤,具体包括如下步骤:S201、扫描源代码;S202、检测所述源代码中是否存在缺陷;需要说明的是,检测所述源代码中是否存在缺陷,待检测完源代码中存在的所有缺陷之后,执行步骤S203。S203、根据预设条件对检测到的缺陷进行分类,得到各类型的缺陷;具体来说,所述预设条件可以包含下述条件中的至少一种:各缺陷处对应的变量是否是不同的变量;各缺陷从所述对应的变量所在当前节点到所在定义节点的前向踪迹是否相似;各缺陷处的缺陷特征是否一致。下面以所述预设条件为各缺陷处对应的变量是否是不同的变量、各缺陷从所述对应的变量所在当前节点到所在定义节点的前向踪迹是否相似及各缺陷处的缺陷特征是否一致为例,进行详细说明得到各类型的缺陷的过程。分析所述源代码,生成控制流图,所述控制流图是程序本文档来自技高网...
软件缺陷检测方法及装置

【技术保护点】
一种软件缺陷检测方法,其特征在于,包括:扫描源代码;检测所述源代码中是否存在缺陷;若所述源代码中存在缺陷,则确定所述缺陷是否为已确认过的误报缺陷;若所述缺陷不是已确认过的误报缺陷,则将所述缺陷显示给用户,以供用户进行确认或修改;若所述缺陷是已确认过的误报缺陷,则拒绝将所述缺陷显示给用户。

【技术特征摘要】
1.一种软件缺陷检测方法,其特征在于,包括:扫描源代码;检测所述源代码中是否存在缺陷;若所述源代码中存在缺陷,则确定所述缺陷是否为已确认过的误报缺陷;若所述缺陷不是已确认过的误报缺陷,则将所述缺陷显示给用户,以供用户进行确认或修改;若所述缺陷是已确认过的误报缺陷,则拒绝将所述缺陷显示给用户;所述确定所述缺陷是否为已确认过的误报缺陷,包括:确定所述缺陷是否存在于误报缺陷库中,所述误报缺陷库存储有所述用户已确认过的误报缺陷;若存在,则确定所述缺陷为已确认过的误报缺陷;若不存在,则确定所述缺陷为未确认过的缺陷;在所述确定所述缺陷是否为已确认过的误报缺陷之前,还包括:根据预设条件对检测到的缺陷进行分类,得到各类型的缺陷;相应地,所述确定所述缺陷是否为已确认过的误报缺陷,包括:确定各类型的缺陷是否为已确认过的同属于该类型的误报缺陷;所述预设条件包含下述条件中的至少一种:各缺陷处对应的变量是否是不同的变量;各缺陷从所述对应的变量所在当前节点到所在定义节点的前向踪迹是否相似;各缺陷处的缺陷特征是否一致。2.一种软件缺陷检测...

【专利技术属性】
技术研发人员:杨学红
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京;11

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

1