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?
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.
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.
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.
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 .
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.
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:
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.
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.
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)
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.
Tags und Links qa code-review