本发明属于软件缺陷检测技术领域,特别是涉及一种软件缺陷检测方法及其检测系统。
背景技术
软件缺陷(defect),常常又被叫做bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。ieee729-1983对缺陷有一个标准的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
严重性和优先级是表征软件测试缺陷的两个重要因素,它影响软件缺陷的统计结果和修正缺陷的优先顺序,特别在软件测试的后期,将影响软件是否能够按期发布与否。
对于软件测试初学者而言,或者没有软件开发经验的测试工程师,对于这两个概念的理解,对于它们的作用和处理方式往往理解的不彻底,实际测试工作中不能正确表示缺陷的严重性和优先级。这将影响软件缺陷报告的质量,不利于尽早处理严重的软件缺陷,可能影响软件缺陷的处理时机。
本发明致力于发明一种软件缺陷检测方法及其检测系统,用于解决软件缺陷过程中根据不同严重级别的软件缺陷产生不同的报告。
技术实现要素:
本发明的目的在于提供一种软件缺陷检测方法及其检测系统,通过先采用缺陷类型判断模块判断缺陷是否为严重缺陷类型,再采用编码缺陷类型判断模块判断缺陷类型的类别,最后通过对比模块确认编码缺陷类型确认显示结果与对软件缺陷的处理,解决了现有不同的软件缺陷统一处理与报告导致缺陷处理的效率降低却不能突出严重缺陷的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为一种软件缺陷检测方法,包括
s000:定时扫描软件源代码;
s001:检测软件源代码是否存在缺陷;若存在,则执行s002;若否,则执行s000;
s002:判断缺陷类型;若为严重缺陷类型,则执行s005;若为编码缺陷类型,则执行s004;
s003:判断是否为误报缺陷;若是,则执行s004;若否,则执行s005;
s004:不显示缺陷;
s005:显示缺陷。
优选地,s001中检测软件源代码是否存在缺陷采用基于字典学习的软件缺陷检测算法。
优选地,s002中严重缺陷类型为严重影响软件或运行平台的缺陷;所述严重缺陷检测到即显示给用户,用于保证软件与运行平台的正常运行。
优选地,s003中判断是否为误报缺陷的具体过程如下:
t000:确认编码缺陷类型种类;
t001:到指定编码缺陷类型库中根据编码位置判断是否为同址同类型编码缺陷;若是则执行t002;若否则执行t003;
t002:不显示缺陷;
t003:判断是否为异址同类型编码缺陷;若是则执行t004;若否,则执行t005;
t004:不显示缺陷且在同类编码缺陷列表添加软件缺陷地址;
t005:显示缺陷。
一种软件缺陷检测系统,包括
扫描模块,用于定时扫描指定软件源代码;
检测模块,用于检测软件源代码缺陷;
缺陷类型判断模块,用于区分严重缺陷类型和编码缺陷类型;
编码缺陷类型判断模块,用于判断编码缺陷缺陷的类别;
对比模块,用于将检测到的软件缺陷与对应的编码缺陷类型列表中的编码缺陷对比确认相同编码缺陷类型;
存储模块,用于存储缺陷记录,包括各编码缺陷类型列表;
显示模块,用于显示软件缺陷。
优选地,所述检测模块内采用基于字典学习的软件缺陷检测算法。
优选地,所述扫描模块集成了定时器。
优选地,所述编码缺陷类型列表中存储对应的编码缺陷类型。
本发明具有以下有益效果:
1、本发明通过缺陷类型判断模块区分严重缺陷类型和编码缺陷类型并通过编码缺陷类型判断模块细化编码缺陷的类型,提高了缺陷类型的从发现到处理的效率以及缺陷管理的便利;
2、本发明通过对比模块将检测到的软件缺陷与对应的编码缺陷类型列表中的编码缺陷对比确认相同编码缺陷类型,从而确认检测到的软件缺陷是否为误报缺陷,进而避免重复同时同类型缺陷采用编码缺陷类型列表存储便于处理与管理,提高了软件缺陷解决的效率。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种软件缺陷检测方法的流程图;
图2为s003中判断是否为误报缺陷的流程图;
图3为本发明一种软件缺陷检测系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明为一种软件缺陷检测方法,包括
s000:定时扫描软件源代码;
s001:检测软件源代码是否存在缺陷;若存在,则执行s002;若否,则执行s000;
s002:判断缺陷类型;若为严重缺陷类型,则执行s005;若为编码缺陷类型,则执行s004;
s003:判断是否为误报缺陷;若是,则执行s004;若否,则执行s005;
s004:不显示缺陷;
s005:显示缺陷。
其中,s001中检测软件源代码是否存在缺陷采用基于字典学习的软件缺陷检测算法。
其中,s002中严重缺陷类型为严重影响软件或运行平台的缺陷;严重缺陷检测到即显示给用户,用于保证软件与运行平台的正常运行。
其中,s003中判断是否为误报缺陷的具体过程如下:
t000:确认编码缺陷类型种类;
t001:到指定编码缺陷类型库中根据编码位置判断是否为同址同类型编码缺陷;若是则执行t002;若否则执行t003;
t002:不显示缺陷;
t003:判断是否为异址同类型编码缺陷;若是则执行t004;若否,则执行t005;
t004:不显示缺陷且在同类编码缺陷列表添加软件缺陷地址;
t005:显示缺陷。
一种软件缺陷检测系统,包括
扫描模块,用于定时扫描指定软件源代码;
检测模块,用于检测软件源代码缺陷;
缺陷类型判断模块,用于区分严重缺陷类型和编码缺陷类型;
编码缺陷类型判断模块,用于判断编码缺陷缺陷的类别;
对比模块,用于将检测到的软件缺陷与对应的编码缺陷类型列表中的编码缺陷对比确认相同编码缺陷类型;
存储模块,用于存储缺陷记录,包括各编码缺陷类型列表;
显示模块,用于显示软件缺陷。
其中,检测模块内采用基于字典学习的软件缺陷检测算法。
其中,扫描模块集成了定时器。
其中,编码缺陷类型列表中存储对应的编码缺陷类型。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。