Sollten Tester ihre Arbeit automatisieren?

9

Wir versuchen, unseren Testprozess einzurichten. Wir fragen uns, ob unsere Tester automatisierte Regressionstests entwickeln sollten oder ob die Entwickler dies tun sollten.

Und was ist mit anderen Arten von automatisierten Tests? Sollten Tester sie entwickeln?

Jader Dias
quelle
Nennen Sie sie einfach "Entwickler im Test" und die Unklarheit ist behoben.
Edward Strange
@Crazy Aber ist es nicht teurer, zwei Entwicklerteams zu haben?
Jader Dias
5
Teurer als was? Ein schlecht getestetes Produkt verkaufen? Engpass im Entwicklungsprozess, weil Entwickler Tests anstelle von Produkten schreiben?
Edward Strange

Antworten:

12

Ich sage, die Tester sollten die automatisierten Tests entwickeln - sie haben den "äußeren Augenpaar" -Ansatz für den Code und werden (oder sollte das nur "vielleicht" sein?) Fehler erkennen, an die Sie nicht gedacht haben, geschweige denn damit umgehen .

Außerdem ist ihr Verständnis der funktionalen Anforderungen möglicherweise höher als das der Entwickler - also zwischen dem Hardcore-Low-Level-Wissen des Programmierers, aber nicht so hoch wie das des BA.

James Love
quelle
Aber konnten sie die Entwickler nicht einfach bitten, diesen Testfall zu schreiben?
Jader Dias
1
Aus den oben genannten Gründen würden Entwickler viel mehr über die interne Implementierung wissen und die Software anders angehen als von außen.
James Love
Ich kann nicht sehen, wie sich eine Testfallimplementierung von Person zu Person unterscheiden kann.
Jader Dias
5
@Jader, Sie möchten, dass andere Personen die automatisierten Tests schreiben als der ursprüngliche Code. Andernfalls werden die Tests voreingenommen sein, um mit dem Code zu arbeiten, wie er geschrieben wurde.
Marcie
3
In den letzten Wochen hatte ich einen Entwickler, der mir beim Schreiben von Fixtures für seinen Code half. Er ist ein sehr guter Entwickler, aber er vermisst definitiv einige Nuancen der Berichterstattung für seinen Code, nur weil er nicht regelmäßig über eine gründliche Berichterstattung nachdenkt. Wenn Entwickler beim Testen helfen, lassen Sie ihre Arbeit von einem Tester überprüfen.
Ethel Evans
11

Wenn Sie es automatisieren können, automatisieren Sie es.

Lassen Sie die Tester frei, um die Dinge zu finden, die Sie nicht automatisieren können. Und wenn sie einen neuen Fehler finden, wenn er automatisiert und zu den automatisierten Tests hinzugefügt werden kann, fügen Sie ihn hinzu.

CaffGeek
quelle
Aber warum sollten sie und nicht nur die Entwickler?
Jader Dias
@JaderDias, wie bereits erwähnt, sollten Tester keine vorgefassten Vorurteile über den Code haben, den sie testen
möchten
3

Meiner Meinung nach sind Entwickler und Tester für verschiedene Arten von Tests verantwortlich.

Der Entwickler sollte beim Schreiben der Logik auch Unit- und Integrationstests schreiben. Auf diese Weise kann der Entwickler sicherstellen, dass das, was er bisher geschrieben hat, wie beabsichtigt funktioniert. Darüber hinaus stehen diese Tests dem Entwickler weiterhin zur Verfügung, wenn er zukünftige Änderungen vornimmt. Sobald die Logik abgeschlossen ist, kann der Entwickler sicher sein, dass das Geschriebene funktioniert, wenn er die Spezifikationen versteht und an den Tester weitergegeben werden kann.

Ab diesem Zeitpunkt sollte der Tester dafür verantwortlich sein, systemweite Tests zu schreiben, die sicherstellen, dass die Geschäftslogik wie beabsichtigt funktioniert.

Angesichts der Tatsache, dass Entwickler häufig viel zu sehr mit dem Code verbunden sind, sollten Tester in der Lage sein, die Tests der Entwickler zu bereinigen, aber nicht umgekehrt.

Taylor Price
quelle
Neugierig auf Ihren letzten Satz - Sie glauben nicht, dass Entwickler zu Funktionstests beitragen können? Was ist, wenn die Tester die Teststruktur skizzieren und Testfälle identifizieren und die Entwickler nur bei der Implementierung helfen?
Fräulein Cellanie
1
Ich denke, ich stelle mir Tester vor, die selbst Entwickler sind und ihre eigenen Tests schreiben können. Ihre Aufgabe wäre es, die Anforderungen durchzugehen und mit dem Benutzer zu sprechen, um die Testfälle zu identifizieren und dann die Fälle zu schreiben. Dadurch können die Logikentwickler beim Schreiben der Logik nahe sein. Außerdem bleiben die Tester weit genug davon entfernt, die Logik zu "besitzen", so dass sie versuchen können, sie mit Objektivität und ohne Reue zu brechen.
Taylor Price
2

Nach meiner Erfahrung unterscheidet sich die Art und Weise, wie ein Tester einen Testfall automatisch einrichtet und ausführt, tatsächlich von der Art und Weise, wie ein Entwickler dies tut. Die Tester werden mehr darüber nachdenken, wie sie die meisten Informationen aus dem Testfall herausholen, wie sie Tests schnell ausführen, wie sie die Tests wartbar halten und so weiter. Am wichtigsten ist, dass Tester Nuancen der Testabdeckung sehen, die Entwickler vermissen werden.

Wenn die Ressourcen für die Testentwicklung niedrig sind, können Entwickler helfen - aber ein Tester sollte seine Arbeit sorgfältig überprüfen. Entwickler sollten an Vorrichtungen und Testwerkzeugen arbeiten, bevor sie tatsächliche Testfälle schreiben, und Entwickler sollten niemals Testfälle für ihren eigenen Code schreiben. Wenn Entwickler beim Testen helfen, hat dies Vorteile: Entwickler werden anderen Teilen des Produkts ausgesetzt, und das Testen kann ihnen helfen, bessere Entwickler zu werden. Genau wie die Arbeit eines Junior-Entwicklers niemals ohne eine Codeüberprüfung auskommen würde, sollte die QA-Arbeit eines Entwicklers eine QA-Überprüfung von jemandem mit mehr Erfahrungstests erhalten.

Bearbeitet, um hinzuzufügen: Ich bin ein SDET mit 5 Jahren Erfahrung. Ich arbeite mit großartigen Entwicklern mit jeweils mehr als 10 Jahren Erfahrung zusammen und habe in letzter Zeit mit ihnen zusammengearbeitet, um einen Testengpass zu überwinden.

Ethel Evans
quelle
0

Eine Sache, die ich wirklich gerne sehen würde, sind solide Automatisierungstools für Tester, mit denen sie ihren Fortschritt effektiv über ein Testskript aufzeichnen und dieses Skript in Zukunft automatisch ausführen können. Insbesondere, wenn dadurch auch dasselbe Skript auf verschiedenen Betriebssystemversionen ausgeführt werden kann, ohne dass der Tester alle manuell durchgehen muss.

Leider macht keines der auf dem Markt befindlichen Tools für das Produkt, an dem ich arbeite, die Aufgabe. Es lohnt sich jedoch, dies zu berücksichtigen und zu prüfen, was auf dem Markt verfügbar ist, falls es etwas gibt, das für Ihre Arbeit geeignet ist.

Glenatron
quelle
Visual Studio 2010 (Premium oder Ultimate, kann mich nicht erinnern, welches) verfügt über etwas, das Bildschirmaktionen aufzeichnet, um das Testen der Benutzeroberfläche zu automatisieren. Ich habe eine Demo von Andrew Woodward MVP gesehen, als ich eine Show von UI Testing SharePoint gemacht habe, unglaublich Zeug.
James Love
Record & Play hat zu Recht einen ziemlich schlechten Ruf. Es neigt dazu, ziemlich zerbrechlich und schwer zu pflegen zu sein. Ja, als schnelles und schmutziges "Ich muss dies auf 4 verschiedenen Rechenzentren ausführen, ich möchte es nicht für die zukünftige Verwendung aufbewahren" ist es in Ordnung, aber es ist schrecklich zu warten, weil Sie am Ende jede Menge Wiederholungen haben. Ein kleines Element ändert sich - und plötzlich müssen Sie 100 Tests aktualisieren. Schmerzlich. Es ersetzt auch in keiner Weise den manuellen Test, der tendenziell mit der Annahme entworfen wird, dass ein Mensch all die anderen Dinge bemerkt, die Sie nicht explizit überprüft haben.
Testerab
Was ziemlich süß wäre, wäre etwas, das die Dinge auf eine etwas niedrigere Ebene bringen könnte, als den Zeiger zu bewegen und mit der Maus zu klicken, so dass Sie tatsächlich aufzeichnen, auf welche Schaltfläche geklickt wurde, anstatt wo der Klick erfolgte. Dies würde diese Art des Testens widerstandsfähiger und praktischer machen. Wenn Sie beispielsweise jedes Skript auf neun verschiedenen Windows-Versionen ausführen müssen, ist es ein Albtraum, dies bei allen manuell tun zu müssen.
Glenatron
Mit einigen Tools ist es durchaus möglich, die Schaltfläche anhand der ID und nicht anhand des Standorts zu identifizieren . Solche Aufnahme- und Wiedergabeskripte sind leider immer noch schrecklich zu pflegen - das Problem der Wiederholung wird dadurch nicht gelöst. Ich glaube nicht, dass Sie Ihre Testautomatisierung sorgfältig entwerfen müssen, wenn Sie tatsächlich Skripte behalten oder mehr als ein Dutzend davon erstellen möchten. Haben Sie darüber nachgedacht, etwas Keyword-gesteuertes wie Robot Framework zusammen mit Auto-It zu verwenden?
Testerab
0

Eine wichtige Unterscheidung, die hier wirklich wichtig ist, ist folgende: Prüfen Ihre Tester nur oder testen sie ?

Dieser Blog-Beitrag von Michael Bolton erklärt es besser, aber im Wesentlichen: Wollen sie lediglich das Verhalten bestätigen oder suchen sie nach Problemen mit dem System?

Ich denke, es ist auch nützlich, die Agile Testing Quadrants zu betrachten (Brian Marick hat diese ursprünglich beschrieben, aber ich bin auf sie in Lisa Crispins und Janet Gregorys "Agile Testing" -Buch gestoßen: Auch wenn Sie nicht einer Agile-Entwicklungsmethode folgen, denke ich die Die Unterscheidung zwischen Tests, die das Produkt kritisieren, und Tests, die das Team unterstützen, lohnt sich wirklich, wenn man über Automatisierung nachdenkt und versucht, einen Plan zu entwickeln, wer was und warum tut.

Beispielsweise fungieren von Entwicklern geschriebene Einheitenprüfungen als Änderungsdetektoren, sodass Sie Regressionen frühzeitig erkennen können, wenn sie regelmäßig erneut ausgeführt werden. Dies sind Tests, die das Team unterstützen. Regressionsprüfungen auf Systemebene, die automatisiert sind, damit sie regelmäßig und schnell erneut ausgeführt werden können, unterstützen das Team auch, indem sie Regressionen frühzeitig erkennen und die von Entwicklern durchgeführten Komponententests ergänzen. Dies gibt Ihren Testern Zeit für Tests, die das Produkt kritisieren - beispielsweise explorative Tests. Oder möglicherweise einige der automatisierten Prüfungen anwenden, um das Produkt einem Stresstest zu unterziehen.

Das andere, was ich an der von mir verlinkten Lisa Crispin-Präsentation wirklich mag, ist, dass sie darauf hinweist, dass Automatisierung auch zur Unterstützung manueller Tests verwendet werden kann - Erstellen von Testdaten, Automatisierung, um ein Szenario an den Punkt zu bringen, auf den Sie sich heute konzentrieren möchten Beispiel.

Wenn Sie diese beiden Artikel berücksichtigen, können Sie hoffentlich analysieren, welche Art von Tests Sie durchführen möchten, leichter herausfinden, welche für die Automatisierung geeignet sind, und herausfinden, welche Automatisierungsteile für Tester besser geeignet sind und welche von Entwicklern.

Testerab
quelle