Wie unterscheidet sich Code Review von QA (Quality Assurance) Reviews?

8

Können beide gleichzeitig gemacht werden? Neben dem eigentlichen Programmierer, wer sollte teilnehmen? Sollten verschiedene Menschen an einem teilnehmen und nicht am anderen, oder sollten es immer die gleichen Teilnehmer sein? Wie sollte es zwischen den beiden aufgebaut sein?

    
2 revsrobertmyers 11.12.2008, 21:48
quelle

10 Antworten

13

In meinen Augen sind Code Reviews entwicklerzentriert. Damit meine ich, dass Entwickler ihren Code gegenseitig überprüfen, um Best Practices und gute Codierungsstandards durchzusetzen. Idealerweise sollte dies sicherstellen, dass der in die Anwendung eingecheckte Code von höchster Qualität ist. Ob das gemacht wird oder nicht, ist eine ganz andere Geschichte.

Qualitätssicherung ist benutzerorientiert. Ich sehe QA als Software, die eine Blackbox behandelt - der Code ist in diesem Stadium irrelevant. QA sollte verschiedene Aspekte der Anwendung bewerten: Usability, Stresstests, Erfüllung von Anforderungen, etc.

Ob sie gleichzeitig ausgeführt werden können, hängt vom Zeitpunkt der Erstellung ab. Zum Beispiel könnten Anwendungen automatisierte Tools haben, die Anwendungsfall-Simulationen alle, sagen wir, Stunde auf dem letzten Build ausführen. Das Problem dabei ist jedoch, dass die Use Cases in alles, was codiert oder aufgezeichnet wurde, eingeschlossen sind. Es gibt wenig Abwechslung. Es wertet weiterhin nur die Anwendungsfälle und das Verhalten aus, das in die Simulation eingebaut wurde.

Außerdem ist es in der Regel so, dass eine Testabteilung oder QA-Abteilung für die, ähm, QA der Anwendung zuständig ist, während die Entwickler für die Codeüberprüfungen und damit für die Codequalität verantwortlich sind.

    
Tom 11.12.2008 20:32
quelle
7

Code Reviews können vom gesamten Team genutzt werden. Dies macht es zu einer großartigen Lernerfahrung für Ihr gesamtes Team. Sie können diese verwenden, um Ideen voneinander abzukoppeln und den besten Weg zu finden, etwas zu tun. Ich besuche tatsächlich die Code-Reviews in meiner Firma, wenn ich die Zeit frei habe und es mir in keiner Weise mit dem QA-Prozess hilft. Ich bin dort, um zu lernen und Ideen zu verbreiten.

Qualitätssicherung sollte nichts mit dem Code zu tun haben. Ich bin derzeit ein Software Quality Assurance Analyst in meiner Firma. Im QA-Prozess muss ich den Code nicht sehen oder den Code haben. Ich bekomme die endgültige Bewerbung und teste sie an der Bewerbungsbasis. Es liegt in der Verantwortung der DEVs, ihren Code nicht von mir zu testen. Der QA-Prozess dient zum Testen der Software, wie sie in der realen Welt von den Endbenutzern verwendet wird.

    
Ironsides 11.12.2008 20:37
quelle
7

OK, das ist pingelig, aber die meisten Leute nennen Qualitätssicherung (QA) eigentlich Qualitätskontrolle (QC). Bei QA dreht sich alles um Fehlervermeidung , bei QC geht es um Fehlererkennung .

Code-Überprüfung ist eine QC-Aktivität. Wenn Sie die Ergebnisse aus einer Codeüberprüfung ziehen und Ihre Prozesse verbessern, sodass ähnliche Fehler nicht erneut auftreten, wäre QA.

Es gibt jedoch viele Möglichkeiten, Code-Reviews und verschiedene Formalitäten durchzuführen. Pair-Programmierung ist wie Instant-Code-Überprüfung. Wenn Sie einen vertrauenswürdigen Kollegen oder eine leitende Bank haben, überprüfen Sie Ihren Code, bevor Sie ihn begehen. Sie können auch einen formaleren Prozess haben, der den Coder, leitende Angestellte, CM, QC und QA umfasst. Wie auch immer Sie es tun, es wird normalerweise gemacht, bevor ein Build für QC geliefert wird.

QC kann entweder eine Black Box sein (am häufigsten, benötigt den Code nicht) oder eine weiße Box (Tester prüfen den Code, um nach möglichen Möglichkeiten zu suchen, diesen zu durchbrechen). Es ist generell nicht eine gute Idee, wenn die Leute, die den Code geschrieben haben, QC darauf anwenden.

    
Patrick Cuff 11.12.2008 20:49
quelle
3

QA ist der Vermittler zwischen DEVs und Clients, QA arbeitet in beiden Richtungen hin und her sowohl für Clients als auch für DEVs. QA ist der Prozess, bei dem die Sicherheit des Produkts / der Software gemäß den Vorschriften und Standards den Kunden gegeben wird.

    
gaurav 11.03.2014 07:29
quelle
1

Unsere Codeüberprüfungen umfassen QA-Entwickler, sodass sie Diskussionen hören, die auf verschiedene Testäquivalenzklassen verweisen. Der Hauptfokus bei einer Codeüberprüfung oder -inspektion lautet jedoch: Läuft der Code wie erwartet und erfüllt er unsere Annahmekriterien und Standards? Obwohl es sich um einen Schritt im Qualitätsprozess handelt, handelt es sich nicht um einen QA-Bereich. Daher gibt es in der Regel mehr Entwickler als QA-Leute im Raum.

Wir haben QA-Tests und Ergebnisse von Projekten überprüft, an denen ich in der Vergangenheit gearbeitet habe, um sicherzustellen, dass die Tests den Erwartungen entsprachen und alle zutreffenden Fälle getestet wurden, anstatt Daten innerhalb derselben Äquivalenzklasse zu variieren .

    
CJP 11.12.2008 20:39
quelle
1

Codeüberprüfungen konzentrieren sich auf den Code. Ein Entwickler sucht nach einem Code, der nach möglichen Problemen, Fehlern oder Fehlern sucht. Viele Male spielt Konzept wie "Schönheit" und "Gerüche" eine zentrale Rolle bei Code-Reviews, weil es das Sammeln von Menschen ist, die sich dem Erstellen von Code verschrieben haben.

Qualitätssicherungsprüfungen konzentrieren sich auf das Risiko. Jede Codeänderung birgt das Risiko von Problemen - Bugs, schreckliche Benutzererfahrung, Datenbeschädigung. Die interne Arbeit ist nur so interessant, wie sie mögliche Risiken oder Milderungen beleuchtet.

Es ist sehr wichtig, während der QA-Prüfungen so viele verschiedene Perspektiven wie möglich zu erreichen. Aus diesem Grund kann es sinnvoll sein, auch viele der an der Code-Review beteiligten Personen vorzustellen, dies ist jedoch absolut nicht notwendig.

    
Roberto Liffredo 11.12.2008 20:48
quelle
1

Ich stimme den Antworten zu, die bisher gepostet wurden, insbesondere @Ironsides & amp; @ Tom.

Ich gegoogelt "White Hat Black Hat QA Tests", und diese SO Frage war auf der ersten Seite:

Entwickler testet vs QA-Team-Tests - Was ist die richtige Arbeitsteilung?

Siehe die Antworten dort für eine gute Diskussion darüber, was wo hingehört.

Auf wen sollten Sie bei der Codeüberprüfung eines früheren Arbeitgebers zurückgreifen? Folgende Rollen haben wir verwendet:

  • Moderator ( nicht der Autor) - führt den Code-Rundgang durch
  • Recorder ( nicht der Autor) - zeichnet unbeantwortete Fragen, Aktionselemente, Defekte usw. zur Verteilung auf
  • Rezensenten - mindestens ein anderer Entwickler, der nicht der Autor ist (also haben Sie mindestens drei Augenpaare)
  • Autor - beantwortet Fragen.

Nummer eins Grundregel: Sprechen Sie über den Code (oder das zu überprüfende Artefakt) und nicht über den Autor .

Beachten Sie auch, dass eine formale Aufteilung der QS, wie beschrieben, nicht die einzige Möglichkeit ist, sich dem Thema QA zu nähern. Kleine Teams verwenden oft eine Kombination aus Komponententests, kontinuierlicher Integration und Benutzern oder Benutzervertretern während des Entwicklungsprozesses. Dies ermöglicht den Anwendern oder ihren Vertretern, frühzeitig und oft Rückmeldungen in den Prozess zu erhalten und kann den Bedarf nach einem "Big Bang" - umfassenden QA-Test bei der Freigabe drastisch reduzieren.

    
Ken Gentle 11.12.2008 20:51
quelle
1

Überprüfung:

  • Follow-up: eine nachträgliche Überprüfung eines Produkts zwecks Überwachung früherer Veränderungen.

Code-Überprüfung:

  • Entwickler schreiben den Code auf der Grundlage der Anforderung. Dann analysiert das Inspektionsteam Mängel und schlägt Verbesserungen vor.

Umfasst 5 Hauptrollen:

Autor: Wer hat ursprünglich das Arbeitsprodukt konstruiert?

Moderator: verantwortlich dafür, dass die Diskussionen über die produktiven Linien weitergehen.

Reader: muss erklären, wo nötig, und kleine logische Einheiten auslesen, ggf. paraphrasieren.

Inspector: bestätigt, dass es keine Konflikte zwischen den Teammitgliedern gibt und alle konzentrieren sich auf die Erkennung von Fehlern.

recorder: Dokumentation von Mängeln, die während der Inspektionsmeldung auftreten.

QA-Überprüfung:

  • Es bezieht sich überhaupt nicht auf den Code, sondern bezieht sich nur auf die Überprüfung des Testplans, der Testfälle und der Aufwandschätzung, die für das Produkt entwickelt wurden.

beide Aktivitäten können nicht Hand in Hand gehen, wir müssen warten, bis das Produkt (oder ein Teil zuerst entwickelt wird), dann können die QA-Aktivitäten beginnen. d. h. (Testdesignphase - Erstellen von Testfällen)

    
Snehal Mohite 05.05.2013 06:30
quelle
0

Codeüberprüfungen werden normalerweise um die Zeit der Komponententests durchgeführt, während QA-Tests während des Funktionstests stattfinden, nachdem der Code als "abgeschlossen" eingestuft wurde.

    
Jim Anderson 11.12.2008 20:34
quelle
0

Qualitätssicherung ist ein sehr weites Thema und eine Code-Überprüfung wäre ein Teil davon.

Im Allgemeinen scheint Q / A mit Blackbox-Tests in Verbindung zu stehen.

    
Loki 11.12.2008 20:33
quelle

Tags und Links