Topic: Analyse und Unterstützung von Code Reviews in GitLab

Topic: Analyse und Unterstützung von Code Reviews in GitLab

Personal details

Title Analyse und Unterstützung von Code Reviews in GitLab
Description

Code Reviews sind ein wichtiger Bestandteil moderner Softwareentwicklungsprozesse. Durch die gemeinsame Betrachtung von Änderungen können Fehler frühzeitig erkannt, Wissen innerhalb eines Teams verteilt und die Qualität des Quellcodes verbessert werden.

GitLab unterstützt Code Reviews über Merge Requests und stellt unter anderem Kommentare, Reviewer und Freigaben zur Verfügung. Die Qualität eines Reviews hängt jedoch stark davon ab, wie dieser Prozess innerhalb eines Teams tatsächlich durchgeführt wird.

Insbesondere bei studentischen Softwareprojekten treten häufig typische Probleme auf: Merge Requests werden ohne ausführliches Review zusammengeführt, Reviews finden erst kurz vor einem Milestone statt, Änderungen sind sehr umfangreich oder Reviews konzentrieren sich auf wenige Teammitglieder.

Ziel dieser Abschlussarbeit ist die Konzeption und Entwicklung einer webbasierten Anwendung, die Code-Review-Prozesse in GitLab analysiert und Teams bei der Durchführung effektiver Reviews unterstützt.

Home institution Department of Computing Science
Associated institutions
Type of work practical / application-focused
Type of thesis Bachelor's or Master's degree
Author Dr. Marco Grawunder
Status reserved
Problem statement

Im Rahmen der Arbeit soll zunächst untersucht werden, welche Informationen GitLab zu Merge Requests und Code Reviews bereitstellt und welche Merkmale auf gute bzw. problematische Review-Prozesse hinweisen können.

Darauf aufbauend soll ein System entwickelt werden, das Merge Requests automatisiert analysiert und geeignete Informationen über deren Review-Prozess bereitstellt.

Mögliche Analysen sind beispielsweise:

  • Merge Requests ohne Review,
  • Zeit zwischen Erstellung, erstem Review und Merge,
  • Anzahl und Art der Review-Kommentare,
  • Größe von Merge Requests,
  • Anzahl betroffener Dateien und Komponenten,
  • Merge Requests mit ungewöhnlich vielen Änderungen,
  • Verteilung der Reviews innerhalb eines Teams,
  • gegenseitige Review-Beziehungen zwischen Teammitgliedern,
  • Bereiche des Projekts, die selten oder nie reviewed werden,
  • Merge Requests, die kurz nach dem Merge erneut korrigiert werden müssen.

Unterstützung des Review-Prozesses

Neben der Analyse bereits durchgeführter Reviews kann das System Entwicklerinnen und Entwickler aktiv unterstützen.

Mögliche Hinweise wären beispielsweise:

  • Dieser Merge Request enthält sehr viele Änderungen und könnte sinnvoll aufgeteilt werden.
  • Für diesen Merge Request wurde noch kein Reviewer bestimmt.
  • Dieser Merge Request wartet seit mehreren Tagen auf ein Review.
  • Änderungen in diesem Bereich wurden bisher nur selten reviewed.
  • Mehrere Merge Requests wurden ohne Kommentare oder Diskussion zusammengeführt.
  • Ein großer Teil der Reviews wird von denselben Personen durchgeführt.

Ein weiterer möglicher Schwerpunkt ist die Empfehlung geeigneter Reviewer.

Reviewer-Empfehlungen

Ein System zur Reviewer-Empfehlung könnte unter anderem berücksichtigen:

  • bisherige Änderungen an betroffenen Dateien,
  • frühere Reviews im entsprechenden Teil des Projekts,
  • bekannte Zuständigkeiten,
  • aktuelle Review-Auslastung,
  • bisherige Zusammenarbeit zwischen Teammitgliedern.

Dabei muss nicht zwingend immer die Person empfohlen werden, die den betroffenen Code bereits besonders gut kennt.

Gerade in studentischen Teams könnte es sinnvoll sein, Reviewer so auszuwählen, dass Wissen gezielt innerhalb des Teams verteilt wird. Damit ergibt sich ein Spannungsfeld zwischen effizientem Review und Wissenstransfer.

Technische Umsetzung

Die Anwendung soll als eigenständige Webanwendung umgesetzt und über die GitLab-Schnittstellen angebunden werden.

Für die Umsetzung bieten sich beispielsweise an:

  • Spring Boot für das Backend,
  • Angular bzw. TypeScript für das Frontend,
  • GitLab REST- oder GraphQL-API,
  • OAuth2 zur Authentifizierung,
  • GitLab Webhooks zur Verarbeitung neuer oder geänderter Merge Requests,
  • optional statische Codeanalyse zur Ergänzung der GitLab-Metadaten.

Die Anwendung soll GitLab nicht ersetzen, sondern bestehende Merge-Request- und Review-Prozesse um zusätzliche Analyse- und Unterstützungsfunktionen erweitern.

Mögliche Fragestellungen

Mögliche Forschungsfragen sind beispielsweise:

  • Welche Merkmale eignen sich zur Bewertung eines Code-Review-Prozesses?
  • Wie können unzureichend oder gar nicht reviewte Merge Requests automatisiert erkannt werden?
  • Welche Eigenschaften eines Merge Requests beeinflussen die Qualität bzw. Dauer eines Reviews?
  • Wie kann eine sinnvolle Verteilung von Reviews innerhalb eines Teams unterstützt werden?
  • Welche Verfahren eignen sich zur Empfehlung geeigneter Reviewer?
  • Wie kann bei der Reviewer-Empfehlung neben Expertise auch Wissenstransfer berücksichtigt werden?
  • Welche automatischen Hinweise werden von Entwicklerinnen und Entwicklern tatsächlich als hilfreich wahrgenommen?

Evaluation

Das entwickelte System soll anhand realer oder historischer GitLab-Projekte evaluiert werden.

Dabei kann beispielsweise untersucht werden:

  • wie zuverlässig problematische Review-Verläufe erkannt werden,
  • ob vorgeschlagene Reviewer sinnvoll ausgewählt werden,
  • welche Hinweise von Entwicklerinnen und Entwicklern als nützlich angesehen werden,
  • ob sich durch den Einsatz des Systems die Verteilung und Qualität von Reviews verbessert.

Eine Evaluation könnte sowohl anhand vorhandener Projektdaten als auch durch eine Benutzerstudie erfolgen.

Erwartete Ergebnisse

Erwartet werden:

  • die Analyse geeigneter Kennzahlen für Code Reviews,
  • die Konzeption eines Analyse- und Unterstützungssystems,
  • die Implementierung eines prototypischen Werkzeugs,
  • eine geeignete Visualisierung der Review-Prozesse,
  • sowie eine Evaluation der entwickelten Verfahren.

Für eine Bachelorarbeit kann der Schwerpunkt auf der Analyse und Visualisierung bestehender Code Reviews liegen.

Für eine Masterarbeit bieten sich weitergehende Verfahren zur Reviewer-Empfehlung, zum Wissenstransfer oder zur automatischen Erkennung problematischer Review-Muster an.

Requirement

Hilfreich sind Kenntnisse in Software Engineering und Webentwicklung. Erfahrungen mit Git, GitLab, Spring Boot oder Angular/TypeScript sind von Vorteil. Für weitergehende Analyseverfahren sind außerdem Kenntnisse in Algorithmen, Datenanalyse oder Software-Mining hilfreich.

Created 30/09/26

Study data

Departments
  • Informationssysteme - Data Science
Degree programmes
  • Bachelor's Programme Business Informatics
  • Master's Programme Computing Science
  • Bachelor's Programme Computing Science
  • Master's Programme Business Informatics
Assigned courses
Contact person