Page 215 - 《软件学报》2024年第6期
P. 215

杨岚心 等: 基于多标签学习的代码评审意见质量评价                                                       2791


                    结论效度    (conclusion validity): 为了避免可能存在的结论效度威胁, 本文实验首先构建了一个远超过其他同类
                 型研究工作的实验规模的数据集            (34  个项目, 共计  17 000  条代码评审意见). 同时, 实验使用了严格的交叉验证和
                 Wilcoxon  符号秩检验方法来检验提出的自动化模型的有效性、先进性, 从而能够保证结论的正确性.
                    外部效度    (external validity): 本文提出的方法中的概念模型, 其质量属性经过了严格的“三角论证”. 使用的数
                 据源是“正式文件”“学术文献”和“实例分析结果”. 前两个数据源汇聚了世界范围不同背景下的多个软件组织、学
                 术团队等的经验与知识, “实例分析结果”包含了对开源项目和商业项目、中文和外文                            (英文) 的评审意见的分析.
                 由此产生的评价标准具备普适性, 即对开源项目和商业项目, 中文和外文代码评审意见均适用. 但是质量属性与质
                 量等级的映射关系仅为一个实例; 同时实验样本, 即数据集仅来自一家软件企业, 将可能导致本文提出的方法的自
                 动化模型的外部效度威胁. 对此, 本文在实验的数据准备阶段设定了严格的项目准入条件                             (详见第   4.2.1  节) 来保
                 证实验样本的多样性和代表性. 另一方面, 本文第               4  节实验和第   5.1  节的标签标注经验对象均为中文代码评审意
                 见, 考虑到语言特征的差异, 本文报告的相关发现和经验不能直接迁移至其他语言环境. 总结地, 尽管本文仅报告
                 了提出的方法应用于某软件企业的商业项目的中文评审意见的有效性, 其仍有潜力被应用于更广泛的项目和语言
                 的评审意见的质量评价. 其他软件组织在使用本文方法时, 可以根据自身条件和需求, 灵活地调整质量属性、映射

                 关系和自动化模型. 同时参考本文总结的数据标注经验, 以更好地实施本文方法.

                  7   总结与展望
                    评审意见是代码评审最主要和最重要的产出之一, 其文本挖掘对代码评审分析、评价和改进具有重要支持作
                 用. 针对当前代码评审意见评价方式依赖代码变更状态、可解释性差、实践指导性不足等问题, 本文开展了若干
                 实证研究, 并在此基础上提出了一种基于多标签学习的代码评审意见质量评价方法. 该方法使用                                 4  个质量属性
                 (“情绪”“疑问”“评价”和“建议”) 来综合评价评审意见质量              (“优秀”“良好”“一般”和“较差”). 其中, 质量属性通过数
                 据三角论证识别和合成, 并由基于多标签学习范式和预训练语言模型                       BERT  以“端到端”的方式自动学习; 质量属
                 性到质量等级映射由若干软件工程学者和业界专家共同修订和确定. 实验使用国内某大型软件企业的                                   34  个商业
                 项目, 共计  17 000  条代码评审意见作为数据集. 结果表明本文提出的方法能够有效地评价代码评审意见质量.
                    未来工作一方面将持续验证本文提出的方法在其他软件企业、语言环境                           (如英文) 和社区环境      (如  GitHub、
                 Gerrit 等开源软件社区) 的可行性和先进性. 另一方面, 未来工作将持续深入挖掘代码评审意见, 如缺陷类型和严
                 重程度等, 并结合项目背景和评审过程等数据, 持续调整和优化本文提出的方法. 最后, 未来工作将持续研究代码
                 评审, 开发支持方法、技术和工具等, 助力实现系统化的代码评审质量评价和过程改进.

                 References:
                  [1]  Fagan ME. Design and code inspections to reduce errors in program development. IBM Systems Journal, 1976, 15(3): 182–211. [doi: 10.
                     1147/sj.153.0182]
                  [2]  Rigby  PC,  Bird  C.  Convergent  contemporary  software  peer  review  practices.  In:  Proc.  of  the  9th  Joint  Meeting  on  Foundations  of
                     Software Engineering. Saint Petersburg: ACM, 2013. 202–212. [doi: 10.1145/2491411.2491444]
                  [3]  Sadowski C, Söderberg E, Church L, Sipko M, Bacchelli A. Modern code review: A case study at Google. In: Proc. of the 40th Int’l Conf.
                     on Software Engineering: Software Engineering in Practice. Gothenburg: ACM, 2018. 181–190. [doi: 10.1145/3183519.3183525]
                  [4]  Bacchelli  A,  Bird  C.  Expectations,  outcomes,  and  challenges  of  modern  code  review.  In:  Proc.  of  the  35th  Int ’l  Conf.  on  Software
                     Engineering. San Francisco: IEEE, 2013. 712–721. [doi: 10.1109/ICSE.2013.6606617]
                  [5]  Caulo M, Lin B, Bavota G, Scanniello G, Lanza M. Knowledge transfer in modern code review. In: Proc. of the 28th Int’l Conf. on
                     Program Comprehension. Seoul: ACM, 2020. 230–240. [doi: 10.1145/3387904.3389270]
                  [6]  Zampetti F, Mudbhari S, Arnaoudova V, Di Penta M, Panichella S, Antoniol G. Using code reviews to automatically configure static
                     analysis tools. Empirical Software Engineering, 2022, 27(1): 28. [doi: 10.1007/s10664-021-10076-4]
                  [7]  Huq  F,  Hasan  M,  Haque  MA,  Mahbub  S,  Iqbal  A,  Ahmed  T.  Review4Repair:  Code  review  aided  automatic  program  repairing.
                     Information and Software Technology, 2022, 143: 106765. [doi: 10.1016/j.infsof.2021.106765]
                  [8]  Alami A, Cohn ML, Wąsowski A. Why does code review work for open source software communities? In: Proc. of the 41st Int’l Conf. on
   210   211   212   213   214   215   216   217   218   219   220