t2informatik » Wissen kompakt » Code Review

Code Review

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 ist somit eine Maßnahme zur Qualitätssicherung der Softwareentwicklung. Die Erkenntnisse lassen sich direkt im Code umsetzen und versionieren.

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.
  • 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.

Welche Inhalte in einem Code Review – ein anderes Worte dafür lautet „Codeüberprüfung“ – 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. Grundsätzlich 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.

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. Im schlimmsten Fall wird kein Fehler gefunden und das Code Review ist eine gute Gelegenheit für ein Mentoring oder die Verbesserung der Zusammenarbeit unter Kollegen.

Hinweis:
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.

“Das Fachwissen zu Softwarearchitekturen, die Expertise in der Softwareentwicklung und die sehr flexible Arbeitsweise waren ideal für uns.“
„Ich brauche Freiheit und Vertrauen. Und ich möchte Verantwortung übernehmen und dabei Spaß haben!“