定位缺陷的方法及装置制造方法及图纸

技术编号:14455620 阅读:82 留言:0更新日期:2017-01-19 04:19
本发明专利技术公开了一种定位缺陷的方法及装置。所述方法包括:从软件程序的运行日志文件中提取异常堆栈数据;根据所述异常堆栈数据,生成网络拓扑图,所述网络拓扑图表征所述软件程序的历史缺陷情况;根据所述网络拓扑图,确定所述软件程序中的高危缺陷。通过运行日志文件定位缺陷,无须分析全部源代码,降低了缺陷定位的复杂度,并且借助于网络拓扑图,能够准确识别高危缺陷,提高缺陷定位的效率。

【技术实现步骤摘要】

本公开涉及计算机领域,具体地,涉及一种定位缺陷的方法及装置
技术介绍
随着信息技术的发展,运行在计算机上的软件程序越来越多。为了保证软件程序在计算机上能够正常运行,在发布软件程序之前,程序员会检测软件程序中是否存在缺陷,如果软件程序中存在缺陷,则对软件程序进行修改,直至软件程序中不存在缺陷为止。然后发布无缺陷的软件程序。相关技术中,可以通过静态分析软件程序的源代码,或者建立训练集,以检测软件程序中是否存在缺陷。然而,静态分析的方法效率较低,不适用于源代码的数量较大的场景。建立训练集的方法复杂度较高,且对高危缺陷不敏感。
技术实现思路
本公开的目的是提供一种定位缺陷的方法及装置,采用该方法,可以方便快捷的定位软件程序中的缺陷。为了实现上述目的,本公开提供一种定位缺陷的方法,所述方法包括:从软件程序的运行日志文件中提取异常堆栈数据;根据所述异常堆栈数据,确定缺陷参数,所述缺陷参数包括:所述软件程序中发生过缺陷的方法出现的次数、调用所述发生过缺陷的方法的方法出现的次数以及所述发生过缺陷的方法被调用的次数;根据所述缺陷参数,确定所述软件程序中的缺陷。可选地,所述根据所述缺陷参数,确定所述软件程序中的缺陷,包括:根据所述缺陷参数,生成网络拓扑图,所述网络拓扑图表征所述软件程序的历史缺陷情况;根据所述网络拓扑图,确定所述软件程序中的缺陷。可选地,所述根据所述缺陷参数,生成网络拓扑图,包括:根据所述缺陷参数,建立多个节点,所述多个节点表征所述软件程序中发生过缺陷的方法或调用所述发生过缺陷的方法的方法;分别确定所述多个节点的度,每个节点的度表征该节点所对应的方法在所述异常堆栈数据中出现的次数;建立多个有向线段,每个有向线段连接两个节点,每个有向线段的指向为该有向线段所连接的两个节点之间的调用关系;分别确定所述多个有向线段的权值,每个有向线段的权值为该有向线段所连接的两个节点之间的调用次数。可选地,在所述从软件程序的运行日志文件中提取异常堆栈数据之后,所述方法还包括:从所述异常堆栈数据中筛选出符合预定规则的数据;所述根据所述异常堆栈数据,确定缺陷参数,包括:根据所述符合预定规则的数据,确定缺陷参数。可选地,所述根据所述网络拓扑图,确定所述软件程序中的缺陷,包括:从所述网络拓扑图中确定出目标节点,所述目标节点的度大于第一预设阈值;确定所述目标节点所对应的方法为高危缺陷。可选地,所述根据所述网络拓扑图,确定所述软件程序中的缺陷,包括:从所述网络拓扑图中确定出目标节点对,所述目标节点对中的一个节点为所述目标节点,所述目标节点对所对应的线段的权值大于第二预设阈值;确定所述目标节点对所对应的两个方法均为高危缺陷。本公开还提供一种定位缺陷的装置,所述装置包括:提取模块,用于从软件程序的运行日志文件中提取异常堆栈数据;缺陷参数确定模块,用于根据所述异常堆栈数据,确定缺陷参数,所述缺陷参数包括:所述软件程序中发生过缺陷的方法出现的次数、调用所述发生过缺陷的方法的方法出现的次数以及所述发生过缺陷的方法被调用的次数;缺陷确定模块,用于根据所述缺陷参数,确定所述软件程序中的缺陷。可选地,所述确定模块包括:生成子模块,用于根据所述缺陷参数,生成网络拓扑图,所述网络拓扑图表征所述软件程序的历史缺陷情况;确定子模块,用于根据所述网络拓扑图,确定所述软件程序中的缺陷。可选地,所述生成子模块包括:节点建立子模块,用于建立多个节点,所述多个节点表征所述软件程序中发生过缺陷的方法或调用所述发生过缺陷的方法的方法;第一确定子模块,用于分别确定所述多个节点的度,每个节点的度表征该节点所对应的方法在所述异常堆栈数据中出现的次数;有向线段建立模块,用于建立多个有向线段,每个有向线段连接两个节点,每个有向线段的指向为该有向线段所连接的两个节点之间的调用关系;第二确定子模块,用于分别确定所述多个有向线段的权值,每个有向线段的权值为该有向线段所连接的两个节点之间的调用次数。可选地,所述装置还包括:筛选模块,用于在所述提取模块从软件程序的运行日志文件中提取异常堆栈数据之后,从所述异常堆栈数据中筛选出符合预定规则的数据;所述缺陷参数确定模块用于:根据所述符合预定规则的数据,确定缺陷参数。可选地,所述确定子模块包括:目标节点确定模块,用于从所述网络拓扑图中确定出目标节点,所述目标节点的度大于第一预设阈值;第三确定子模块,用于确定所述目标节点所对应的方法为高危缺陷。可选地,所述确定子模块包括:目标节点对确定模块,用于从所述网络拓扑图中确定出目标节点对,所述目标节点对中的一个节点为所述目标节点,所述目标节点对所对应的有向线段的权值大于第二预设阈值;第四确定子模块,用于确定所述目标节点对所对应的两个方法均为高危缺陷。采用上述技术方案,通过运行日志文件定位缺陷,无须分析全部源代码,降低了缺陷定位的复杂度提高了缺陷定位的效率。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是根据一示例性实施例示出的一种定位缺陷的方法的流程图。图2是根据一示例性实施例示出的一种生成网络拓扑图的流程图。图3是根据一示例性实施例示出的一种网络拓扑图的示意图。图4是根据一示例性实施例示出的一种定位缺陷的方法的另一流程图。图5为根据一示例性实施例示出的一种确定高危缺陷的方法的流程图。图6为根据一示例性实施例示出的一种确定高危缺陷的方法的另一流程图。图7是根据一示例性实施例示出的一种定位缺陷的装置的框图。具体实施方式以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。请参考图1,图1为根据一示例性实施例示出的一种定位缺陷的方法的流程图。如图1所示,该方法包括以下步骤:步骤S11:从软件程序的运行日志文件中提取异常堆栈数据;步骤S12:根据所述异常堆栈数据,确定缺陷参数,所述缺陷参数包括:所述软件程序中发生过缺陷的方法出现的次数、调用所述发生过缺陷的方法的方法出现的次数以及所述发生过缺陷的方法被调用的次数;步骤S13:根据所述缺陷参数,确定所述软件程序中的缺陷。其中,软件程序中的方法是编程人员常用的技术术语,可以是一个函数。本公开中,提出根据软件程序的运行日志文件实现定位缺陷。因为软件程序的运行日志文件反映了软件程序的历史运行情况,其中包括正常运行的数据以及异常堆栈数据。由于异常堆栈数据包括:异常类型、异常严重程度、发生缺陷的方法以及调用发生缺陷的方法的方法等。所以可以根据异常堆栈数据,确定缺陷参数。最后,根据缺陷参数,确定软件程序中的缺陷。采用上述技术方案,通过运行日志文件定位缺陷,无须分析全部源代码,降低了缺陷定位的复杂度,提高了缺陷定位的效率。本公开中,确定软件程序中的缺陷的一种可能的实施方式是:首先,根据缺陷参数,生成网络拓扑图,以表征软件程序的历史缺陷情况。然后,根据网络拓扑图,确定软件程序中的缺陷。请参考图2,图2为根据一示例性实施例示出的一种生成网络拓扑图的流程图。如图2所示,生成网络拓扑图包括以下步骤:步骤S121:根据所述缺陷参数,建立多个节点,本文档来自技高网...

【技术保护点】
一种定位缺陷的方法,其特征在于,所述方法包括:从软件程序的运行日志文件中提取异常堆栈数据;根据所述异常堆栈数据,确定缺陷参数,所述缺陷参数包括:所述软件程序中发生过缺陷的方法出现的次数、调用所述发生过缺陷的方法的方法出现的次数以及所述发生过缺陷的方法被调用的次数;根据所述缺陷参数,确定所述软件程序中的缺陷。

【技术特征摘要】
1.一种定位缺陷的方法,其特征在于,所述方法包括:从软件程序的运行日志文件中提取异常堆栈数据;根据所述异常堆栈数据,确定缺陷参数,所述缺陷参数包括:所述软件程序中发生过缺陷的方法出现的次数、调用所述发生过缺陷的方法的方法出现的次数以及所述发生过缺陷的方法被调用的次数;根据所述缺陷参数,确定所述软件程序中的缺陷。2.根据权利要求1所述的方法,其特征在于,所述根据所述缺陷参数,确定所述软件程序中的缺陷,包括:根据所述缺陷参数,生成网络拓扑图,所述网络拓扑图表征所述软件程序的历史缺陷情况;根据所述网络拓扑图,确定所述软件程序中的缺陷。3.根据权利要求2所述的方法,其特征在于,所述根据所述缺陷参数,生成网络拓扑图,包括:根据所述缺陷参数,建立多个节点,所述多个节点表征所述软件程序中发生过缺陷的方法或调用所述发生过缺陷的方法的方法;分别确定所述多个节点的度,每个节点的度表征该节点所对应的方法在所述异常堆栈数据中出现的次数;建立多个有向线段,每个有向线段连接两个节点,每个有向线段的指向为该有向线段所连接的两个节点之间的调用关系;分别确定所述多个有向线段的权值,每个有向线段的权值为该有向线段所连接的两个节点之间的调用次数。4.根据权利要求3所述的方法,其特征在于,所述根据所述网络拓扑图,确定所述软件程序中的缺陷,包括:从所述网络拓扑图中确定出目标节点,所述目标节点的度大于第一预设阈值;确定所述目标节点所对应的方法为高危缺陷。5.根据权利要求4所述的方法,其特征在于,所述根据所述网络拓扑图,确定所述软件程序中的缺陷,包括:从所述网络拓扑图中确定出目标节点对,所述目标节点对中的一个节点为所述目标节点,所述目标节点对所对应的线段的权值大于第二预设阈值;确定所述目标节点对所对应的两个方法均为高危缺陷。6.一种定位缺陷的装置,其特征在于,所述装置包括:提取模块,用于从...

【专利技术属性】
技术研发人员:谢新强张德阳
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

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

1