Decision Support System for Pull Requests Review Using Path-based Network Portrait Divergence and Visualization
Metadata[+] Show full item record
Pull requests are widely used in open-source and industrial environments to contribute and assess contributions. Unlike the typical code review process, pull requests provide a more lightweight approach for committing, reviewing, and managing code changes. Pull request code reviews also serve multiple objectives, including detecting problems in code, giving a venue to discuss code contributions, and supporting the easy integration of external contributions by project maintainers. The code changes and tests are written for a specific work item are contained in a pull request. Previous studies have reported that pull request review is crucial for software development and that reviewers do not spend more time on test files than on code files. At the same time, code reviewers are concerned that the tests that accompany the code modifications are adequate and cover all possible paths. The purpose of this research is to determine whether the test changes that go along with the code changes match the structural changes made in the Pull Request. The structural changes are determined using recent network comparison breakthroughs in prior work with GraphEvo. We also determine whether or not the visual representation and software metrics can support the software review process. We conducted a case study of 14 Java open-source projects, analyzing thousands of lines of code quality issues in 627 pull requests. We calculated the class level metrics, including network portrait divergence for each Pull request with and without change. In addition, for each pull request, we counted the number of existing test cases that failed due to the modification. Furthermore, correlations were investigated between class-level metrics, including network portrait divergence and tests that failed in pull requests.
Table of Contents
Introduction -- Related work -- Methodology -- Results and evaluations -- Conclusion
M.S. (Master of Science)