Code Review

Wissen kompakt: Ein Code Review ist eine systematische Untersuchung von Quellcode mit dem Ziel, Fehler und Mängel im Code zu finden, um die Qualität der Software zu verbessern.

Code Review – die Sicherstellung der Softwarequalität

Wie lassen sich Fehler und Mängel im Code finden und/oder die Qualität des Codes und damit der Software verbessern? Die Antwort lautet: mit einem Code Review. Ein Code Review – auch als Codeüberprüfung bezeichnet – ist eine systematische Untersuchung von Quellcode und damit 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 Organisationen 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.

Code Review - die Sicherstellung der Softwarequalität

Hinweise:

Haben Sie Lust auf einen neuen Lieblings-Newsletter?

Die Inhalte auf dieser Seite dürfen Sie gerne teilen oder verlinken.

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.

Die Durchführung von Code Reviews wird auch als eine Praktik bei der Implementierung von Clean Code empfohlen.

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%

Was macht t2informatik?

Was macht t2informatik? Kleiner Tipp: Es hat etwas mit Softwareentwicklung zu tun!

Hier finden Sie ergänzende Informationen aus unserem Blog:

t2informatik Blog: Die Implementierung von Clean Code

Die Implementierung von Clean Code

t2informatik Blog: Sinn und Unsinn der Unittest Coverage

Sinn und Unsinn der Unittest Coverage