李 敏,赵海燕,陈庆奎,曹 健
1(上海市现代光学系统重点实验室,光学仪器与系统教育部工程研究中心,上海理工大学光电信息与计算机工程学院,上海 200093) 2(上海交通大学 计算机科学与技术系,上海 200030)
代码评审是指让其他团队成员检查软件质量的过程,其目的是用来提高工作的质量.目前代码评审分为两种方式:1)传统代码评审;2)现代代码评审.由于传统代码评审整个流程比较繁琐和费时,一定程度上阻碍了它在实践中的运用.现代代码评审是一种作为非正式的、轻量级的、基于工具的代码评审方法,比传统评审更节约成本和时间,因而在专有软件和开源软件开发中得到广泛使用[1].
在开源软件开发中,经常以Pull请求的方式提交代码,然后Pull请求需要被评审以确定是否可以合并到软件中.找到积极且在对应的专业知识领域具有丰富经验的评审人员成为一大难题.从开发者的角度来说,每个软件开发者希望自己提交的代码能够在最短的时间内得到有效的评审;从候选评审者的角度来说,在安排合适工作量的前提下,更倾向于评审属于自己擅长领域的代码.然而事实并非如此,Thongtanunam等人员发现在进行代码评审时,相比不进行评审人员分配,进行评审人员分配往往还需要多消耗12天的时间[2,3].所以,在代码评审中,自动推荐合适的代码评审人员,具有重要意义.
近年来,研究代码评审人员的自动推荐受到了学术界广泛的关注.例如……