Analyzing the impact of process smells in code review
Date
Authors
Editor(s)
Advisor
Supervisor
Co-Advisor
Co-Supervisor
Instructor
Source Title
Print ISSN
Electronic ISSN
Publisher
Volume
Issue
Pages
Language
Type
Journal Title
Journal ISSN
Volume Title
Attention Stats
Usage Stats
views
downloads
Series
Abstract
Code review is a valuable modern software development practice for identifying potential problems in changesets and improving source code quality in software projects. Developers adhere to specific rules and best practices in an ideal code review process. Deviations from these best practices can potentially lead to unintended consequences. These deviations, also known as code review process smells, affect different parts of the code review process and its outcomes. This research empirically analyzes the correlations between process smells, and the impact of code review process smells (shared knowledge, reopened issues, time to complete review (TTCR), abandoned pull requests (PRs), number or review comments, and contribution of large changeset reviewers). The relationship between smells and their impact is correlation-based, but a causal relationship is not guaranteed because proving such relationships is not straightforward. To quantitatively analyze the impact of smells in the code review process, we investigated 244,903 PRs from four open source software (OSS) projects from Gerrit (Qt, Eclipse, Wireshark, and LibreOffice). As a result, we discovered that the existence of a committers’ side smell in a pull request (PR) could lead to the occurrence of reviewers’ side smells in the same PR. We also observed that reviewers assigned repeatedly by the same author to review the PR have a heavier review workload. Furthermore, the ping pong reviews and large changesets are most likely to increase the bug reopen ratio. In addition, we noticed that the time to complete review of a smelly PR is likely to be more than time to complete review of non-smelly PR. Also, the existence of process smells in a PR effect the number of review comments in that pull request.