Testautomatisierung. Ja oder Nein?

Die Übersetzung des Artikels wurde im Vorfeld des Starts des Kurses "Python QA Engineer" vorbereitet .










Bevor Sie fragen: "Was muss automatisiert werden?", Müssen Sie die folgende Frage beantworten: "Ist es rational, etwas im aktuellen Projekt zu automatisieren?" Wenn die Antwort Ja lautet (was bedeutet, dass Sie über alle erforderlichen Ressourcen verfügen, um die Automatisierung sicherzustellen, z. B. qualifizierte QS-Spezialisten, genügend Zeit, Geld usw.), müssen Sie einen Plan erstellen, der auf den Anforderungen des getesteten Objekts basiert, für das es entwickelt wird automatisierte Tests. Wenn Sie ein solches Dokument erstellen, sollten Sie genau wissen, was Sie genau automatisieren möchten, wie und welche Automatisierungstools Sie auswählen müssen. Jetzt werden wir nicht näher darauf eingehen, wie diese oder jene Funktion genau getestet werden soll, da wir daran interessiert sind, wo unserer Meinung nach die Automatisierung implementiert werden sollte.



Natürlich ist die folgende Liste bei weitem nicht vollständig, und eine detaillierte Liste von Tests zur Überprüfung jeder Funktion scheint ein sinnloses Unterfangen zu sein. Unsere Aufgabe ist es, diejenigen Teile im Projekt auszuwählen, die zunächst automatisiert werden müssen:



  1. Häufig verwendete Funktionen, bei denen das Fehlerrisiko hoch ist. Durch das automatisierte Testen der wichtigsten Funktionspunkte wird die Zeit zum Auffinden von Fehlern verkürzt, und dementsprechend wird auch die Zeit zum Entfernen dieser Fehler verkürzt.
  2. Typische, häufig durchgeführte Datenverarbeitungsvorgänge. Zum Beispiel Formulare, in denen die Anzahl der auszufüllenden Felder groß genug ist. Ziel ist es, die Eingabe von Daten in das gewünschte Feld zu automatisieren und zu überprüfen, ob die Aufgabe nach Erhalt des Ergebnisses korrekt abgeschlossen wurde.
  3. Validierungsnachrichten. Es ist erforderlich, das Senden falscher Daten an die entsprechenden Felder zu automatisieren und die Richtigkeit der Datenüberprüfung und der Fehlermeldungen zu testen.
  4. Umfassende Prüfung des Verhaltens des gesamten Systems als integraler Gegenstand (End-to-End-Prüfung).
  5. Datenvalidierung, die präzise mathematische Berechnungen erfordert (Buchhaltungs- oder Analysesoftware).
  6. Überprüfen der Richtigkeit der angezeigten Suchergebnisse als Antwort auf eine Datenabfrage (Überprüfen der Richtigkeit der Datensuche).
  7. Validierung des Datenabrufs.


Was nicht automatisieren?



Welche Arten von Tests sollte ich nicht in automatisierte Tests einbeziehen? Lassen Sie uns die Situationen auflisten, in denen Testfälle nicht automatisiert werden müssen:



  1. Usability-Tests, die manuelle Eingriffe erfordern, um nach Fehlern oder Abweichungen vom erwarteten Verhalten zu suchen;
  2. Testfälle, die die Installation umfassen oder keine erneute Ausführung der Funktion erfordern (zur Automatisierung sind jedoch Tests erforderlich, die eine Dateneingabe implizieren).
  3. Vermeiden Sie die Automatisierung von Tests, die zu unvorhersehbaren Ergebnissen führen können (z. B. neue Funktionen, temporäre Tests, Ablaufprüfungen).
  4. UX-Tests, bei denen das Verhalten von Objekten auf Bildschirmen unterschiedlicher Größe überprüft wird.


Um die Effizienz automatisierter Tests zu verbessern, sollten Testfälle besonders berücksichtigt werden. Es ist notwendig, diejenigen hervorzuheben, die sich auf das Testen der folgenden Aspekte konzentrieren:



  1. Erstellen / Lesen / Aktualisieren / Löschen von Operationen (CRUD-Operationen). Das einfachste Beispiel ist die Benutzeroberfläche. Benutzerdaten eingeben, anzeigen und bearbeiten, Informationen löschen.
  2. Standardszenarien für die Verwendung der Anwendung. Ein Beispiel ist die Arbeit mit einem E-Mail-Client: Autorisierung, Anzeigen von Briefen, Navigieren durch empfangene Briefe, Erstellen neuer Briefe und Senden, Abmelden. Diese End-to-End-Sequenz testet die gesamte Bandbreite an Aktionen und Manipulationen. Der Vorteil solcher Szenarien besteht darin, dass das System am Ende des Tests in seinen ursprünglichen Zustand zurückkehrt (gut oder nahe daran), was bedeutet, dass die Auswirkungen auf die Ergebnisse anderer Tests verringert werden.
  3. Andere Fälle, in denen manuelle Tests aus irgendeinem Grund nicht geeignet sind. Überprüfen Sie beispielsweise die Struktur der vom System erstellten Dateien.


Durch die Automatisierung solcher Funktionen können Sie den größten Nutzen daraus ziehen!







Weiterlesen:






All Articles