Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title "What Should I Change in My Patch?": An Empirical Investigation of Relevant Changes and Automation Needs in Modern Code Review
Organization Unit
Authors
  • Nik Zaugg
Supervisors
  • Harald Gall
  • Sebastiano Panichella
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2018
Abstract Text Recent research has shown that available tools for Modern Code Review (MCR) are still far from meeting the current expectations of developers. The objective of this thesis is to investigate the most recurrent change types in MCR as well as the developersí expectations and needs regarding the automation of reviewing activities that, from a developer point of view, are still needed to facilitate MCR activities by considering current literature, manually analyzing code review changes and conducting a survey. Additionally, we explore approaches and tools that are still needed to facilitate MCR activities and extract various metrics describing a patch in Gerrit code review with the goal to predict required changes in the future. To that end, we first empirically elicited a taxonomy of recurrent review change types that characterize code reviews. The taxonomy was designed by performing three steps: (i) we generated an initial version of the taxonomy by qualitatively and quantitatively analyzing 211 review commits and 648 review comments of ten open source projects; then (ii) we integrated topics and code review change types of an existing taxonomy available from the literature into this initial taxonomy; finally, (iii) we surveyed 52 developers to integrate eventually missing change types into the taxonomy. We then evaluated the survey feedback to find out more about current developers' expectations towards code review and how code review activities can be facilitated by novel tools and approaches. Results of our taxonomy evaluation supports previous research, showing that the majority of changes in code review are related to maintainability issues. Furthermore, our findings highlight that the availability of emerging development technologies (e.g., cloud-based technologies) and practices (e.g., continuous delivery and continuous integration) further widens the gap between the expectations developers have towards code review and its outcome. This has pushed developers to perform additional activities during code reviews and shows that additional types of feedback are expected from reviewers, especially regarding changes in non-source-code artifacts (e.g., configurations of Automated Static Analysis Tools). Our survey participants provided recommendations, specified techniques to employ, and highlighted the data to analyze for implementing approaches able to automate the code review activities related to our taxonomy. Most promising recommendations towards the automation of MCR involve the use of Machine Learning and Natural Language Processing techniques to study recurrent patterns and anti-patterns as well as code, change and object-oriented metrics. This study sheds some more light on the most critical and recurring changes in code review, the developersí expectations and needs, and ultimately on the approaches and tools that are still needed to facilitate MCR activities. We believe that this is an essential step towards closing the gap between developersí expectations in code review and its outcome as well as supporting the vision of full or partial automation in MCR.
Zusammenfassung Jüngste Untersuchungen haben gezeigt, dass die verfügbaren Tools für Modern Code Review (MCR) nicht den aktuellen Erwartungen der Entwickler entsprechen. Das Ziel dieser Arbeit ist es, die am häufigsten auftretenden Change-Typen in MCR sowie die Erwartungen und Bedürfnisse der Entwickler in Bezug auf die Automatisierung von Review-Aktivitäten zu untersuchen, die aus Sicht des Entwicklers immer noch benötigt werden um MCR-Aktivitäten zu erleichtern. Dazu berücksichtigen wir die aktuelle Literatur, analysieren manuell Code Review-Änderungen und führen eine Umfrage durch. Darüber hinaus untersuchen wir Ansätze und Tools, die noch benötigt werden, um MCR-Aktivitäten zu erleichtern und extrahieren verschiedene Metriken, die einen Patch in Gerrit Code Review beschreiben, mit dem Ziel, erforderliche Änderungen in der Zukunft vorherzusagen. Dazu haben wir zunächst empirisch eine Taxonomie von wiederkehrenden Review Change-Typen herausgearbeitet. Die Taxonomie wurde in drei Schritten erstellt: (i) wir haben eine erste Version der Taxonomie erstellt, indem wir 211 Review Commits und 648 Review- Kommentare von zehn Open-Source-Projekten qualitativ und quantitativ analysiert haben; dann (ii) haben wir Code Review Change-Typen einer aus der Literatur verfügbaren Taxonomie in diese erste Taxonomie integriert; schliesslich (iii) haben wir 52 Entwickler befragt, um eventuell fehlende Change-Typen in die Taxonomie zu integrieren. Anschliessend werteten wir das Feedback der Umfrage aus, um mehr über die Erwartungen der aktuellen Entwickler an Code Review zu erfahren und herauszufinden, wie Code Review durch neue Tools und Ansätze erleichtert werden kann. Die Ergebnisse unserer Taxonomieauswertung unterstützen frühere Untersuchungen und zeigen, dass die Mehrheit der Änderungen in Code Review mit Problemen der Wartbarkeit zusammenhängt. Darüber hinaus zeigen unsere Ergebnisse, dass die Verfügbarkeit neuer Entwicklungstechnologien (e.g., Cloud-basierte Technologien) und -praktiken (e.g., Continuous Delivery und Continuous Integration) die Lücke zwischen den Erwartungen der Entwickler an Code Review und deren Ergebnis weiter vergrössert. Dies führt dazu, dass zusätzliche Arten von Feedback von den Reviewern erwartet werden, insbesondere in Bezug auf Änderungen an Nicht-Quellcode-Objekten (e.g., Konfigurationen von Automated Static Analysis Tools). Unsere Umfrageteilnehmer gaben Empfehlungen ab, spezifizierten Techniken die anzuwenden sind und hoben die zu analysierenden Daten für die Implementierung von Ansätzen hervor, die in der Lage sind, Change-Typen unserer Taxonomie zu automatisieren. Die vielversprechendsten Empfehlungen zur Automatisierung von MCR beinhalten den Einsatz von Machine Learning und Natural Language Processing Techniken zur Untersuchung wiederkehrender Muster sowie von Code-, Change- und objektorientierten Metriken. Diese Studie wirft mehr Licht auf die kritischsten und wiederkehrenden Änderungen in Code Review, die Erwartungen und Bedürfnisse der Entwickler und auf die Ansätze und Tools, die noch benötigt werden, um MCR-Aktivitäten zu erleichtern. Wir glauben, dass dies ein wesentlicher Schritt ist, um die Lücke zwischen den Erwartungen der Entwickler an Code Review und dessen Ergebnissen zu schliessen und die Vision einer vollständigen oder teilweisen Automatisierung in MCR zu unterstützen.
PDF File Download
Export BibTeX