t2informatik » Wissen kompakt » Code Review

Code Review

Was ist ein Code Review, welche Ansätze gibt es und wo liegen Vorteile?

Die Sicherstellung der Softwarequalität

Ein Code Review ist eine systematische Untersuchung von Quellcode mit dem Ziel, Fehler und Mängel im Code zu finden und/oder die Qualität des Codes und damit der Software zu verbessern. Ein Code Review – auch als Codeüberprüfung bezeichnet – ist somit eine Maßnahme zur Qualitätssicherung der Softwareentwicklung.

Es gibt verschiedene Ansätze für ein Code Review:

  • Beim automatischen E-Mail-Versand verschickt das Versions- bzw. Konfigurationsmanagement-System automatisch einen Hinweis mit einem Link auf die neuen oder geänderten Codezeilen an einen vorab definierten Überprüfer.
  • Beim Pair Programming arbeiten zwei Entwickler gemeinsam an demselben Code und überprüfen damit kontinuierlich die Arbeit des jeweils anderen. So ist das Code Review direkt im Prozess der Softwareentwicklung integriert und die Qualität der Software könnte zumindest in der Theorie höher sein als bei einer separierten Entwicklung. Als Nachteil gilt die evtl. fehlende Objektivität der Entwicklungspartner.
  • Beim „Über die Schulter gucken“ oder dem „Walkthrough“ sucht sich der Entwickler nach der Fertigstellung seines Codes einen qualifizierten Kollegen, der die Implementierung überprüft, während er vom Autor Erläuterungen zum Code und der Funktionalität erhält. Dieser Ansatz gilt als informell, ist dafür aber auch sehr einfach und leichtgewichtig, zumal sich die Erkenntnisse direkt im Code umsetzen und versionieren lassen.
  • Die softwarebasierten Code Reviews erfolgen entweder browserbasiert oder direkt in einer Entwicklungsumgebung. Sie folgen einem formalen Ansatz, in dem sie u.a. Kommentare und Lösungsvorschläge dokumentieren, so dass diese auch zu einem späteren Zeitpunkt noch nachvollzogen werden können. Darüber hinaus ermöglichen sie auch asynchrone Benachrichtigungen, die Definition von Verantwortlichkeiten oder die Durchführung der Überprüfungen vom eigenen Arbeitsplatz aus.

Funktionssicherheit, Fehlerfreiheit und Spezifikation

Welche Inhalte in einem Code Review untersucht und verbessert werden, lässt sich nicht allgemeingültig beantworten. Einige Teams ziehen es vor, jede Änderung zu überprüfen, während andere eine Art Schwelle definieren, unter der eine Überprüfung nicht erforderlich ist. Einerseits sollten Organisation versuchen, ein gutes Verhältnis zwischen der effektiven Nutzung der Zeit der Beteiligten und der Aufrechterhaltung bzw. Steigerung der Codequalität zu finden. In bestimmten regulatorischen Umgebungen kann ein Code Review sogar für geringfügige Änderungen erforderlich sein. Andererseits reicht es auch nicht aus, den Code nur auf Funktionssicherheit und Fehlerfreiheit zu überprüfen, denn nicht der vorliegende Code ist der Maßstab, sondern die Aufgabe, die er erfüllen soll. Hier ist ein Abgleich mit der Spezifikation erforderlich.

Unabhängig von Erfahrung und Reputation der Entwickler ergibt es Sinn, Codeüberprüfungen durchzuführen, denn auch Codezeilen von erfahrenen Entwicklern lassen sich oftmals optimieren und von Code-Smells befreien. Idealerweise ist ein Code Review auch eine gute Gelegenheit für ein Mentoring oder die Verbesserung der Zusammenarbeit unter Kollegen.

Hinweise:

In dem Buch Best Kept Secrets of Peer Code Review, das 2006 veröffentlicht wurde, wird eine Fallstudie beschrieben, die besagt, dass leichtgewichtige, nicht-formale Code Reviews genauso viele Fehler enthüllten wie formale Reviews, dabei aber schneller und kostengünstiger sind.

Smartbear Software hat 2018 die Ergebnisse einer Umfrage unter 1.100 Softwareentwicklern zu den Vorteilen von Code Reviews veröffentlicht:

  • Verbesserte Softwarequalität 90% 90%
  • Wissensteilung im Team 73% 73%
  • Einhaltung von Code-Standards/-Konventionen 59% 59%
  • Fähigkeit weniger erfahrene Entwicklung zu mentoren 57% 57%
  • Verbesserte Zusammenarbeit 52% 52%
  • Reduzierte Projektkosten und -zeiten 37% 37%

Dienstleister gesucht?

Softwareentwicklung aus Berlin