一种基于开源软件缺陷代码修改模式的缺陷信息提取方法

文档序号:8380873阅读:376来源:国知局
一种基于开源软件缺陷代码修改模式的缺陷信息提取方法
【技术领域】
[0001] 本发明应用于软件缺陷分析领域,是一种基于开源软件缺陷代码修改模式的缺陷 ?目息提取方法。
【背景技术】
[0002] 随着现代信息技术的发展,计算机软件的应用已经扩展到经济、国防的各个部门, 在航空、航天、核能、通讯等关键领域的应用也日益广泛,这些部门或领域都需要日益复杂 的软件来维持其正常的工作。软件一旦产生失效,就会对这些工作带来严重的后果,在某些 高危系统中甚至会导致灾难性的后果。软件缺陷是导致软件失效的根本原因,对软件缺陷 的研宄可以提升软件质量。由于缺陷的数目和种类都很多,需要采集足够数量的软件缺陷 数据,采用合适的缺陷分析方法,才能对软件缺陷进行深入研宄。
[0003] 近年来,开源软件网站的发展汇集了大量的高水平编程人员,开源软件的数量也 越来越多。这些开源软件或通过个人努力或通过集体开发不断更新,逐步完善,积累了大量 与软件缺陷相关的历史信息,即版本演化信息。这些信息通常包含软件各版本的源代码,更 改的文本记录和变更代码等,能一定程度上反映软件的状态,为后续开发工作提供指导。因 此,开源软件的演化过程信息可作为软件缺陷分析研宄的数据来源,而现在对开源软件缺 陷信息的分析还很少,因此可以借鉴相关的软件缺陷分析方法对开源软件信息进行分析, 并采集缺陷数据。
[0004] 软件缺陷模式是对软件中出现的重复或类似的缺陷进行抽象得出的规律描述。对 已有软件缺陷的分析可知,很大数量的缺陷是重复的,或表现形式相同,或产生原因近似, 即缺陷及其产生过程遵循一定的规律。通过对其规律的总结与归纳,可获取软件的缺陷模 式。利用软件缺陷模式可避免类似缺陷的引入及发现类似的缺陷。开源软件演化过程的变 更代码信息也遵循一定的更改规律,可以通过对这些规律的总结归纳得到其缺陷代码修改 模式,从而获取开源软件中的缺陷信息。
[0005] 因此,可以对开源软件演化过程信息进行分析,提取出其中的缺陷信息及缺陷代 码样例,一方面能够为软件缺陷分析提供数据基础,另一方面提出了一种获取软件缺陷信 息的新途径,在一定程度上促进了软件缺陷研宄领域的研宄工作。

【发明内容】

[0006] 本发明针对目前软件缺陷数据较少,且开源软件演化过程信息未得到充分利用的 情况,提出了一种基于开源软件缺陷代码修改模式的缺陷信息提取方法。
[0007] 本发明提出的一种基于开源软件缺陷代码修改模式的缺陷信息提取方法,包括以 下步骤:
[0008] 步骤1 :根据开源软件演化过程信息,提取缺陷代码修改模式;
[0009] 根据其变更代码的增删情况,归纳该类缺陷代码修改模式的缺陷特征项,针对单 行语句的特征提出基础缺陷特征项,针对多行语句间的关系提出对比缺陷特征项。基础缺 陷特征项包括代码增删标识、关键词、操作符和语句类型;对比缺陷特征项包括语句操作数 变更、语句操作符变更、函数调用参数变更、以及控制语句内容变更。将缺陷代码修改模式 信息以xml形式存储。
[0010] 步骤2 :分析待测的开源软件的变更代码信息,获取各行代码的信息,包括代码编 号、增删标志、关键词、操作符、语句类型及语句内容。
[0011] 步骤3 :将变更代码信息与缺陷代码修改模式进行匹配,包括基础缺陷特征项匹 配和对比缺陷特征项进行匹配。根据匹配结果从变更代码信息中提取出符合缺陷代码修改 模式的缺陷代码样例。
[0012] 本发明与现有技术相比,具有以下明显优势:
[0013] 本发明提出的缺陷信息提取方法,能够针对开源软件的演化过程,根据其缺陷信 息变更代码的特征进行分析,是通过比较各版本间的变更差异进行直接分析,所提出的缺 陷代码修改模式与传统的软件缺陷模式有一定区别;通过该方法能够有效地提取出开源软 件演化信息中的类似的缺陷信息,且能实现自动化的采集工作。能够为软件缺陷分析提供 数据支持。
【附图说明】
[0014] 图1是本发明开源软件缺陷信息提取方法的整体步骤示意图;
[0015] 图2是本发明的缺陷代码修改模式的xml表示示意图;
[0016] 图3是本发明的开源软件变更代码信息分析流程示意图;
[0017] 图4是本发明的缺陷代码修改模式匹配流程示意图。
【具体实施方式】
[0018] 为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一 步的详细描述。
[0019] 本发明针对软件缺陷分析中缺陷数据不足,同时开源软件演化过程包含大量缺陷 信息这一情况,在借鉴软件缺陷分类,软件缺陷模式等软件缺陷分析方法的基础上,提出了 基于开源软件缺陷代码修改模式的缺陷信息提取方法,根据对开源软件演化过程中的缺陷 更改形式的归纳总结,得到其缺陷代码的修改模式,然后获取演化信息中变更代码的相关 内容,将其与已有的缺陷代码修改模式进行匹配,从开源软件演化信息的变更代码中提取 出缺陷代码样例信息。
[0020] 本发明基于开源软件缺陷代码修改模式的缺陷信息提取方法主要由三个部分构 成:开源软件缺陷代码修改模式的获取,开源软件演化过程变更代码的分析,以及开源软件 缺陷代码的提取。
[0021] 在基于开源软件缺陷代码修改模式的缺陷信息提取过程中,对缺陷代码修改模式 的定义如下:
[0022] 缺陷代码修改模式是指在开源软件演化过程信息中重复出现的具有一定规律的 缺陷代码修改形式的统一描述。
[0023] 基于开源软件缺陷代码修改模式的缺陷信息提取方法如图1所示,主要包括三个 步骤:开源软件缺陷代码修改模式的提取,开源软件变更代码的分析,开源软件缺陷代码样 例的提取,下面详细介绍每一步骤。
[0024] 步骤1 :开源软件缺陷代码修改模式的提取,是指对开源软件演化过程中缺陷信 息的变更代码内容进行分析和其规律的归纳总结,得到其缺陷代码修改模式的过程。根据 开源软件缺陷信息的变更代码的增删情况,归纳该类缺陷代码修改模式的缺陷特征项,针 对单行语句的特征提出基础缺陷特征项,针对多行语句间的关系提出对比缺陷特征项。并 将缺缺陷代码修改模式信息以xml形式存储
[0025] 开源软件缺陷信息的变更代码给出了对该次变更的代码增删等修改情况。若有多 个变更代码的内容都出现相同形式的变更,则认为其属于同一类型的代码修改方式,结合 对这些缺陷变更的文
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1