Anleitung zum Code Review: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Einleitung == Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine ander…“)
 
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:HowTo]]
Autor: [[Benutzer:Ulrich_Schneider| Prof. Schneider]]
== Einleitung ==
== Einleitung ==
Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden. Der oder das Review ist eine statische Testmethode und gehört in die Kategorie der analytischen Qualitätssicherungsmaßnahmen.
Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden. Der oder das Review ist eine statische Testmethode und gehört in die Kategorie der analytischen Qualitätssicherungsmaßnahmen.
Zeile 10: Zeile 13:
Dieser Vortrag gibt einen Überblick über das Thema Code Review.
Dieser Vortrag gibt einen Überblick über das Thema Code Review.


==Ihre Aufgaben==
Ein Code Review
* Recherchieren Sie was ein Code Review ist und wie dieses durchgeführt werden kann.
* optimiert den Quelltext (zuverlässigere und schnellere Software),
* Welche Tool können hier unterstützen? Freeware?
* reduziert Kosten seitens der Firma, da eine behebung von Fehlern nach der Auslieferung von Software sehr teuer werden kann,
* Präsentieren Sie dieses Thema anhand von Beispielen anschaulich.
* erhöht die Kundenzufriedenheit, da geprüfte Software ausgeliefert wird,
* ist eine systematische Überprüfung des Codes durch eine oder mehrere Personen,
* dient der Sicherstellung von Softwarequalität,
* findet Fehlern und Unklarheiten und
* sichert die Einhaltung von Programmierrichtlinien.
 
 
 
 
== Formen des Code Reviews ==
* Formell
**Inspektion
**Technisches Review
* Informell
** Walktrough
** Reverse Code Review
 
== Ablauf Code-Review==
# Autor stellt den Quellcodes bereit.
# Autor initiiert eine Code Review Anfrage.
# Autor führt den Prüfer durch den Code (Walktrough).
# Prüfer identifiziert Probleme (Inspektion).
# Prüfer prüft den Code und dokumentiert die Funde (Code_Review_Vorlage.docx).
# Prüfer gibt das Dokument an den Autor zurück.
# Autor arbeitet Befunde ein.
# Autor initiiert eine neue Runde des Review-Prozesses (GOTO 1).
 
== Worauf sollten Sie beim Code Review generell achten? ==
* Funktion des Codes generell verständlich?
* Ist der Code gut dokumentiert?
* Sind Bereiche des Codes einfacher, leistungsfähiger umsetzbar?
* Funktioniert der Code in allen Anwendungsfällen korrekt?
 
 
== Tipps ==
=== Tipps zum Durchführen eines Code Reviews ===
* Gehen Sie davon aus, dass bei der Programmierung Fehler gemacht wurden.
* Definieren Sie Regeln und Ziele klar.
 
=== für den Autor ===
* Nutzen Sie erläuternde Kommentare.
* Reviewer liegt nicht immer 100% richtig.
* Aus den Fehlern lernen.


==Kür-Aufgabe==
Machen Sie doch eine Umfrage unter Ihren Kommilitonen (Semester 1-7) welche Firmen Code Reviews einsetzen und warum. Das wäre aber schon das ++ hinter der 1.


==Mögliche Fragen==
=== für den Reviewer ===
* In welchen Schritten geht man beim Code-Review vor?
* Nie mehr als 400 Zeile Code gleichzeitig prüfen.
* Warum macht man Code Reviews?
* Nicht länger als 60 Minuten auf einmal prüfen.
* Wie laufen Reviews ab?
* Zeit lassen beim prüfen
* Welche Tools gibt es?
* Mit Checkliste arbeiten
* Formulieren Sie Tipps für Entwickler und Reviewer.
* Nur auf Fehler hinweisen und nicht selber fixen
* Welche Hürden gibt es?
* Fehler genau dokumentieren
* Wie lässt sich das auf ihr Studium übertragen?
* Lernen durch Review von Code




== Tools ==
*[https://smartbear.com/ Smartbear Collaborator]
*[https://www.jetbrains.com/ Jet brains Upsource]
*[https://www.reviewboard.org/ Review Board (Freeware)]
== Weblinks ==
* [[Anleitung_zum_Code_Review|HSHL-Wiki: Anleitung zum Code Review]]
* [https://de.wikipedia.org/wiki/Review_(Softwaretest) Wikipedia: Review (Softwaretest)]
* [https://www.doag.org/formes/pubfiles/6774263/2015-null-Rabea_Gransberger-Code_Reviews__Techniken_und_Tipps-Praesentation.pdf Code Reviews: Techniken und Tipps]
* [https://www.johner-institut.de/blog/fda/code-review/ Code Review - Checkliste, Tools & Guidelines]
* [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Testdokumente/CodeReviews/Code_Review_Vorlage.docx Word SVN: Vorlage für Code Reviews]
== Zitate ==
* [https://smartbear.com/learn/code-review/why-review-code/?_ga=2.207847569.2041553548.1576511351-1414243424.1574687504 [SB1]: Smartbear.com: Why Review Code]
* [https://smartbear.de/learn/code-review/best-practices-for-peer-code-review/ [SB2]: Best practices for peer code review]
* [https://speakerdeck.com/rgra/code-reviews-techniques-and-tips-rheinjug-2016?slide=10 [SD16]: Code Reviews - Techniques and Tips]
* [https://www.johner-institut.de/blog/fda/code-review/ [JI16]: Code Review]
* [https://sdqweb.ipd.kit.edu/wiki/Codereview [KIT1]:  Code Review]


== Literatur ==
== Literatur ==
Zeile 34: Zeile 95:
* Understanding Open Source Software Peer Review: Review Processes, Parameters and Statistical Models, and Underlying Behavioursand Mechanisms, Rigby, Dissertation, 2011
* Understanding Open Source Software Peer Review: Review Processes, Parameters and Statistical Models, and Underlying Behavioursand Mechanisms, Rigby, Dissertation, 2011
* Mäntylä, M.; LASSENIUS, C.: Code Review Defects. IEEE 2007. URL: http://lib.tkk.fi/Diss/2009/isbn9789512298570/article5.pdf
* Mäntylä, M.; LASSENIUS, C.: Code Review Defects. IEEE 2007. URL: http://lib.tkk.fi/Diss/2009/isbn9789512298570/article5.pdf
 
* Dukanivic, S.: [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Testdokumente/CodeReviews/D08-QM-3-Prozesse-Code-Reviews-und-Dokumentationsqualitaet.pdf D08-QM-3 Prozessbeschreibung zur Durchführung von Code-Reviews und Sicherstellung der Dokumentationsqualität]. Darmstadt: Technischer Bericht, 21.06.2013
 
----
→ zurück zum Hauptartikel: [[Seminar_SDE_WS_19/20|Seminar SDE WS 19/20]]

Aktuelle Version vom 3. Januar 2020, 15:07 Uhr

Autor: Prof. Schneider

Einleitung

Mit dem Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Jedes Arbeitsergebnis kann einer Durchsicht durch eine andere Person unterzogen werden. Der oder 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, insbesondere Design-Dokumente) unterschieden. Diesen Bereichen zugeordnet sind technische Dokumente wie etwa Readmes, Installationsanweisungen oder Bedienungsanleitungen, aber auch Programme oder Skripte, die für eine Installation gebraucht werden, sowie Dokumente mit Informationen und Anweisungen an andere, ähnlich qualifizierte Entwickler, um diese zu befähigen, den Übersetzungsvorgang der Quellen zu einem späteren Zeitpunkt erfolgreich zu reproduzieren, etwa für ein Bug-Fixing (Fehlerkorrektur) oder eine Weiterentwicklung.

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

Dieser Vortrag gibt einen Überblick über das Thema Code Review.

Ein Code Review

  • optimiert den Quelltext (zuverlässigere und schnellere Software),
  • reduziert Kosten seitens der Firma, da eine behebung von Fehlern nach der Auslieferung von Software sehr teuer werden kann,
  • erhöht die Kundenzufriedenheit, da geprüfte Software ausgeliefert wird,
  • ist eine systematische Überprüfung des Codes durch eine oder mehrere Personen,
  • dient der Sicherstellung von Softwarequalität,
  • findet Fehlern und Unklarheiten und
  • sichert die Einhaltung von Programmierrichtlinien.



Formen des Code Reviews

  • Formell
    • Inspektion
    • Technisches Review
  • Informell
    • Walktrough
    • Reverse Code Review

Ablauf Code-Review

  1. Autor stellt den Quellcodes bereit.
  2. Autor initiiert eine Code Review Anfrage.
  3. Autor führt den Prüfer durch den Code (Walktrough).
  4. Prüfer identifiziert Probleme (Inspektion).
  5. Prüfer prüft den Code und dokumentiert die Funde (Code_Review_Vorlage.docx).
  6. Prüfer gibt das Dokument an den Autor zurück.
  7. Autor arbeitet Befunde ein.
  8. Autor initiiert eine neue Runde des Review-Prozesses (GOTO 1).

Worauf sollten Sie beim Code Review generell achten?

  • Funktion des Codes generell verständlich?
  • Ist der Code gut dokumentiert?
  • Sind Bereiche des Codes einfacher, leistungsfähiger umsetzbar?
  • Funktioniert der Code in allen Anwendungsfällen korrekt?


Tipps

Tipps zum Durchführen eines Code Reviews

  • Gehen Sie davon aus, dass bei der Programmierung Fehler gemacht wurden.
  • Definieren Sie Regeln und Ziele klar.

für den Autor

  • Nutzen Sie erläuternde Kommentare.
  • Reviewer liegt nicht immer 100% richtig.
  • Aus den Fehlern lernen.


für den Reviewer

  • Nie mehr als 400 Zeile Code gleichzeitig prüfen.
  • Nicht länger als 60 Minuten auf einmal prüfen.
  • Zeit lassen beim prüfen
  • Mit Checkliste arbeiten
  • Nur auf Fehler hinweisen und nicht selber fixen
  • Fehler genau dokumentieren
  • Lernen durch Review von Code


Tools

Weblinks

Zitate

  • [SB1: Smartbear.com: Why Review Code]
  • [SB2: Best practices for peer code review]
  • [SD16: Code Reviews - Techniques and Tips]
  • [JI16: Code Review]
  • [KIT1: Code Review]

Literatur