当前位置: 首页 > 专利查询>南京大学专利>正文

一种适用于快速软件开发模式的实时软件缺陷检测方法技术

技术编号:8682642 阅读:156 留言:0更新日期:2013-05-09 02:39
本发明专利技术公开一种适用于快速软件开发模式的实时软件缺陷检测方法,首先初始化模型使其对任意模块的检测结果置信度为0;等待并接收一个刚完成编码的软件模块;利用当前缺陷检测模型对所接收的软件模块进行实时检测;若缺陷检测模型的缺陷检测置信度低于预设阈值,将所接收的软件模块送交测试人员进行详细测试,输出其缺陷情况,否则直接输出检测结果;利用接收到的软件模块对当前模型进行实时增量式建模;返回等待步骤接收新的软件模块直至所有软件模块开发完毕。该方法能够在编码过程中同步利用不断积累的软件模块进行实时建模,并在每个模块开发完成后及时为开发人员提供该模块的缺陷预警。

【技术实现步骤摘要】

本专利技术涉及ー种适用于快速软件开发模式的实时软件缺陷检测方法,属于自动化软件质量辅助控制

技术介绍
软件是信息系统的灵魂,是各行各业实现信息化的基础和重要支柱。为适应于真实世界问题中纷繁复杂的应用需求,软件系统功能变得越来越多,其复杂性也越来越高。面对庞大复杂的软件系统,通过对所有模块进行详细测试从而发现包含缺陷的模块已变得十分困难,因此开发团队必须借助自动化软件质量辅助控制装置对软件模块进行扫描,发现包含缺陷的模块,才能尽可能多的去除软件缺陷,提高软件质量。自动化软件质量辅助控制装置的核心是缺陷检测模型。为构建性能好的缺陷检测模型,现有技术必须等待编码后对相当数量模块进行详细测试以获得其缺陷情況,从中获取该软件独有的缺陷模型用于对其余模块中的缺陷实施有效检测。然而,对一定数量的模块进行详细测试、对缺陷模式的建模都需要消耗大量时间。在该过程中,开发人员无事可干,必须被动等待该过程结束才能利用模型发现有缺陷模块,造成了开发资源的闲置,延缓了开发进度。在软件快速开发模式下,现有技术的这一局限显得更加明显。事实上,如果开发过程、建模过程、检测过程可以同步进行,在开发人员每完成一个模块的开发吋,自动化软件质量辅助控制装置就能对该模块的缺陷情况进行有效检測,并实时地向开发人员反馈其缺陷情况,以便及时修改,就可以减少等待时间,提高软件质量和生产率。然而,现有建模技术难以突破这ー障碍。
技术实现思路
专利技术目的:目前软件缺陷检测方法必须在编码完成并对相当数量软件模块实行人エ缺陷检测后方能建立检测模型,而开发人员需等待模型建立完毕后才能根据检测结果定位缺陷模块并对其修改,难以适应快速软件开发的需求。针对这ー问题,本专利技术提出了ー种在编码过程中进行实时软件缺陷预警的软件缺陷检测方法,即ー种适用于快速软件开发模式的实时软件缺陷检测方法。该方法能够在编码过程中同步利用不断积累的软件模块进行实时建模,并在每个模块开发完成后及时为开发人员提供该模块的缺陷预警。技术方案:ー种适用于快速软件开发模式的实时软件缺陷检测方法,通过以下步骤实现对刚完成编码的软件模块实时地缺陷检测:步骤(I)初始化模型,使其对任意模块的检测结果置信度为0 ;步骤(2)等待并接收ー个刚完成编码的软件模块;步骤(3)利用当前缺陷检测模型对所接收的软件模块进行检测;步骤(4)若缺陷检测模型的缺陷检测置信度低于预设阈值,则转入步骤(5),否则转入步骤(7);步骤(5)将所接收的软件模块送交测试人员进行详细测试,获取其缺陷情况;步骤(6)利用所接收的软件模块及其缺陷情况对当前缺陷检测模型进行增量式建模,并将软件模块有缺陷情况反馈模块开发者,转入步骤(8);步骤(7)利用所接收的缺陷情况未知的软件模块当前缺陷检测模型进行增量式建模,并将模型的检测结果反馈模块开发者;步骤(8)若还有软件模块尚未开发完毕,转步骤(2),否则结束。其中,缺陷检测模型的输出为缺陷检测结果(即“有缺陷”或“无缺陷”)和相应的缺陷检测置信度(取值((Tl))。检测置信度越接近1,表明缺陷检测器对相应的检测结果就越肯定。例如:如果结果是“有缺陷”,置信度为0.9,则说明检测模型非常肯定软件模块里包含缺陷。对于不同的软件模块,其检测结果和检测置信度由模块自身及当前模型唯一确定。有益效果:与现有技术相比,本专利技术提供的适用于快速软件开发模式的实时软件缺陷检测方法,能够将建模过程、检测过程和软件模块开发过程相融合,当一个模块完成开发后,利用缺陷检测模型对该模块进行检测,并输出缺陷結果,同时还利用此模块对当前检测模型进行实时增量式建模,以提升模型的检测性能。附图说明图1为基于自动化软件质量辅助控制装置的软件开发过程图;图2为现有的软件缺陷检测器工作过程图;图3为本专利技术实施例的实时软件缺陷检测器工作流程图;图4为本专利技术实施例的实时软件缺陷检测与建模流程图;图5为本专利技术实施例的软件缺陷检测模型实时建模流程图。具体实施例方式下面结合具体实施例,进ー步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。基于自动化软件质量控制装置的软件开发过程如图1所示。在需求分析、软件设计、程序模块编码过程后,将所有程序模块提交自动化软件质量辅助控制装置进行处理,并输出每个模块的缺陷情况。若尚有模块包含缺陷,则通知开发人员对其进行调试和修改,然后再对修改后的代码进行缺陷检测,直至没有模块包含缺陷,最后对外发布软件。现有自动化软件质量辅助控制装置的核心——软件缺陷检测器的工作过程如图2所示。该检测器在对模块进行缺陷检测之前,需要利用一定数量的模块进行训练,以建立缺陷检测模型。训练模块集的生成需借助人工代码检测或详细测试,通常需要消耗大量时间;同时,缺陷检测模型的构建过程同样需要消耗一定的时间。因此,在能够输出对模块的自动缺陷检测结果之前,需要等待生成训练模块集及建立模型,在此过程中,所有开发人员将无事可做,造成了开发资源的闲置,延缓了开发进度。难以适应快速软件开发的需求。本实施例的实时软件缺陷检测器如图3所示,本实施例的实时软件缺陷检测器能够将建模过程、检测过程和模块开发过程相融合,当一个模块完成开发后,利用当前的缺陷检测模型对该软件模块进行检测,并输出缺陷結果,同时还利用此模块对当前缺陷检测模型进行实时增量式建摸,以提升模型的检测性能。该缺陷检测器的实时缺陷检测及建模方法流程在图4和图5中进行详细介绍。如图4所示,适用于快速开发模式的实时软件缺陷检测方法:步骤0是起始动作。步骤I进行模型的初始化,在此步骤中将当前缺陷检测模型初始化,使得该缺陷检测模型对任意给定的软件模块X进行缺陷检测的置信度Ftl(X)=O15步骤2进入缺陷检测过程,等待开发人员进行软件开发,并接收在t时刻由开发人员向自动化软件质量辅助控制装置提交的ー个软件模块xt。步骤3利用时刻t对应的缺陷检测模型Ft对软件模块Xt的缺陷情况进行检测。步骤4判断检测置信度Ft (Xt)是否小于ー个预设的阈值9,若不小于该阈值,则转入步骤6,否则转入步骤5 ;步骤5通过人工代码检查或详细测试获取软件模块Xt是否包含缺陷。步骤6向提交该软件模块的开发人员输出软件模块Xt的缺陷情況。步骤7利用 软件模块Xt进行实时增量式建模,用建模所得缺陷检测模型Ft+1替换当前缺陷检测模型Ft,建模过程详细说明见图5。步骤8判断是否整个软件项目仍然存在需要进行缺陷检测的软件模块,若有则转入步骤9,若没有转入步骤10 ;步骤9时间计数器t加1,并转入步骤2继续等待模块提交。步骤10软件缺陷检测过程结束。图5详细说明了图4中步骤7实时增量式建模的子流程,正是该过程使得建模过程可以在接收到每ー个模块后实时地进行。步骤70是建模过程起始动作。步骤71接收训练模块Xt以及其缺陷情況,在此,缺陷情况表示该软件模块是否包含软件缺陷,其获取可以通过图4步骤5人工代码检查或详细测试,亦可通过图4步骤4的缺陷检测模型Ft。步骤72判断软件模块Xt的缺陷情况是否通过人工代码检查或测试获得,如果是转入步骤73,否则转入步骤74。步骤73通过式(3)和式(4)利用软件模块Xt及对应缺陷情况本文档来自技高网...

【技术保护点】
一种适用于快速软件开发模式的实时软件缺陷检测方法,其特征在于,包括如下步骤:?步骤(1)?初始化模型,使其对任意模块的检测结果置信度为0;步骤(2)?等待并接收一个刚完成编码的软件模块;步骤(3)?利用当前缺陷检测模型对所接收的软件模块进行检测;步骤(4)?若缺陷检测模型的缺陷检测置信度低于预设阈值,则转入步骤(5),否则转入步骤(7);步骤(5)?将所接收的软件模块送交测试人员进行详细测试,获取其缺陷情况;步骤(6)?利用所接收的软件模块及其缺陷情况对当前缺陷检测模型进行增量式建模,并将软件模块有缺陷情况反馈给模块开发者,转入步骤(8);步骤(7)?利用所接收的缺陷情况未知的软件模块对当前缺陷检测模型进行增量式建模,并将缺陷检测模型的检测结果反馈给模块开发者;步骤(8)?若还有软件模块尚未开发完毕,转步骤(2),否则结束。

【技术特征摘要】

【专利技术属性】
技术研发人员:黎铭王东周志华
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1