Page 128 - 《软件学报》2025年第9期
P. 128

谢生龙 等: 基于多模态融合的软件缺陷协同分派方法                                                       4039


                 设性参考.
                    以上为本文的研究背景. 本文第          1  节介绍  3  类  bug  分派方法与相关研究工作. 第     2  节介绍本文所需的基础知
                 识, 包括  bug  分派的定义, bug  向量和开发人员向量的初始化等. 第           3  节详细介绍   CBT-MF  方法步骤. 第  4  节通过
                 一系列实验验证所提方法的优越性和有效性. 第               5  节对本文的工作进行总结与展望.

                 1   相关工作

                    本文主要研究如何融合多模态数据进行软件                bug  的协同分派, 实现更高效、更准确的          bug  修复. 本节将从文
                 本分类、相关性分析及推荐这           3  个方面的  bug  分派技术出发, 对相关工作进行阐述.

                 1.1   基于文本分类的   bug  分派
                    Bug  分派长期以来被认为是一种文本分类问题              [17] . 早期就有学者研究了基于文本分类的         bug  分派方法, 他们
                 将每个开发者看作是一个类标签, 而将            bug  报告作为分类的对象, 对其进行分类预测, 大量的实验也证明了该类方
                 法的有效性    [5,18] . 后来, 为了进一步提高  bug  分派的效率, 诸如支持向量机       (SVM)   [7,18] 等机器学习技术逐步应用于
                                        [5]
                 bug  分派的研究中. 例如, CBR 将     bug  文本转换为向量, 并使用      SVM  分类器对它们进行分类后分派. 再后来, 随
                 着自然语言处理技术的发展, 一些研究借助循环神经网络                  [19]  等模型增强了  bug  报告的语义表示. 如, DBRNN-A   [16]
                 作为一种深度双向带注意机制的递归神经网络, 能够在更长的上下文中保留单词的顺序和语义关系. 然而, 此类方
                 法多数是基于收集的       bug  报告数据集进行的, 其中普遍存在不均衡性问题              [10] . 原因在于, bug  数据在软件模块中的
                 分布大致符合帕累托法则. 例如, 在实际的            bug  数据集中, 高活跃度开发者的       bug  修复数量要远超过低活跃度开发
                 者修复的    bug  数量, 这导致分类模型在预测时偏向高活跃度开发者, 而对低活跃度开发者的预测精度较低. 因此,
                 在分类的过程中难以对低活跃度开发者修复的                bug  进行有效的预测. 故这类方法只适用于           bug  数据较为均衡的情
                 形. 此外, 在这些分类模型中, 通常将开发人员作为简单的标签, 事实上开发人员的编程兴趣可能比较广泛, 以至于
                 用简单的标签不足以表征其          bug  修复的经验或特长. 于是部分研究工作就把希望寄托在了与开发人员有关的上下
                 文信息, 比如他们在开源代码管理平台上的活动               [20]  和提交  bug  报告的历史记录  [21]  等. 尽管获取到的这些信息与开
                 发人员的兴趣或能力有关, 但是仅凭分类模型还是难以深入地挖掘                      bug  与开发人员之间的相关性, 这在很大程度
                 上影响了   bug  分派效能.

                 1.2   基于相关性分析的    bug  分派

                    从分派的结果来看, bug      分派是   bug  报告与开发人员的匹配问题, 其主要任务是相关性分析. 因此, 有研究人
                 员提出了诸如图学习等信息检索的方法来捕获他们之间的相关性. 例如, GRCNN                        [22]  作为一个图循环卷积神经网
                 络, 采用一种映射变化的方法来学习每个节点的时空隐含表示, 并取得了较好的效果; BERT                          [23]  在对现有的目标模
                 型微调后, 能够为手动分类的历史记录添加新开发人员; Yang                 等人  [24]  提出了一种基于多特征模型和主题模型的
                 bug  严重性预测方法, 希望提升      bug  分派效能. 然而, 这类方法的基本观点是, 认为具有某种              bug  专业知识的开发
                 人员就能够解决与其相似类型的新             bug. 因此, 不难看出这类技术同样是基于            bug  报告中开发人员过去修复的
                 bug  和新  bug  的相似性进行的, 这同样存在文本分类技术遇到的问题.
                    为了缓解这一问题, 近年来有部分研究将相关性分析工作的重点从                      bug  报告文本转向了与其有关的图模态数
                             [15]
                 据. 例如, PMGT   采用共同的用户活动来关联项目, 并基于多源辅助信息构建一个同质的项目关系图, 从而为项目
                 的推荐提供了统一的相关性视图. 此外, 二部图作为一种特殊的图模态数据, 是软件维护过程中描述二元关系的有
                 效工具, 其能够通过边来增强节点之间的语义关系, 进而支持实体相关性分析, 现已被广泛用于与相关性分析有关
                 的场景中. 例如, 在电商平台中       [25,26] , 为了构建用户和商品之间的关系, 可以将用户和商品分别看作二部图的两个集
                 合, 从而实现个性化商品匹配; 在社交网络中            [27,28] , 可以将所有用户分为两个不同的集合, 分别表示用户和其好友,
                 从而基于二部图来挖掘用户和好友之间的关系. 二部图在这些场景中的广泛应用, 为本文的研究工作提供了启发.

                 1.3   基于协同推荐的   bug  分派
                    推荐系统也常被用于        bug  报告的分派, 尤其是基于      CF  的推荐系统, 其可以将用户和项目视为独立的个体. 例
   123   124   125   126   127   128   129   130   131   132   133