Warum Sie einen automatisierten Code-Review-Prozess einführen sollten
20. Dezember 2021
0 Min. LesezeitEin automatisiertes Code-Review ist ein wichtiger Schritt bei der Entwicklung einer hochwertigen und sicheren Anwendung. Da es während der Entwicklung zu menschlichen Fehlern kommen kann, ist die Umsetzung von Best Practices für ein systematisches Code-Review ein wirksamer Schritt zur Verbesserung der Softwarequalität. Bei einem manuellen Review kommen Fachwissen und Erfahrung des Code-Review-Teams zum Einsatz. Dennoch besteht die Möglichkeit, dass im Code Sicherheitsbedrohungen verborgen sind, die einer Entdeckung durch Menschen entgehen sollen. Es ist von unschätzbarem Wert, wenn ein Expertenteam neuen Code auf seine Absicht und Logik prüft. Ergänzen Sie dieses manuelle Code-Review jedoch durch ein automatisiertes, um öffentlich bekannt gemachte Schwachstellen zu beheben und Schwachstellen in benutzerdefiniertem Code sowie potenzielle Einfallstore für Angriffe aufzudecken.
Was ist ein automatisierter Code-Review-Prozess?
Ein automatisierter Code-Review-Prozess vergleicht den Quellcode mit einem festgelegten Regelwerk, um häufige Fehlerquellen oder Sicherheitsbedrohungen zu erkennen. Bei dieser Überprüfung kann es zu falsch positiven und falsch negativen Ergebnissen kommen. Dennoch erhöht sie die Widerstandsfähigkeit der Software gegenüber Sicherheitsbedrohungen und verbessert die Gesamtleistung der Anwendung.
Ein erhöhtes Risiko für Sicherheitsverletzungen und eine suboptimale Leistung können dazu führen, dass die Software nicht wie vorgesehen funktioniert. Eine wirksame Möglichkeit, sowohl die Qualität als auch die Sicherheit des Codes zu verbessern, besteht daher darin, die von Ihrem automatisierten Code-Review-Tool gemeldeten False Positives und False Negatives zu reduzieren.
False Positives und False Negatives
Da kein automatisierter Code-Checker perfekt ist, besteht bei einem Code-Review immer die Möglichkeit von False Positives oder False Negatives. Zur Verdeutlichung werden diese Begriffe im Folgenden definiert.
False Positive – Der Analyzer meldet einen Verstoß, obwohl keine Regel verletzt wurde. An sich ist das nicht schädlich, doch es kostet Zeit, False Positives von tatsächlichen Problemen zu unterscheiden. Echte Positive sind tatsächliche Fehler, die Entwickler beheben müssen. False Positives hingegen kosten sie unnötig Zeit.
False Negative – Der Analyzer meldet keinen Verstoß und lässt dadurch ein Problem beim Code-Review unentdeckt. Genau dieses Risiko soll ein wirksames automatisiertes Code-Review verhindern.

So reduzieren Sie False Positives und False Negatives
Ein besonders wichtiger Aspekt eines sicheren Code-Reviews ist, dass sich der Reviewer ausreichend Zeit nimmt, um die Funktion des Codes vollständig zu verstehen. Eine der besten Möglichkeiten, False Positives und False Negatives bei einem manuellen Code-Review zu reduzieren, ist daher ein langsames und systematisches Vorgehen.
Die Annahme, dass der Code wie vorgesehen funktioniert, ist eine häufige Fehlerquelle beim Code-Review. Selbst bei einem Expertengremium besteht das Risiko, dass unentdeckte Fehler durch das manuelle Review gelangen. Das unterstreicht, wie wichtig ein wirksamer automatisierter Review-Prozess ist. Außerdem kann ein manuelles Review Programmierern dabei helfen, Standards festzulegen, anhand derer der Analyzer den Quellcode mit der erwarteten Leistung vergleichen kann.
Unit- und Integrationstests einsetzen
Weniger False Positives sorgen für übersichtlichere Diagnoseberichte. Weniger False Negatives können hingegen Folgendes bewirken:
Die Sicherheit und Leistung des Codes verbessern
Unbenutzte oder umgangene Codeabschnitte erkennen
Einen korrekten Code-Stil sicherstellen
Diese Funktionen sind entscheidend für eine effektive Softwareentwicklung. Weniger False Negatives beschleunigen das Kompilieren und die Laufzeit des Codes und stellen zugleich sicher, dass er gemäß den Standards wie vorgesehen funktioniert.
Es reicht nicht aus, den Analyzer auszuführen, Fehler erkennen zu lassen und diese im Quellcode zu korrigieren. Sie können verlangen, dass Codeänderungen und Pull Requests (PRs) von Unit- und Integrationstests begleitet werden. Das stärkt das Vertrauen, reduziert Fehler und ermöglicht eine kontinuierliche Verbesserung des gesamten Prozesses. Ein Unit-Test stellt sicher, dass der neue Codeabschnitt wie vom Entwickler vorgesehen funktioniert, bevor er in das Haupt-Code-Repository übernommen wird. Zu den bewährten Vorgehensweisen bei dieser Art von Tests gehören allgemeine Eingabebedingungen oder die Anpassung des Codes, damit er eine bekannte Ausgabe liefert. Anschließend können Sie schrittweise Integrationstests hinzufügen und jeweils einige Einheiten miteinander verknüpfen. So stellen Sie sicher, dass sie nahtlos zusammenarbeiten und bei einem effektiven Code-Review keine False Positives oder False Negatives verursachen.
Erweiterte automatisierte Scan-Tools einsetzen
Am besten reduzieren Sie False Positives und False Negatives bei Code-Reviews, indem Sie ein hochwertiges, leistungsstarkes Scan-Tool auswählen. Ein automatisiertes Code-Review-Tool, das zuverlässig unterscheidet, wann ein Problem gemeldet werden sollte und wann nicht, ist entscheidend für die Qualität und Sicherheit der Anwendung.
Ein ausgefeiltes automatisiertes Tool ist für ein Sicherheits-Code-Review unverzichtbar und enthält eine umfangreiche Datenbank mit Schwachstellen – oft schon, bevor diese in öffentlich verfügbaren Datenbanken erfasst sind. Ein effektives automatisiertes Code-Review-Tool vergleicht den Quellcode schnell mit diesen Daten. So kann Ihr Team Fehler sofort beheben und schneller sicheren Code bereitstellen.
Das von Ihnen ausgewählte automatisierte Tool muss sich unkompliziert in Ihren bestehenden Entwicklungsprozess integrieren lassen. Eine nahtlose Integration stellt sicher, dass der Code-Analyzer mit Ihrem Quellcode zusammenarbeitet, Fehler erkennt und potenzielle Sicherheitsprobleme während des gesamten Continuous-Integration- und Continuous-Delivery-Prozesses (CI/CD) aufdeckt.
Ein weiteres Ziel des automatisierten Scanners ist es schließlich, den Code schnell mit Sicherheits- und Codequalitätsstandards abzugleichen. Ein erweitertes Scan-Tool kann sogar einen PR erstellen und die Ergebnisse automatisch an das Review-Team senden, damit es den Code weiter analysiert oder Empfehlungen zusammenführt. So verkürzt sich die Zeit bis zur Behebung von Problemen.
„Dank der Automatisierung von Snyk konnten wir Mitarbeitende von monotoner manueller Sicherheitsarbeit abziehen und für hochproduktive Feature-Entwicklung einsetzen. Da Snyk uns über neue Schwachstellen in Form eines Pull Requests informiert, der den „Fix“ bereits enthält, konnten wir einen ansonsten langwierigen manuellen Ablauf aus Triage und Behebung auf ein einfaches „Merge“ verkürzen, das nur wenige Minuten dauert.“
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
Warum Sie automatisierte Code-Reviews nutzen sollten
Manuelle Code-Reviews sind ein wichtiger Bestandteil der Softwareentwicklung. Sie bringen verschiedene neue Perspektiven von Experten ein, um Logikfehler zu erkennen, die vorgesehene Funktion des Codes zu überprüfen und Entwicklern die Verantwortung bewusst zu machen, da ihr Code geprüft wird.
Manuelle Reviews prüfen zwar Logik und Absicht, doch ein fortschrittliches automatisiertes Code-Review kann viel schneller als ein rein manuelles Review zu einer sichereren und effizienteren Anwendung beitragen. Mit einem automatisierten Review erkennen Sie mehr Probleme in kürzerer Zeit und verbessern so auch die Geschwindigkeit und Genauigkeit des Entwicklungsprozesses.
Häufig gestellte Fragen zu automatisierten Code-Reviews
Wie lässt sich der Code-Review-Prozess automatisieren?
Bei einem automatisierten Code-Review wird der Quellcode mit einem bekannten Standard verglichen. Ein Analyzer kann Probleme wie Verstöße gegen Stilrichtlinien, Standardfehler, Bugs oder Sicherheitslücken zuverlässig erkennen. Ein in den Entwicklungsprozess integriertes automatisiertes Code-Review-Tool vergleicht den Quellcode mit einem Standard und erstellt einen Bericht. Dieser Bericht wird zu einem Pull Request, der die Änderungen aufzeigt, die Entwickler am Code vornehmen müssen, bevor er in den übergeordneten Branch übernommen werden kann. Fortschrittliche Analysetools erstellen einen Pull Request und führen ihn automatisch in den übergeordneten Branch ein – für eine sichere, präzise und effiziente Anwendung.
Auf unserer Seite Security Resources erfahren Sie, wie Snyk Entwickler dabei unterstützt, hochwertigen und sicheren Code zu erstellen. Probieren Sie auch unser kostenloses Code-Checker-Tool aus und erfahren Sie, wie die Snyk-Code-Engine Ihren Code auf Sicherheits- und Qualitätsprobleme analysiert.
