www.wikidata.de-de.nina.az
Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell gepruft Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden Der oder das Review ist eine statische Testmethode und gehort in die Kategorie der analytischen Qualitatssicherungsmassnahmen In Anlehnung an die IEEE Norm IEEE 730 ist das Review ein mehr oder weniger formal geplanter und strukturierter Analyse und Bewertungsprozess in dem Projektergebnisse einem Team von Gutachtern prasentiert 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 insbesondere Design Dokumente unterschieden Diesen Bereichen zugeordnet sind technische Dokumente wie etwa Readmes Installationsanweisungen oder Bedienungsanleitungen aber auch Programme oder Skripte die fur eine Installation gebraucht werden sowie Dokumente mit Informationen und Anweisungen an andere ahnlich qualifizierte Entwickler um diese zu befahigen den Ubersetzungsvorgang der Quellen zu einem spateren Zeitpunkt erfolgreich zu reproduzieren etwa fur ein Bug Fixing Fehlerkorrektur oder eine Weiterentwicklung Beim Code Review wird ein Programmabschnitt nach oder wahrend der Entwicklung von einem oder mehreren Gutachtern Korrektur gelesen um mogliche Fehler Vereinfachungen oder Testfalle zu finden Dabei kann der Gutachter selbst ein Softwareentwickler sein Fur unerfahrene Entwickler bietet der Code Review durch einen erfahrenen Programmierer eine gute Moglichkeit sich schnell und praxisorientiert weiterzubilden Inhaltsverzeichnis 1 Nutzen von Reviews 2 Reviewprozess 3 Reviewarten 4 Erfolgsfaktoren 5 Reviews als Philosophie 6 Einzelnachweise 7 LiteraturNutzen von Reviews BearbeitenDer Einsatz von Reviews fuhrt zu einer deutlichen Reduktion von Fehlern Laut Capers Jones Studien von ca 12 000 Projekten fuhren Requirements Reviews zu einer Reduktion der zu erwartenden Fehler um 20 bis 50 Top level Design Reviews zwischen 30 und 60 detaillierte funktionelle Design Reviews zwischen 30 und 65 und detaillierte logische Design Reviews zwischen 35 und 75 Das entspricht in etwa der Effektivitat von Systemtests 25 bis 65 aller Fehler 1 Lt Steve Mcconnel finden Design und Code Reviews ca 60 aller Fehler 2 Dabei laufen verschiedene Qualitatsprozesse ab Der Programmierer entdeckt selbst eine Verbesserungsmoglichkeit Der Rezensent stellt Verstandnisfragen und der Programmierer kann den Code so verandern beispielsweise durch geeignete Namensgebung oder Dokumentation dass diese Fragen beantwortet sind und so die Verstandlichkeit verbessert wurde Der Rezensent entdeckt Verbesserungsmoglichkeiten und empfiehlt diese dem Programmierer Zu den typischen Schwachen die mit Reviews entdeckt werden konnen gehoren Abweichungen von Standards z B Verletzung von Namenskonventionen Fehler gegenuber oder auch in den Anforderungen Fehler im Design Unzureichende Wartbarkeit Falsche SchnittstellenspezifikationResultate von Code Reviews sind neben den damit gefundenen Fehlern eine verbesserte Codequalitat Diese wiederum verhindert zukunftige Fehler und steigert die Effizienz Robustheit Wartbarkeit z B durch verringerte Komplexitat Daruber hinaus konnen Fehler die im Review auffallen haufig bedeutend kostengunstiger behoben werden als wenn diese erst wahrend der Testdurchfuhrung gefunden werden Reviews und Inspections konnen somit die Softwareentstehungskosten um bis zu 30 reduzieren 1 Reviewprozess BearbeitenEin typisches Review besteht aus folgenden Hauptphasen Planung Auswahl der beteiligten Personen und Besetzung der Rollen Festlegung der Vor und NachbedingungenKick Off Verteilung der Dokumente Erlauterung der Ziele und des Prozesses Prufung der VorbedingungenIndividuelle Vorbereitung Notierung von potentiellen Fehlern Fragen und KommentarenReviewsitzung Diskussion und Protokollierung der Ergebnisse Empfehlungen geben oder Entscheidungen uber Fehler treffenUberarbeitung rework Beheben der gefundenen Fehler typischerweise durch den AutorNachbearbeitung follow up Uberprufung der Uberarbeitung Prufung von Testende KriterienReviewarten BearbeitenReviews variieren zwischen sehr informell unstrukturiert und sehr formal d h tief strukturiert und geregelt Die Art und Weise wie ein Review durchgefuhrt wird ist abhangig von den festgelegten Zielen des Reviews z B dem Finden von Fehlern dem Erwerb von Verstandnis oder einer Diskussion mit Entscheidung durch Konsens Nach Norm IEEE 1028 gibt es die folgenden vier Reviewarten 3 Technisches Review Fachliche Prufung eines wesentlichen Dokumentes z B Architekturentwurf auf Ubereinstimmung mit der Spezifikation Zweck Diskussion Entscheidungen treffen Alternativen bewerten Fehler finden technische Probleme losenInformelles Review Entspricht inhaltlich dem technischen Review es soll ihm gegenuber aber Zeit gespart werden und daher wird es als nicht formaler Prozess durchgefuhrt Das informelle Review ist nicht im IEEE Standard fur Software Reviews enthalten Eine strukturierte Protokollierung Dokumentierung ist moglich Ein Bericht wird in der Praxis meist nur in einer einfacheren Form erstellt oder teils ganz ausgelassen Es ist eine einfache Art eines Reviews bei dem meistens Gegenlesen unter Kollegen durchgefuhrt wird Inhaltlich konnen dieser Art folgende praxisbezogene Review Arten zugeordnet werden Begriffe je nach Firmenkultur unterschiedlich Schreibtischtest Programm Autor spielt den Code anhand von einfachen Testfallen gedanklich durch Peer Rating Gutachten das von gleichgestellten Programmierern anonym uber ein Programm erstellt wird Stellungnahmeverfahren Autor verteilt Arbeitsergebnis an ausgewahlte Gutachter zur Beurteilung Walkthrough Diskussion von Szenarien Probelaufen und Alternativen im Kreis gleichgestellter Mitarbeiter mit moglichst niedrig gehaltenem Aufwand Zweck Lernen Verstandnis erzielen und Fehler findenInspektion Formalste Reviewtechnik mit einem dokumentierten Vorgehen nach IEEE 1028 Zweck Sichtuberprufung von Dokumenten um Mangel zu finden z B Nichteinhaltung von Entwicklungsstandards Nicht Konformitat gegenuber Spezifikationen usw Erfolgsfaktoren BearbeitenDamit Reviews erfolgreich durchgefuhrt werden mussen verschiedene Bedingungen erfullt sein Definition von klaren Zielen Auswahl von geeigneten Personen Konstruktive Kritikfahigkeit gefundene Fehler werden objektiv zur Sprache gebracht und positiv aufgenommen Psychologische Aspekte insbesondere Sicherstellung einer positiven Erfahrung fur den Autor Auswahl der geeigneten Reviewtechnik Unterstutzung des Reviewprozesses durch das Management Existenz einer Kultur von Lernen und ProzessverbesserungAnforderungen an Rezensenten Er darf den Code nicht selbst geschrieben haben Er muss Taktgefuhl haben Codereviews konnen fur den Programmierer unangenehm sein da er den Eindruck bekommen konnte der eigene Code werde kritisiert Wenn der Rezensent nicht taktvoll vorgeht wird Widerstand und Ablehnung gegen die Durchsicht der Quelltexte aufgebaut Reviews als Philosophie BearbeitenKontinuierliches 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 wahrend der Entwicklung bezeichnet Ein offentliches Review ist ebenfalls eine Motivation der Open Source Software Online Software Repositories wie Github GitLab oder Bitbucket erlauben es Gruppen von Individuen gemeinschaftlich Codereviews durchzufuhren und damit Sicherheit und Qualitat des Programmcodes zu verbessern Es lasst sich dabei beispielsweise festlegen dass eine Mindestanzahl an Revierwern eine Anderung fur gut befunden haben mussen bevor es moglich ist diese Anderung mit dem restlichen Code zu mergen Daruber hinaus ist es auch moglich Problemstellen die durch Werkzeuge fur statische Codeanalyse im zu reviewenden Code erkannt wurden entsprechend zu markieren wodurch diese Probleme ebenfalls im Rahmen des Reviews behandelt werden Einzelnachweise Bearbeiten a b Capers Jones Chief Scientist Emeritus Software Quality in 2002 A Survey of the State of the Art pdf 234 kB Software Productivity Research an Artemis company 23 Juli 2002 S 56 abgerufen am 15 Oktober 2013 englisch Steve McConnel Code Complete 2 Auflage Microsoft 2005 ISBN 978 3 86063 593 3 21 3 Formal Inspections S 530 940 S Individual inspections typically catch about 60 of defects which is higher than other techniques except prototyping and high volume beta testing 1028 2008 IEEE Standard for Software Reviews and Audits Abgerufen am 2 Februar 2013 Literatur BearbeitenM E Fagan Design and code inspections to reduce errors in program development IBM Systems Journal Vol 15 3 1976 S 182 211 Hansruedi Tremp IT Systeme prufen Compendio Verlag 2 Auflage 2007 ISBN 978 3 7155 9304 3 Peter Rosler Maud Schlich Ralf Kneuper Reviews in der System und Softwareentwicklung Grundlagen Praxis kontinuierliche Verbesserung dpunkt Verlag Heidelberg 2013 ISBN 978 3 86490 094 5 Abgerufen von https de wikipedia org w index php title Review Softwaretest amp oldid 237613118