一句话:用大规模 npm 项目数据与混合方法,量化 JavaScript 质量保证工具的采纳选择及其顺序对项目成效的时序影响。
现代软件开发依赖大量自动化质量保证工具,开发者需要在具体情境中选择合适的工具,但关于这些选择实际效果的实证证据十分匮乏。本文提出一套通用方法论,用于建模工具采纳对四类结果的随时间变化效应:问题(issue)数量、代码变更量、pull request 数量与贡献者数量,并引入大量控制变量。作者在大型 npm JavaScript 项目数据集上抽取三类任务中流行工具的采纳事件:linter、依赖管理器与覆盖率报告器;采用混合方法研究采纳原因,比较同一类工具内部的采纳效果以及跨类的顺序采纳效果。结果显示,每一类中某些工具比其他工具与更有利的结果相关,并且某些工具的引入顺序也与不同结果相关,从而为工具选择提供了实证依据。
Quality assurance automation is essential in modern software development. In practice, this automation is supported by a multitude of tools that fit different needs and require developers to make decisions about which tool to choose in a given context. Data and analytics of the pros and cons can inform these decisions. Yet, in most cases, there is a dearth of empirical evidence on the effectiveness of existing practices and tool choices. We propose a general methodology to model the time- dependent effect of automation tool choice on four outcomes of interest: prevalence of issues, code churn, number of pull requests, and number of contributors, all with a multitude of controls. On a large data set of npm JavaScript projects, we extract the adoption events for popular tools in three task classes: linters, dependency managers, and coverage reporters. Using mixed methods approaches, we study the reasons for the adoptions and compare the adoption effects within each class, and sequential tool adoptions across classes. We find that some tools within each group are associated with more beneficial outcomes than others, providing an empirical perspective for the benefits of each. We also find that the order in which some tools are implemented is associated with varying outcomes.
@inproceedings{KavalerTVF19,
title = {Tool Choice Matters: JavaScript Quality Assurance Tools and Usage Outcomes in GitHub Projects},
author = {David Kavaler and Asher Trockman and Bogdan Vasilescu and Vladimir Filkov},
booktitle = {ICSE},
year = {2019},
doi = {10.1109/icse.2019.00060}
}