Review (Softwareentwicklung)

Review (Softwareentwicklung)

Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden. Das Review ist eine statische Testmethode und gehört in die Kategorie der analytischen Qualitätssicherungsmaßnahmen.

In Anlehnung an die IEEE-Norm 729 ist das Review ein mehr oder weniger formal geplanter und strukturierter Analyse- und Bewertungsprozess, in dem Projektergebnisse einem Team von Gutachtern präsentiert und von diesem kommentiert oder genehmigt werden.

Der untersuchte Gegenstand eines Reviews kann verschieden sein. Es wird vor allem zwischen einem Code-Review (Quelltext) und einem Architektur-Review (Softwarearchitektur) unterschieden.

Beim Codereview wird ein Programmabschnitt, nach oder während der Entwicklung, von einem oder mehreren Gutachtern korrekturgelesen, um mögliche Fehler, Vereinfachungen oder Testfälle zu finden. Dabei kann der Gutachter selbst ein Software-Entwickler sein. Für unerfahrene Entwickler bietet der Codereview durch einen erfahrenen Programmierer eine gute Möglichkeit, sich schnell und praxisorientiert weiterzubilden.

Inhaltsverzeichnis

Nutzen von Reviews

Fehler können häufig bedeutend kostengünstiger behoben werden, als wenn diese erst während der Testdurchführung gefunden werden. Untersuchungen haben gezeigt, dass mit Reviews 85% der Fehler bei einem Aufwand von 25% gefunden werden können.

Dabei laufen verschiedene Qualitätsprozesse ab:

  • Der Programmierer entdeckt selbst eine Verbesserungsmöglichkeit (oft Sekunden bevor der Reviewer diese sieht).
  • Der Rezensent stellt Verständnisfragen und der Programmierer kann die Antwort auf diese Fragen als Kommentare in den Programmcode einbauen und so die Verständlichkeit und die Dokumentation verbessern.
  • Der Rezensent entdeckt Verbesserungsmöglichkeiten und empfiehlt diese dem Programmierer.

Zu den typischen Fehlern die mit Reviews entdeckt werden können gehören:

  • Abweichungen von Standards
  • Fehler in den Anforderungen
  • Fehler im Design
  • Unzureichende Wartbarkeit
  • Falsche Schnittstellenspezifikation

Resultate sind verbesserter Code (Effizienz, Robustheit, Wartbarkeit) aber auch verbesserte Kommentare im Code (Wartbarkeit).

Reviewprozess

Ein typisches Review besteht aus folgenden Hauptphasen:

  • Planung
    • Auswahl der beteiligten Personen und Besetzung der Rollen
    • Festlegung der Vor- und Nachbedingungen
  • Kick-Off
    • Verteilung der Dokumente
    • Erläuterung der Ziele und des Prozesses
    • Prüfung der Vorbedingungen
  • Individuelle Vorbereitung
    • Notierung von potentiellen Fehlern, Fragen und Kommentaren
  • Reviewsitzung
    • Diskussion und Protokollierung der Ergebnisse
    • Empfehlungen geben oder Entscheidungen über Fehler treffen
  • Überarbeitung (rework)
    • Beheben der gefundenen Fehler, typischerweise durch den Autor
  • Nachbearbeitung (follow up)
    • Überprüfung der Überarbeitung
    • Prüfung von Testendekriterien

Reviewarten

Reviews variieren zwischen sehr informell (unstrukturiert) und sehr formal (d.h. gut strukturiert und geregelt). Die Art und Weise, wie ein Review durchgeführt wird, ist abhängig von den festgelegten Zielen des Reviews (z.B. das Finden von Fehlern, dem Erwerb von Verständnis oder einer Diskussion mit Entscheidung durch Konsens).

Nach Norm IEEE 1028 gibt es die folgenden vier Reviewarten:

  • Technisches Review
    • Fachliche Prüfung eines wesentlichen Dokumentes (z.B. Architekturentwurf) auf Übereinstimmung mit Spezifikation
    • Zweck: Diskussion, Entscheidungen treffen, Alternativen bewerten, Fehler finden, technische Probleme lösen
  • Informelles Review
    • Entspricht inhaltlich dem technischen Review, es soll ihm gegenüber aber Zeit gespart werden und daher wird es als nicht formaler Prozess durchgeführt.
    • Das Informelle Review ist nicht im IEEE Standard für Software Reviews enthalten. Demnach wird hier auf strukturierte Protokollierung/Dokumentierung verzichtet.
    • Es ist eine einfache Art eines Reviews, bei dem meistens „Gegenlesen unter Kollegen“ durchgeführt wird.
    • Inhaltlich können dieser Art folgende, praxisbezogene Reviewarten zugeordnet werden (Begriffe je nach Firmenkultur unterschiedlich):
      • Pulttest (Programm-Autor spielt den Code anhand von einfachen Testfällen gedanklich durch.)
      • Peer Rating (Gutachten, das von gleichgestellten Programmierern anonym über ein Programm erstellt wird.)
      • Stellungnahmeverfahren (Autor verteilt Arbeitsergebnis an ausgewählte Gutachter zur Beurteilung.)
  • Walkthrough
    • Diskussion von Szenarien, Probeläufen und Alternativen im Kreis gleichgestellter Mitarbeiter mit möglichst niedrig gehaltenem Aufwand
    • Zweck: Lernen, Verständnis erzielen und Fehler finden
  • Inspektion
    • Formalste Reviewtechnik mit einem dokumentierten Vorgehen nach IEEE 610, IEEE 1028.
    • Zweck: Sichtüberprüfung von Dokumenten um Mängel zu finden (z.B. Nichteinhaltung von Entwicklungsstandards, Nicht-Konformität gegenüber Spezifikationen, usw.).

Erfolgsfaktoren

Damit Reviews erfolgreich durchgeführt werden, müssen verschiedene Bedingungen erfüllt sein:

  • Definition von klaren Zielen
  • Auswahl von geeigneten Personen
  • Konstruktive Kritikfähigkeit (gefundene Fehler werden objektiv zur Sprache gebracht und positiv aufgenommen)
  • Psychologische Aspekte (insbesondere Sicherstellung einer positiven Erfahrung für den Autor)
  • Auswahl der geeigneten Reviewtechnik
  • Unterstützung Reviewprozess durch das Management
  • Existenz einer Kultur von Lernen und Prozessverbesserung

Anforderungen an Rezensenten

  • Er darf den Code nicht selbst geschrieben haben.
  • Er muss Taktgefühl haben: Codereviews können für den Programmierer unangenehm sein, da er den Eindruck bekommen könnte, der eigene Code werde kritisiert. Wenn der Rezensent nicht taktvoll vorgeht, wird Widerstand und Ablehnung gegen die Durchsicht der Quelltexte aufgebaut.

Reviews als Philosophie

Kontinuierliches Inspizieren des Quelltextes wie bei der Paarprogrammierung ist auch eine der Methoden des Extreme Programming. Die im Extreme Programming (XP) eingesetzte Paarprogrammierung wird auch als „Codereview während der Entwicklung“ bezeichnet.

Ein öffentlicher Review ist ebenfalls eine Motivation der Open Source-Software.

Online-Software Repositories wie CVS erlauben es Gruppen von Individuen, gemeinschaftlich Codereviews durchzuführen, und damit Sicherheit und Qualität des Programmcodes zu verbessern.

Literatur

Weblinks


Wikimedia Foundation.

См. также в других словарях:

  • Review (Softwaretest) — Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden. Das Review ist eine statische Testmethode und gehört in die Kategorie der… …   Deutsch Wikipedia

  • Review — 1. Begriff: Vorgehensweise zum ⇡ Testen und zur Prüfung von Systementwicklungen, bes. bei der ⇡ Softwareentwicklung; Hilfsmittel für das ⇡ Projektmanagement (PM). 2. Gegenstand: Feststellung von Mängeln, Fehlern und Inkonsistenzen des erstellten… …   Lexikon der Economics

  • Code-Review — Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden. Das Review ist eine statische Testmethode und gehört in die Kategorie der… …   Deutsch Wikipedia

  • Code Review — Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden. Das Review ist eine statische Testmethode und gehört in die Kategorie der… …   Deutsch Wikipedia

  • Extreme programming — (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die Extremprogrammierung… …   Deutsch Wikipedia

  • Extremprogrammierung — Extreme Programming (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die… …   Deutsch Wikipedia

  • Xtreme Programming — Extreme Programming (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die… …   Deutsch Wikipedia

  • EN ISO 13407 — DIN EN ISO 13407 Bereich Softwareentwicklung Regelt Benutzer orientierte Gestaltung interaktiver Systeme Kurzbeschreibung …   Deutsch Wikipedia

  • SWEBOK — Der Guide to the Software Engineering Body of Knowledge (SWEBOK) ist ein Dokument der IEEE Computer Society. Es strukturiert das gesammelte Wissen (engl. body of knowledge) auf dem Gebiet der Softwaretechnik und stellt es der Allgemeinheit zur… …   Deutsch Wikipedia

  • Certified Tester — ISTQB Certified Tester ist die Bezeichnung für eine standardisierte Qualifikation zum Softwaretester. Das International Software Testing Qualifications Board (ISTQB) hat das Ziel, eine standardisierte Ausbildung für professionelle Softwaretester… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»