CN111737107A - 一种基于异质信息网络的重复缺陷报告检测方法 - Google Patents

一种基于异质信息网络的重复缺陷报告检测方法 Download PDF

Info

Publication number
CN111737107A
CN111737107A CN202010413134.1A CN202010413134A CN111737107A CN 111737107 A CN111737107 A CN 111737107A CN 202010413134 A CN202010413134 A CN 202010413134A CN 111737107 A CN111737107 A CN 111737107A
Authority
CN
China
Prior art keywords
defect report
defect
report
repeated
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010413134.1A
Other languages
English (en)
Other versions
CN111737107B (zh
Inventor
肖冠平
郑征
杜晓婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Beihang University
Original Assignee
Nanjing University of Aeronautics and Astronautics
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics, Beihang University filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202010413134.1A priority Critical patent/CN111737107B/zh
Publication of CN111737107A publication Critical patent/CN111737107A/zh
Application granted granted Critical
Publication of CN111737107B publication Critical patent/CN111737107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于异质信息网络的重复缺陷报告检测方法,包括以下步骤:(1)缺陷报告异质信息网络建立;(2)缺陷报告异质信息网络表示学习;(3)缺陷报告文本语义表示学习;(4)缺陷报告组识别;(5)重复和非重复缺陷报告对生成;(6)训练、验证和测试数据生成;(7)重复缺陷报告检测模型建立;(8)重复缺陷报告检测模型训练;(9)重复缺陷报告检测。本发明通过建立缺陷报告异质信息网络,利用网络表示学习方法对网络中缺陷报告之间隐含的语义关系进行学习,进而构建重复缺陷报告检测模型,与单独使用缺陷报告文本信息的信息检索方法相比,本发明提高了重复缺陷报告的检测准确率。

Description

一种基于异质信息网络的重复缺陷报告检测方法
技术领域
本发明属于软件工程中重复缺陷报告自动检测技术领域,具体涉及一种基于 异质信息网络的重复缺陷报告检测方法。
背景技术
缺陷追踪系统,例如Bugzilla和Jira,不可避免地会出现重复缺陷报告问 题。不同用户可能会报告相同失效现象的缺陷,导致开发者重复讨论和识别这些 相同的缺陷,带来不必要的维护代价。为了检测重复缺陷报告,传统方法依赖基 于信息检索方法(information retrieval,IR)计算的文本相似度,例如术语 频率-逆文档频率(TF-IDF),来检测重复缺陷报告。然而,随着缺陷追踪系统 加入了实时检测(just-in-time,JIT)功能,在面对加入JIT功能后的重复缺 陷报告时,基于文本相似性的传统方法的有效性发生了下降。这是因为缺陷追踪 系统在加入JIT功能后,当用户/开发者在缺陷报告提交页面标题框中输入文字 时,该技术能够给出可能的重复缺陷报告。因此,在提交缺陷报告的第一步就减 少了出现重复的可能性。
虽然JIT功能通过避免一些文本高度相似的缺陷报告,在一定程度上提高了 缺陷报告的质量,但是缺陷追踪系统中仍然存在大量的重复缺陷报告。这些重复 缺陷报告更多地呈现出语义关系相似性,而不是文本相似性。因而基于文本相似 性技术的传统信息检索方法难以检测这些重复缺陷报告。另一方面,当前的JIT 功能仅利用缺陷报告的标题文本来检测重复缺陷报告,而不考虑缺陷报告中与所 报告缺陷有关的丰富的异质属性信息,例如产品、组件、版本、严重性和修复优 先级。因此,即使加入了JIT功能,缺陷追踪系统中仍然存在大量的重复缺陷报 告。为了弥补传统重复缺陷报告检测方法的不足,本发明提出了一种基于异质信 息网络的重复缺陷报告检测方法。
发明内容
发明目的:本发明提出一种基于异质信息网络的重复缺陷报告检测方法,可 以充分利用缺陷报告中异质属性之间不同的关系类型,提高重复缺陷报告的检测 准确率。
技术方案:本发明提出一种基于异质信息网络的重复缺陷报告检测方法,具 体包括以下步骤:
(1)从缺陷报告文件中提取结构化的异质属性当作节点,根据异质属性节 点之间的关系构建缺陷报告异质信息网络;
(2)对建立的缺陷报告异质信息网络进行网络表示学习,得到每个属性节 点的向量表示;
(3)从缺陷报告文件中提取文本信息并进行预处理,然后使用大量的无标 签的缺陷报告文本信息训练缺陷报告文本语义模型,得到缺陷报告文本中每个单 词的向量表示;
(4)从缺陷仓库中识别缺陷报告组,同一个缺陷报告组中的缺陷报告描述 相同的失效现象;
(5)从步骤(4)中识别的缺陷报告组中生成重复和非重复缺陷报告对数据; 并将该数据划分成训练、验证和测试数据;
(6)将步骤(2)、(3)中的得到的异质属性节点向量和文本单词向量分 别用于表示缺陷报告的结构化特征和非结构化特征,用于构建重复缺陷报告检测 模型;
(7)使用步骤(5)中得到的训练和验证数据对步骤(6)建立的重复缺陷 报告检测模型进行训练;
(8)使用步骤(7)中训练得到的重复缺陷报告检测模型对测试数据进行自 动检测,得到重复缺陷报告的检测结果。
进一步地,所述步骤(1)包括以下步骤:
(11)从缺陷报告文件中提取六类异质属性当作节点,即缺陷报告标识号 BID、产品PRO、组件COM、版本VER、严重性SEV和修复优先级PRI;
(12)将六类属性节点建立连边:
每个缺陷报告记录一个位于特定软件项目功能组件的缺陷,分别使用L和 L-1来表示缺陷报告和组件之间的关系R1,即
Figure BDA0002494049880000021
Figure BDA0002494049880000022
每个组件属于一个产品,分别使用B和B-1来表示组件和产品之间的关 系R2,即
Figure BDA0002494049880000023
Figure BDA0002494049880000024
描述一个缺陷出现在一个具体的版本,使用O和O-1来表示缺陷报告与 版本之间的关系R3,即
Figure BDA0002494049880000031
Figure BDA0002494049880000032
每个缺陷报告都有一个开发者处理的优先级,分别使用H和H-1来表示 缺陷报告与修复优先级之间的关系R4,即
Figure BDA0002494049880000033
Figure BDA0002494049880000034
每个缺陷报告都会对用户有一定程度的严重性影响,分别使用I和I-1来 表示缺陷报告与严重性之间的关系R5,即
Figure BDA0002494049880000035
Figure BDA0002494049880000036
进一步地,步骤(3)中所述的预处理包括单词分割、停用词删除和单词标 准化。
进一步地,所述步骤(4)包括以下步骤:
(41)给定一个项目的所有缺陷报告BR,生成一个重复关系网络 Gbr(Vbr,Ebr),对于每一个缺陷报告br,分别在idbr和resolutionbr中记录它 的标识号ID和解决状态;如果它的解决状态为“重复”,那么将该缺陷报告中 记录的dup_id,即该缺陷报告所重复的缺陷报告的标识号,提取出来并记录到 idsdup;然后将一条边(idbr,iddup)加入到Ebr中;一个重复缺陷报告可能记录 了超过一个的dup_id或者没有记录dup_id,如果没有记录dup_id,该缺陷报 告将从数据集中丢弃;如果缺陷报告的解决状态不是“重复”,那么将该缺陷报 告的idbr加入到Vbr中;当缺陷报告BR中所有的缺陷报告都遍历完后,得 到重复关系网络Gbr
(42)建立一个空字典来存储缺陷报告组Groupbug(master,duplicates), 然后识别重复关系网络Gbr中所有的弱连通子图SubGraphs;对于每一个弱连 通子图
Figure BDA0002494049880000037
如果该子图只有一个节点,则该缺陷报告不是重复 缺陷报告,并且该缺陷报告自身组成了一个缺陷报告组,即将该缺陷报告的idbr记录在主缺陷报告master中,而将Groupbug[master]设为空,如果弱连通 子图
Figure BDA0002494049880000038
有超过一个节点,那么存在两种情况:
Figure BDA0002494049880000039
不存在回环或者存在回环, 对于不存在回环的情况,将节点出度为0的缺陷报告idbr作为主缺陷报告 master;如果子图
Figure BDA00024940498800000310
存在回环,则将回环节点中最早提交的缺陷报告idbr作为主缺陷报告master;
Figure BDA00024940498800000311
不存在回环或者存在回环,与主缺陷报告master属于相同缺陷报告组的其他缺陷报告Groupbug[master]均为子图 Vsub除去master后的节点集合Vsub-{idbr}。
进一步地,所述步骤(6)包括以下步骤:
(65)将缺陷报告的结构化特征使用多层感知器网络进行嵌入;
(66)将缺陷报告的非结构化特征使用循环神经网络进行嵌入;
(67)嵌入后的结构化特征和非结构化特征使用多层感知器网络进行融合, 用于表示缺陷报告的向量;
(68)模型输出缺陷报告对的相似度。
进一步地,所述步骤(7)的实现过程如下:
得到模型输出的缺陷报告对相似度结果后,将相似度结果与缺陷报告对标签 输入至损失函数,得到损失函数值,判断该损失函数的值是否小于设定的阈值; 若否,则根据损失函数的值调整检测模型的训练参数,并再次用训练和验证数据 对检测模型进行训练,直至模型输出的相似度结果与缺陷报告对标签的损失值小 于设定的阈值为止,并将最后的检测模型作为最终的重复缺陷报告检测模型。
有益效果:与现有技术相比,本发明的有益效果:本发明充分利用了缺陷报 告中异质属性之间不同的关系类型,通过异质信息网络表示学习对网络中缺陷报 告之间的语义关系进行学习,与单独使用缺陷报告文本数据相比,提高了重复缺 陷报告的检测准确率。
附图说明
图1为本发明的流程图;
图2为基于异质信息网络的重复缺陷报告检测模型结构框架图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
重复缺陷报告检测:重复缺陷报告是指缺陷仓库中重复提交的描述相同 失效现象的报告。当缺陷仓库维护人员检测出新提交的缺陷报告与已存在的 缺陷报告重复时,新提交的缺陷报告的解决状态(resolution)会标记为重 复(DUPLICATE)。此外,标记为重复的缺陷报告,其dup_id将记录该缺 陷报告重复的缺陷报告ID。通常情况下,根据dup_id可以将描述相同缺陷 的所有缺陷报告归为同一个缺陷报告组。在每个缺陷报告组中,所有重复缺 陷报告都指向的那个缺陷报告称为主缺陷报告(master)。如果新提交的缺 陷报告没有识别出与现有缺陷报告重复,那么该缺陷报告就是主缺陷报告并 且组成了新的缺陷报告组。当获得所有的缺陷报告组后,可以生成重复和非 重复缺陷报告对。然后,重复缺陷报告的检测问题就可以重构为简单的二分 预测问题。当出现新提交的缺陷报告时,可以和所有主缺陷报告组成缺陷报 告对,然后用已经训练好的预测模型来预测这些缺陷报告对中的缺陷报告是 否重复。
缺陷报告异质信息网络:在缺陷报告异质信息网络G=(V,E)中,每个 节点v∈V属于一个特定的属性类型τ(v)∈A,每个边e∈E属于一个特 定的关系类型φ(e)∈R。其中,网络模式TG=(A,R)是定义在属性类型映 射函数τ:V→A和关系类型映射函数φ:E→R的一个有向图,是异质 信息网络G的元描述。而元路径
Figure BDA0002494049880000051
之间的一个复合关系R=R1·R2·…Rl,其中·表示关系的复合运算符。给定缺陷报告异 质信息网络G,网络表示学习是为了学习一个节点关系映射函数
Figure BDA0002494049880000052
其中d<<|V|。
如图1所示,本发明提出一种基于异质信息网络的重复缺陷报告检测方法, 其具体实施步骤如下:
步骤1:缺陷报告异质信息网络建立,从缺陷报告文件中提取结构化的异质 属性当作节点,根据异质属性节点之间的关系构建缺陷报告异质信息网络。
首先,从缺陷报告文件中提取六类异质属性当作节点,即缺陷报告标识号 BID、产品PRO、组件COM、版本VER、严重性SEV和修复优先级PRI。
其次,对这六类属性节点按照以下五种关系类型建立连边:
关系R1(缺陷-组件):每个缺陷报告记录了一个位于特定软件项目功能组 件的缺陷。分别使用L和L-1来表示缺陷报告和组件之间的关系,即
Figure BDA0002494049880000053
Figure BDA0002494049880000054
Figure BDA0002494049880000055
关系R2(组件-产品):每个组件属于一个产品。分别使用B和B-1来表 示组件和产品之间的关系,即
Figure BDA0002494049880000056
Figure BDA0002494049880000057
关系R3(缺陷-版本):为了描述一个缺陷出现在一个具体的版本,使用O 和O-1来表示缺陷报告与版本之间的关系,即
Figure BDA0002494049880000061
Figure BDA0002494049880000062
关系R4(缺陷-修复优先级):每个缺陷报告都有一个开发者处理的优先级。 分别使用H和H-1来表示缺陷报告与修复优先级之间的关系,即
Figure BDA0002494049880000063
Figure BDA0002494049880000064
关系R5(缺陷-严重性):每个缺陷报告都会对用户有一定程度的严重性影 响。分别使用I和I-1来表示缺陷报告与严重性之间的关系,即
Figure BDA0002494049880000065
Figure BDA0002494049880000066
步骤2:缺陷报告异质信息网络表示学习,对建立的缺陷报告异质信息网络 进行网络表示学习,得到每个属性节点的向量表示。
使用异质信息网络表示学习方法HIN2Vec对建立的缺陷报告异质信息网络 进行表示学习,得到每个属性节点的向量表示。
步骤3:从缺陷报告文件中提取文本信息并进行预处理,其中,预处理包括 单词分割、停用词删除和单词标准化。然后使用大量的无标签的缺陷报告文本信 息训练缺陷报告文本语义模型,得到缺陷报告文本中每个单词的向量表示。
缺陷报告文本语义通过使用Word2Vec工具中的Skip-Gram模型进行学习, 得到缺陷报告中每个单词的向量表示。
步骤4:缺陷报告组识别,从缺陷仓库中识别缺陷报告组,同一个缺陷报告 组中的缺陷报告描述相同的失效现象。
缺陷报告组的识别算法包含以下步骤:
(1)给定一个项目的所有缺陷报告BR,缺陷报告组识别算法首先生成一 个重复关系网络Gbr(Vbr,Ebr)。对于每一个缺陷报告br,分别在idbr和 resolutionbr中记录它的标识号ID和解决状态。如果它的解决状态为“重复”, 那么将该缺陷报告中记录的dup_id(即该缺陷报告所重复的缺陷报告的标识 号)提取出来并记录到idsdup。然后将一条边(idbr,iddup)加入到Ebr中。需 要注意的是,一个重复缺陷报告可能记录了超过一个的dup_id或者没有记录 dup_id。对于第二种情况,该缺陷报告将从数据集中丢弃。此外,如果缺陷报告的解决状态不是“重复”,那么将该缺陷报告的idbr加入到Vbr中。当缺陷报 告BR中所有的缺陷报告都遍历完后,得到重复关系网络Gbr
(2)建立一个空字典来存储缺陷报告组Groupbug(master,duplicates),然 后识别重复关系网络Gbr中所有的弱连通子图SubGraphs。对于每一个弱连通 子图
Figure BDA0002494049880000071
如果该子图只有一个节点,则该缺陷报告不是重复缺 陷报告,并且该缺陷报告自身组成了一个缺陷报告组,即将该缺陷报告的idbr记录在主缺陷报告master中,而将Groupbug[master]设为空。如果弱连通 子图
Figure BDA0002494049880000072
有超过一个节点,那么存在两种情况:
Figure BDA0002494049880000073
不存在回环或者存在回环。 对于不存在回环的情况,将节点出度为0的缺陷报告idbr作为主缺陷报告 master。如果子图
Figure BDA0002494049880000074
存在回环,则将回环节点中最早提交的缺陷报告idbr作为主缺陷报告master。在这两种情况下,与主缺陷报告master属于相同缺 陷报告组的其他缺陷报告Groupbug[master]均为子图Vsub除去master后 的节点集合Vsub-{idbr}。
缺陷报告组的识别算法伪代码如下:
数据:缺陷报告
Figure BDA0002494049880000075
结果:缺陷报告组Groupbug(master,duplicates
Figure BDA0002494049880000076
Figure BDA0002494049880000081
步骤5:重复和非重复缺陷报告对生成,从步骤4中识别的缺陷报告组中生 成重复和非重复缺陷报告对数据,并将数据划分成训练、验证和测试数据。
重复和非重复缺陷报告对的生成方法是:对于重复缺陷报告对,将每个缺陷 报告组中的缺陷报告两两组合作为重复缺陷报告对;对于非重复缺陷报告对,将 每个缺陷报告组的主缺陷报告两两组合作为非重复缺陷报告对。从所有重复和非 重复缺陷报告对中分别随机且不重复地选择一定比值的缺陷报告对作为重复和 非重复缺陷报告对数据。可将重复缺陷报告对与非重复缺陷报告对的数量比值设 定为1:1。将训练、验证和测试数据占所有数据的比例分别为0.64、0.16和0.2。
步骤6:重复缺陷报告检测模型建立,将步骤2、步骤3中的得到的异质属 性节点向量和文本单词向量分别用于表示缺陷报告的结构化特征和非结构化特 征,用于构建重复缺陷报告检测模型。
重复缺陷报告检测模型的构建方法是:缺陷报告的结构化特征使用多层感知 器网络进行嵌入、缺陷报告的非结构化特征使用循环神经网络进行嵌入;嵌入后 的结构化特征和非结构化特征使用多层感知器网络进行融合,用于表示缺陷报告 的向量;模型输出缺陷报告对的相似度。
对于结构化特征,本发明将BID、PRO、COM、VER、SEV和PRI六类结 构化特征映射到有HIN2Vec方法学习得到的d1维向量
Figure BDA0002494049880000091
其中i分别 为BID、PRO、COM、VER、SEV和PRI。然后将者六个特征向量连接为一个 完整的结构化向量,表示为H=[hBID,hPRO,hCOM,hVER,hSEV,hPRI],
Figure BDA0002494049880000092
由 于H没有严格的顺序要求,它简单地由一个多层感知器进行嵌入,表示为 MLPS
h=tanh(WHH)
其中,H表示连接后的结构化特征向量,
Figure BDA0002494049880000093
是MLPS中可训练 的参数矩阵(k1是MLPS隐含单元数量),tanh是MLPS中使用的激活函 数,而
Figure BDA0002494049880000094
是最后的结构化矩阵。
对于非结构化特征,缺陷报告的文本信息使用循环神经网络(RNN)来进行 序列嵌入。给定缺陷报告的标题
Figure BDA0002494049880000095
其中xi是一个长度为 NT橘子的单词token。本发明使用RNN嵌入每个单词token(表示为RNNNS):
Figure BDA00024940498800000915
其中,
Figure BDA0002494049880000096
是由Word2Vec从缺陷报告文本学习得到的单词的嵌入向量,
Figure BDA0002494049880000097
是i时刻的隐含状态(n是RNNNS中隐含的单元数量),
Figure BDA0002494049880000098
Figure BDA0002494049880000099
是两个向量的连接运算,
Figure BDA00024940498800000910
是RNNNS中可训练的参数矩 阵,tanh是激活函数。非结构化特征最终嵌入为n维向量
Figure BDA00024940498800000911
最后,本发明使用一个多层感知器(表示为MLPF)将结构化特征h和非 结构化特征t融合为一个向量:
b=tanh(WB[h,t])
其中,
Figure BDA00024940498800000912
表示两个向量的连接运算,
Figure BDA00024940498800000913
是MLPF中可训练的参数矩阵(k2是MLPF隐含单元数量),而tanh是MLPF中使 用的激活函数。一个缺陷报告最后的嵌入向量由输出向量
Figure BDA00024940498800000914
表示。
当得到缺陷报告的向量表示后,本发明设计相似度模块对两个缺陷报告之间 的相似度进行测量,使用曼哈顿距离作为相似度测量方法:
S(b1,b2)=exp(-||b1-b2||1),S∈[0,1]
其中,b1和b2分别表示两个缺陷报告的向量,而exp(·)用于在0和1 之间标准化曼哈顿距离。
步骤7:重复缺陷报告检测模型训练,使用步骤5中得到的训练和验证数据 对步骤7建立的重复缺陷报告检测模型进行训练。
重复缺陷报告检测模型的训练过程是:得到模型输出的缺陷报告对相似度结 果后,将相似度结果与缺陷报告对标签输入至损失函数,得到损失函数值,判断 该损失函数的值是否小于设定的阈值。若否,则根据损失函数的值调整检测模型 的训练参数,并再次用训练和验证数据对检测模型进行训练,直至模型输出的相 似度结果与缺陷报告对标签的损失值小于设定的阈值为止,并将最后的检测模型 作为最终的重复缺陷报告检测模型。
通过构建缺陷报告对实例<B1,B2>来训练重复缺陷报告检测模型。如果缺陷 报告B1和缺陷报告B2互为重复报告,那么该实例的标签y为1;否则,为 0。在模型训练过程中,将重复缺陷报告检测模型输出的相似度作为预测标签以 及缺陷报告对实例标签作为真值输入到二元交叉熵损失函数:
Figure BDA0002494049880000101
其中,θ表示模型参数,y表示实例真值标签,
Figure BDA0002494049880000102
表示预测的标签(即曼 哈顿距离相似度)。此外,模型使用Adadelta方法和梯度限幅进行参数优化。 当损失函数的值小于设定的阈值,例如阈值设置成0.1时,模型训练停止。
步骤8:重复缺陷报告检测,使用步骤7中训练得到的重复缺陷报告检测模 型对测试数据进行自动检测,得到重复缺陷报告的检测结果。
以上内容对本发明所述基于异质信息网络的重复缺陷报告检测方法进 行了详细的说明,但显然本发明的具体实现形式并不局限于此。对于本技术 领域的一般技术人员来说,在不背离本发明的精神和权利要求范围的情况下 对它进行的各种显而易见的改变都在本发明的保护范围之内。

Claims (6)

1.一种基于异质信息网络的重复缺陷报告检测方法,其特征在于,包括以下步骤:
(1)从缺陷报告文件中提取结构化的异质属性当作节点,根据异质属性节点之间的关系构建缺陷报告异质信息网络;
(2)对建立的缺陷报告异质信息网络进行网络表示学习,得到每个属性节点的向量表示;
(3)从缺陷报告文件中提取文本信息并进行预处理,然后使用大量的无标签的缺陷报告文本信息训练缺陷报告文本语义模型,得到缺陷报告文本中每个单词的向量表示;
(4)从缺陷仓库中识别缺陷报告组,同一个缺陷报告组中的缺陷报告描述相同的失效现象;
(5)从步骤(4)中识别的缺陷报告组中生成重复和非重复缺陷报告对数据;并将该数据划分成训练、验证和测试数据;
(6)将步骤(2)、(3)中的得到的异质属性节点向量和文本单词向量分别用于表示缺陷报告的结构化特征和非结构化特征,用于构建重复缺陷报告检测模型;
(7)使用步骤(5)中得到的训练和验证数据对步骤(6)建立的重复缺陷报告检测模型进行训练;
(8)使用步骤(7)中训练得到的重复缺陷报告检测模型对测试数据进行自动检测,得到重复缺陷报告的检测结果。
2.根据权利要求1所述的一种基于异质信息网络的重复缺陷报告检测方法,其特征在于,所述步骤(1)包括以下步骤:
(11)从缺陷报告文件中提取六类异质属性当作节点,即缺陷报告标识号BID、产品PRO、组件COM、版本VER、严重性SEV和修复优先级PRI;
(12)将六类属性节点建立连边:
每个缺陷报告记录一个位于特定软件项目功能组件的缺陷,分别使用L和L-1来表示缺陷报告和组件之间的关系R1,即
Figure FDA0002494049870000011
Figure FDA0002494049870000012
每个组件属于一个产品,分别使用B和B-1来表示组件和产品之间的关系R2,即
Figure FDA0002494049870000013
Figure FDA0002494049870000014
描述一个缺陷出现在一个具体的版本,使用O和O-1来表示缺陷报告与版本之间的关系R3,即
Figure FDA0002494049870000021
Figure FDA0002494049870000022
每个缺陷报告都有一个开发者处理的优先级,分别使用H和H-1来表示缺陷报告与修复优先级之间的关系R4,即
Figure FDA0002494049870000023
Figure FDA0002494049870000024
每个缺陷报告都会对用户有一定程度的严重性影响,分别使用I和I-1来表示缺陷报告与严重性之间的关系R5,即
Figure FDA0002494049870000025
Figure FDA0002494049870000026
3.根据权利要求1所述的一种基于异质信息网络的重复缺陷报告检测方法,其特征在于,步骤(3)中所述的预处理包括单词分割、停用词删除和单词标准化。
4.根据权利要求1所述的一种基于异质信息网络的重复缺陷报告检测方法,其特征在于,所述步骤(4)包括以下步骤:
(41)给定一个项目的所有缺陷报告BR,生成一个重复关系网络Gbr(Vbr,Ebr),对于每一个缺陷报告br,分别在idbr和resolutionbr中记录它的标识号ID和解决状态;如果它的解决状态为“重复”,那么将该缺陷报告中记录的dup_id,即该缺陷报告所重复的缺陷报告的标识号,提取出来并记录到idsdup;然后将一条边(idbr,iddup)加入到Ebr中;一个重复缺陷报告可能记录了超过一个的dup_id或者没有记录dup_id,如果没有记录dup_id,该缺陷报告将从数据集中丢弃;如果缺陷报告的解决状态不是“重复”,那么将该缺陷报告的idbr加入到Vbr中;当缺陷报告BR中所有的缺陷报告都遍历完后,得到重复关系网络Gbr
(42)建立一个空字典来存储缺陷报告组Groupbug(master,duplicates),然后识别重复关系网络Gbr中所有的弱连通子图SubGraphs;对于每一个弱连通子图
Figure FDA0002494049870000027
如果该子图只有一个节点,则该缺陷报告不是重复缺陷报告,并且该缺陷报告自身组成了一个缺陷报告组,即将该缺陷报告的idbr记录在主缺陷报告master中,而将Groupbug[master]设为空,如果弱连通子图
Figure FDA0002494049870000028
有超过一个节点,那么存在两种情况:
Figure FDA0002494049870000029
不存在回环或者存在回环,对于不存在回环的情况,将节点出度为0的缺陷报告idbr作为主缺陷报告master;如果子图
Figure FDA0002494049870000031
存在回环,则将回环节点中最早提交的缺陷报告idbr作为主缺陷报告master;
Figure FDA0002494049870000032
不存在回环或者存在回环,与主缺陷报告master属于相同缺陷报告组的其他缺陷报告Groupbug[master]均为子图Vsub除去master后的节点集合Vsub-{idbr}。
5.根据权利要求1所述的一种基于异质信息网络的重复缺陷报告检测方法,其特征在于,所述步骤(6)包括以下步骤:
(61)将缺陷报告的结构化特征使用多层感知器网络进行嵌入;
(62)将缺陷报告的非结构化特征使用循环神经网络进行嵌入;
(63)嵌入后的结构化特征和非结构化特征使用多层感知器网络进行融合,用于表示缺陷报告的向量;
(64)模型输出缺陷报告对的相似度。
6.根据权利要求1所述的一种基于异质信息网络的重复缺陷报告检测方法,其特征在于,所述步骤(7)的实现过程如下:
得到模型输出的缺陷报告对相似度结果后,将相似度结果与缺陷报告对标签输入至损失函数,得到损失函数值,判断该损失函数的值是否小于设定的阈值;若否,则根据损失函数的值调整检测模型的训练参数,并再次用训练和验证数据对检测模型进行训练,直至模型输出的相似度结果与缺陷报告对标签的损失值小于设定的阈值为止,并将最后的检测模型作为最终的重复缺陷报告检测模型。
CN202010413134.1A 2020-05-15 2020-05-15 一种基于异质信息网络的重复缺陷报告检测方法 Active CN111737107B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010413134.1A CN111737107B (zh) 2020-05-15 2020-05-15 一种基于异质信息网络的重复缺陷报告检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010413134.1A CN111737107B (zh) 2020-05-15 2020-05-15 一种基于异质信息网络的重复缺陷报告检测方法

Publications (2)

Publication Number Publication Date
CN111737107A true CN111737107A (zh) 2020-10-02
CN111737107B CN111737107B (zh) 2021-10-26

Family

ID=72647209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010413134.1A Active CN111737107B (zh) 2020-05-15 2020-05-15 一种基于异质信息网络的重复缺陷报告检测方法

Country Status (1)

Country Link
CN (1) CN111737107B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095892A (zh) * 2021-11-17 2022-02-25 东南大学 一种解决大规模信号异质性的室内人员状态检测的方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231614A (zh) * 2008-02-02 2008-07-30 南京大学 一种基于执行轨迹块相似度的软件缺陷定位方法
CN101866316A (zh) * 2010-06-23 2010-10-20 南京大学 一种基于相对冗余测试集约简的软件缺陷定位方法
US20140068567A1 (en) * 2012-09-05 2014-03-06 Microsoft Corporation Determining relevant events in source code analysis
CN103970666A (zh) * 2014-05-29 2014-08-06 重庆大学 一种软件重复缺陷报告检测的方法
CN105512299A (zh) * 2015-12-10 2016-04-20 广东蓄能发电有限公司 一种重复缺陷综合查找方法
CN105975392A (zh) * 2016-04-29 2016-09-28 国家计算机网络与信息安全管理中心 一种基于抽象语法树的重复代码检测方法及装置
US20160292062A1 (en) * 2015-03-30 2016-10-06 Infosys Limited System and method for detection of duplicate bug reports
CN106250311A (zh) * 2016-07-27 2016-12-21 成都启力慧源科技有限公司 基于lda模型的重复缺陷报告检测方法
US20180173495A1 (en) * 2016-12-19 2018-06-21 Accenture Global Solutions Limited Duplicate and similar bug report detection and retrieval using neural networks
US10379999B2 (en) * 2016-01-11 2019-08-13 Oracle International Corporation Duplicate bug report detection using machine learning algorithms and automated feedback incorporation
CN110188047A (zh) * 2019-06-20 2019-08-30 重庆大学 一种基于双通道卷积神经网络的重复缺陷报告检测方法
CN110637356A (zh) * 2017-05-15 2019-12-31 科磊股份有限公司 用于重复缺陷分析的相对缺陷位置的高精准度

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231614A (zh) * 2008-02-02 2008-07-30 南京大学 一种基于执行轨迹块相似度的软件缺陷定位方法
CN101866316A (zh) * 2010-06-23 2010-10-20 南京大学 一种基于相对冗余测试集约简的软件缺陷定位方法
US20140068567A1 (en) * 2012-09-05 2014-03-06 Microsoft Corporation Determining relevant events in source code analysis
CN103970666A (zh) * 2014-05-29 2014-08-06 重庆大学 一种软件重复缺陷报告检测的方法
US20160292062A1 (en) * 2015-03-30 2016-10-06 Infosys Limited System and method for detection of duplicate bug reports
CN105512299A (zh) * 2015-12-10 2016-04-20 广东蓄能发电有限公司 一种重复缺陷综合查找方法
US10379999B2 (en) * 2016-01-11 2019-08-13 Oracle International Corporation Duplicate bug report detection using machine learning algorithms and automated feedback incorporation
CN105975392A (zh) * 2016-04-29 2016-09-28 国家计算机网络与信息安全管理中心 一种基于抽象语法树的重复代码检测方法及装置
CN106250311A (zh) * 2016-07-27 2016-12-21 成都启力慧源科技有限公司 基于lda模型的重复缺陷报告检测方法
US20180173495A1 (en) * 2016-12-19 2018-06-21 Accenture Global Solutions Limited Duplicate and similar bug report detection and retrieval using neural networks
CN110637356A (zh) * 2017-05-15 2019-12-31 科磊股份有限公司 用于重复缺陷分析的相对缺陷位置的高精准度
CN110188047A (zh) * 2019-06-20 2019-08-30 重庆大学 一种基于双通道卷积神经网络的重复缺陷报告检测方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ANH TUAN NGUYEN: "Duplicate bug report detection with a combination of information retrieval and topic modeling", 《2012 PROCEEDINGS OF THE 27TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING》 *
KARAN AGGARWAL: "Detecting duplicate bug reports with software engineering domain knowledge", 《2015 IEEE 22ND INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER)》 *
M. S. RAKHA: "Studying the needed effort for identifying duplicate issues", 《EMPIRICAL SOFTWARE ENGINEERING》 *
WEN ZHANG; SONG WANG; YE YANG; QING WANG: "Heterogeneous Network Analysis of Developer Contribution in Bug Repositories", 《2013 INTERNATIONAL CONFERENCE ON CLOUD AND SERVICE COMPUTING》 *
胡嘉伟: "异质信息网络相似性度量的并行化算法研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
董美含: "基于缺陷报告和源代码的相似缺陷识别方法", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095892A (zh) * 2021-11-17 2022-02-25 东南大学 一种解决大规模信号异质性的室内人员状态检测的方法
CN114095892B (zh) * 2021-11-17 2024-03-05 东南大学 一种解决大规模信号异质性的室内人员状态检测的方法

Also Published As

Publication number Publication date
CN111737107B (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
Jung Semantic vector learning for natural language understanding
US20140351176A1 (en) Active learning on statistical server name extraction from information technology (it) service tickets
Visengeriyeva et al. Metadata-driven error detection
Panthaplackel et al. Deep just-in-time inconsistency detection between comments and source code
CN113191148B (zh) 一种基于半监督学习和聚类的轨道交通实体识别方法
Yang et al. Scene graph reasoning with prior visual relationship for visual question answering
CN111427775B (zh) 一种基于Bert模型的方法层次缺陷定位方法
CN110322206A (zh) 一种基于ocr识别的试剂信息录入方法及装置
Shah et al. Towards benchmarking feature type inference for automl platforms
Zhang et al. Software defect prediction via transformer
Liao et al. Doctr: Document transformer for structured information extraction in documents
CN111930597A (zh) 基于迁移学习的日志异常检测方法
CN111737107B (zh) 一种基于异质信息网络的重复缺陷报告检测方法
CN117688488A (zh) 一种基于语义向量化表示的日志异常检测方法
CN117271701A (zh) 一种基于tggat和cnn的系统运行异常事件关系抽取方法及系统
CN115982037A (zh) 一种基于抽象语法树的软件缺陷预测方法
CN115098389B (zh) 一种基于依赖模型的rest接口测试用例生成方法
CN115827871A (zh) 互联网企业分类的方法、装置和系统
Higazy et al. Web-based Arabic/English duplicate record detection with nested blocking technique
CN114357175A (zh) 一种基于语义网络的数据挖掘系统
Paganelli et al. Evaluating the integration of datasets
Chen Identification of Grammatical Errors of English Language Based on Intelligent Translational Model
CN114254107B (zh) 一种事件抽取系统及方法
CN110457543A (zh) 一种基于端到端多视角匹配的实体消解方法和系统
Wang et al. FastTransLog: A Log-based Anomaly Detection Method based on Fastformer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant