Holen Sie sich die neuesten wichtigen Update-Informationen für die Log4j-Sicherheitslücke. Sehen Sie sich an, wie Sie das Problem mithilfe der Parasoft-Anleitung beheben können. Erfahren Sie mehr >>

X
BLOG

Vermeiden Sie ineffektive Codeüberprüfungen, indem Sie diese 7 schlechten Gewohnheiten beseitigen

Vermeiden Sie ineffektive Codeüberprüfungen, indem Sie diese 7 schlechten Gewohnheiten beseitigen Lesezeit: 4 Minuten
Es ist bekannt, dass eine starke Peer-Code-Überprüfungspraxis die Softwarequalität verbessert. Hier sind einige Möglichkeiten, um die schlechten Gewohnheiten zu vermeiden, die Ihre Codeüberprüfungen unwirksam machen könnten.

Es ist allgemein bekannt, dass Peer Review mehr Wert bietet, als man erwarten könnte. Wie in Steve McConnells ausgezeichnetem Buch angegeben, Code abgeschlossenbeträgt die durchschnittliche Fehlererkennungsrate nur:

  • 25% für Unit-Tests
  • 35% für Funktionstests
  • 45% für Integrationstests

Im Gegensatz dazu liegt die durchschnittliche Effektivität von Design- und Code-Inspektionen bei 55% und 60% - eine beeindruckende Statistik. Natürlich ist es nur dann von Bedeutung, wenn das, was Sie in Peer Review tun, effektiv und effizient ist.
Im Laufe der Jahre habe ich die vielen Fallstricke gesehen, die zu ineffektiven Peer Reviews führen. Das Vermeiden dieser schlechten Gewohnheiten kann genauso effektiv sein wie das Übernehmen neuer guter Gewohnheiten! Beseitigen Sie die unten aufgeführten schlechten Gewohnheiten, um ineffektive Peer Reviews zu vermeiden.

1. Werkzeuge nicht ausreichend nutzen

Zu Beginn sollten Sie nichts überprüfen oder suchen, was durch statische Analyse möglich ist. Dies kann Branding-Probleme, Stilprobleme wie die Platzierung von Locken umfassen {
Lass mich nicht anfangen;
},
oder unter Verwendung eines bestimmten Verschlüsselungsalgorithmus. Wenn ein Werkzeug es für Sie finden kann, lassen Sie es. Geben Sie sich die Möglichkeit, die Algorithmen, Sicherheits- und Leistungsmerkmale des Codes genauer zu untersuchen. Kluge Arbeit statt mühsamer Arbeit hat auch den Nebeneffekt, dass die Teilnahme an der Überprüfung interessanter wird, was sie wiederum ansprechender und effektiver macht.

2. Überprüfen, ob der Code / Autor noch nicht fertig ist

Dies ist ein klassisches Problem, das insbesondere kalenderorientierte Organisationen betrifft. Wenn Sie basierend auf einem Datum veröffentlichen, überprüfen Sie wahrscheinlich auch basierend auf einem Datum. Die Logik lautet wie folgt: "Ich bin noch nicht fertig, aber wir haben bereits eine Überprüfung geplant. Schauen wir uns also zumindest an, was wir haben." Sie wissen es genauso gut wie ich - es ist keine großartige Möglichkeit, eine effektive Überprüfung durchzuführen. Hören Sie also damit auf. Stellen Sie sicher, dass der Code-Autor fertig ist. Wenn er noch nicht fertig ist, verschieben Sie ihn, bis er fertig ist.

3. Verbringen Sie zu viel Zeit mit der Überprüfung

Dies ist eine einfache Falle, in die man fallen kann. Wenn die Überprüfung zu lange dauert, müssen Sie etwas überdenken. "Zu viel" können entweder Überprüfungssitzungen sein, die länger als eine Stunde dauern, oder Sitzungen, die zu viel des gesamten Entwicklungsplans beanspruchen. Wenn Überprüfungen länger als eine Stunde dauern, versuchen Sie wahrscheinlich, zu viele Überprüfungen auf einmal durchzuführen. (Oder der Autor war nicht bereit für die Überprüfung.) Nach einer Stunde Überprüfung nimmt die potenzielle Wirksamkeit schnell ab, insbesondere für die Code-Autoren. Selbst wenn der Kommentar anfangs nicht persönlich war, kann sich die Kritik nach einer unnötig langen Überprüfung verstärken und schmerzhafter anfühlen.

4. Persönlich werden

Bei Peer Review geht es um den Code, nicht um die Menschen. Stellen Sie sicher, dass Sie über den Code und nicht über den Entwickler sprechen. Aussagen wie "Dieser Code lässt sich nicht so gut skalieren, wie wir es brauchen" sind weniger beleidigend als "Sie haben das schlecht geschrieben." Umgekehrt, wenn Sie am Ende der Kritik stehen, seien Sie ein guter Sport. Erkennen Sie, dass jeder Code verbessert werden kann und Sie aus den Daten lernen können, die Sie erhalten. Unabhängig davon, an welchem ​​Ende der Überprüfung Sie sich befinden, können Sie wahrscheinlich eleganter sein, um eine reibungslose, angenehme und schnelle Überprüfung zu ermöglichen. Stellen Sie sich das Überprüfen als eine großartige Möglichkeit vor, einen kostenlosen Mentor zu erhalten - jeder möchte einen Mentor, aber wir betrachten den Überprüfungsprozess selten als einen Mentoring-Prozess. Wenn Sie die Mentorschaft schätzen, können Sie sich dagegen wehren, sie persönlich zu nehmen.

5. Mach es am Ende

Es ist nicht nur eine Neujahrsauflösungsmetapher - ich bin der festen Überzeugung, dass die meisten Softwarequalitätspraktiken wie Übung behandelt werden sollten. Wenn Sie versuchen, sie im letzten Moment zu verprügeln, sind sie nicht wirksam. Sie können in der Nacht vor einem Marathon kein Laufband laufen und in der Nacht vor Ihrer Freilassung keine Peer Review durchführen.

6. Inkonsistente Nachverfolgung

Wie eine Überprüfung weiterverfolgt wird, kann den Wert der Überprüfung erheblich beeinflussen. Wenn Sie während einer Überprüfung Elemente finden und nicht überprüfen, ob sie behoben sind, verschwenden Sie wahrscheinlich Ihre Zeit. Der beste Vorteil wird durch einen konsistenten Prozess erzielt, der die Rechenschaftspflicht einschließt. Stellen Sie sicher, dass jeder weiß, was von ihm erwartet wird, und stellen Sie sicher, dass Korrekturen vorgenommen werden. Wenn in der Überprüfung nichts gefunden wird, seien Sie kritisch. Dies kann zwar von Zeit zu Zeit passieren, sollte Sie aber auf jeden Fall misstrauisch machen. Dies kann ein Zeichen dafür sein, dass zwischen Entwicklern Gegenleistungen erbracht werden, oder ein Zeichen dafür, dass Ihre Entwicklung den Wert der Codeüberprüfung oder die ordnungsgemäße Vorgehensweise nicht versteht.

7. Inkonsistente Kriterien

Wenn nicht jeder Rezensent nach den gleichen Dingen sucht, haben Sie keine Ahnung, ob Ihre Rezensionen wirksam sind. Der Umfang der Peer-Ansicht muss auf einer eindeutigen Richtlinie basieren, die klar niedergeschrieben ist und auf die verwiesen werden kann. (Eine Checkliste kann sich zunächst einschränkend anfühlen, hilft jedoch dabei, die Überprüfung auf Kurs zu halten und doppelte Pflicht zu erfüllen, wenn Sie in einer Compliance-Branche wie der Automobil- oder Medizinbranche tätig sind und nachweisen müssen, dass Sie eine effektive Überprüfung durchgeführt haben .) Die Beseitigung von Mehrdeutigkeiten erfordert mehr Disziplin als nur das Aufschreiben der Richtlinie, obwohl dies ein guter erster Schritt ist. Im Idealfall würden Sie einige Szenarien basierend auf Ihrer Richtlinie ausarbeiten und verschiedene Personen fragen, wie sie dies tun würden. Es ist nicht ungewöhnlich, dass Unternehmen einen Status Quo akzeptieren, bei dem verschiedene Gruppen Dinge anders machen, und beide denken, dass die andere Gruppe es falsch macht, aber beide werden nach der mehrdeutigen Richtlinie zugelassen. Das kannst du besser. Bringen Sie alle auf die gleiche Seite - dies verbessert Ihre Qualität, bietet die für die Bewertung und Verbesserung erforderliche Konsistenz und schützt Sie, wenn etwas schief geht. Wenn Sie sich in einer Compliance-Umgebung wie ISO 26262 oder FDA befinden, werden Ihre Audits durch einheitliche Kriterien optimiert.

Ich habe Peer Reviews in einer Vielzahl von Organisationen gesehen und gesehen, wo es sich unglaublich lohnen kann und wie viel Zeit verschwendet wird. Wenn Sie die richtigen Tools in die richtigen Prozesse integrieren, können Sie sicherstellen, dass Sie den Wert des Prozesses steigern. Unterstützen Sie Ihr Peer-Review-System ohne schlechte Angewohnheiten mit einem statischen Analysetool, auf das Sie sich verlassen können, um Standards und Best Practices durchzusetzen, und konzentrieren Sie sich auf die interessanten Mängel, die Sie zu einem besseren Ingenieur machen.

Geschrieben von

Arthur Hicken

Arthur ist seit über 25 Jahren bei Parasoft im Bereich Software-Sicherheit und Testautomatisierung tätig. Er hilft bei der Erforschung neuer Methoden und Techniken (einschließlich 5 Patente) und hilft Kunden dabei, ihre Software-Praktiken zu verbessern.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.