Tutorial zum Automatisierungstest: Erste Schritte

Inhaltsverzeichnis

Was sind Automatisierungstests?

Wie der Name schon sagt. automatisierungstests nehmen Softwaretestaktivitäten auf und führen sie über ein Automatisierungstoolset oder -framework aus. In einfachen Worten handelt es sich um eine Art Test, bei dem ein Tool eine Reihe von Aufgaben in einem definierten Muster automatisch ausführt.

Es entlastet manuelle Tester und ermöglicht es ihnen, sich auf höherwertige Aufgaben zu konzentrieren – explorative Tests, Überprüfung der Testergebnisse usw. Im Wesentlichen übernimmt und implementiert eine Maschine alltägliche, sich wiederholende, zeitaufwändige Aufgaben wie Regressionstests. Automatisierungstests sind unerlässlich, um eine größere Testabdeckung innerhalb kürzerer Zeiträume sowie eine höhere Genauigkeit der Ergebnisse zu erreichen.

Warum sind Automatisierungstests in einem Software-Lebenszyklus von entscheidender Bedeutung?

Stellen Sie sich das vor.

An Ihrem ersten Tag als QA müssen Sie eine Anwendung testen, die etwa 100 Felder enthält, für die Eingaben erforderlich sind. Wenn Sie explorative Tests durchführen, müssen Sie die Eingabe manuell in jedes Feld einfügen. Dies dauert ungefähr 10 Minuten, wenn Sie wirklich schnell sind.

Sie drücken Senden. Es erscheint eine Fehlermeldung. Es sieht aus wie eine unbehandelte Ausnahme. Sie melden den Fehler und fühlen sich wirklich gut über einen gut gemachten Job. Sie wiederholen den Vorgang, finden ein paar weitere Fehler und haben einen allgemein produktiven ersten Tag.

Am nächsten Tag behebt der Entwickler die Probleme und Sie müssen die neue Version der Software testen und die gleichen Schritte wie am Vortag wiederholen. Fehler behoben. Job gut gemacht. Eine gute Benutzererfahrung gewährleistet, dank Ihrer Bemühungen.

Am dritten Tag haben die Entwickler eine neuere Version mit neueren Funktionen veröffentlicht. Um jedoch sicherzustellen, dass die neuen Funktionen die älteren Arbeitsfunktionen nicht beeinträchtigt haben, müssen Sie den Vorgang erneut wiederholen. Keine Probleme gefunden.

Ab einem Monat veröffentlichen Entwickler kontinuierlich neuere Versionen, was bedeutet, dass Sie die Software weiter testen und den gleichen Vorgang (Einfügen von Feldeingaben) jedes Mal wiederholen müssen. Sie sind gelangweilt und müde. Ihre Genauigkeit beginnt zu schwanken, wodurch Sie schließlich einen Fehler verpassen – möglicherweise einen ziemlich offensichtlichen.

Ob Sie es glauben oder nicht, dies ist ein ziemlich häufiges Szenario für die meisten QAs. Es ist nicht möglich, immer wieder dasselbe zu tun und jedes Mal perfekt darin zu sein. An dieser Stelle kommt der Automatisierungstest ins Spiel.

Kann eine Software eine andere Software testen?

Ja. Das ist der springende Punkt des Automatisierungstests. Wenn es um Regressionstests geht, ist es sinnlos und verschwenderisch, manuellen Aufwand zu investieren. Anstatt zu erwarten, dass Menschen dieselben Schritte mit derselben Geschwindigkeit, Genauigkeit und Energie wiederholen, ist es weitaus logischer, eine Maschine so zu programmieren, dass sie dasselbe tut.

Welche Tests sollten automatisiert werden?

Bevor Sie eine Testautomatisierungsstrategie erstellen, werfen wir einen Blick darauf, welche Tests für die Automatisierung am besten geeignet sind:

  • Regressionstests: Regressionssuiten nehmen ständig zu und erfordern, dass dieselben Variablen mehrmals gefüllt werden, um sicherzustellen, dass neue Funktionen ältere Funktionen nicht manipulieren. Dies kann leicht automatisiert werden.
  • Testen komplexer Funktionalitäten: Automatisieren Sie alle Tests, die komplexe Berechnungen erfordern, die anfällig für menschliche Fehler sind.
  • Rauchprüfung: Führen Sie automatisierte Suiten aus, um die Qualität der wichtigsten Funktionen zu überprüfen. Dies spart Zeit, da schnell analysiert werden kann, ob ein Build eingehendere Tests erfordert.
  • Datengetriebenes Testen: Automatisieren Sie Tests zur Validierung von Funktionalitäten, die wiederholt mit zahlreichen Datensätzen getestet werden müssen.
  • Leistungstests: Automatisieren Sie Tests, die die Softwareleistung unter verschiedenen Umständen überwachen. Dies manuell zu tun, wäre äußerst mühsam und zeitaufwändig.
  • Funktionsprüfung: Jedes Mal, wenn ein Entwickler eine PR einreicht, müssen Funktionstests schnell durchgeführt werden und sofortiges Feedback geben. Dies ist ohne Automatisierung nicht möglich, insbesondere wenn Organisationen skalieren.

Erste Schritte mit Automatisierungstests

Beachten Sie beim Übergang von manuellen zu Automatisierungstests die folgenden Punkte:

  • Streben Sie keine 100% ige Testautomatisierung an. Nicht alle Tests können automatisiert werden. Legen Sie selbst bei Tests, die automatisiert werden können, kein anfängliches Ziel einer vollständigen Automatisierung fest.
  • Setzen Sie sich ein realistisches Ziel. Beginnen Sie beispielsweise damit, einige Tests in die Automatisierung zu verschieben. Schreiben Sie kleinere Testfälle, die in zukünftigen Tests derselben Software problemlos wiederverwendet werden können. Ordnen Sie Testfälle entsprechenden Funktionen zu, um eine bessere Testabdeckung zu erzielen. Kennzeichnen Sie Testfälle, damit Teams Klarheit darüber haben, was zu automatisieren und effektiver zu berichten ist.
  • Entdecken Sie mit Automation neue Anwendungsbereiche. Stellen Sie bei der Ausarbeitung von Automatisierungsstrategien sicher, dass geschäftliche Anforderungen genauso ernst genommen werden wie technische Überlegungen.
  • Wissen, was nicht zu automatisieren. Dies hilft, den Umfang der Automatisierung frühzeitig im Ideenfindungsprozess zu bestimmen. Die folgenden Tests werden am besten manuell durchgeführt.:

  1. User Experience Testing: Tools können keine User Journey in ihrer Gesamtheit replizieren. Ein Algorithmus kann nicht vorhersagen, wie einzelne Benutzer mit einer Anwendung interagieren. Um die Qualität der Benutzererfahrung tatsächlich zu beurteilen, halten Sie sich an menschliche Tester. Verwenden Sie manuelle interaktive Testtools wie BrowserStack Live.
  2. Prüfung der Barrierefreiheit: Beim Testen, wie zugänglich eine Anwendung ist, gibt es keinen Ersatz für die menschliche Nutzung. Ein Tool kann die Zugänglichkeit nicht messen, da die Menschen oft unterschiedliche Meinungen darüber haben, was als zugänglich gilt. Es ist einem Tool nicht möglich zu erkennen, ob der Software-Workflow einen einfachen Zugriff für tatsächliche Menschen bietet.
  • Wählen Sie die richtigen Toolsautomationsprüfung ist völlig abhängig von Werkzeugen. Folgendes ist bei der Auswahl des richtigen Tools zu beachten:
  1. Die Art der Software: Wird die Anwendung webbasiert oder mobil getestet?
    Um ersteres zu testen, verwenden Sie ein Tool wie Selenium, um Ihre Tests zu automatisieren. Für letztere ist Appium eines der bestmöglichen Tools zur Automatisierung.
  2. Programmiererfahrung: Wählen Sie Frameworks, Sprachen und Tools, die dem Komfort und der Erfahrung der Tester entsprechen. Einige der beliebtesten Sprachen für Automatisierungstests sind Java, JavaScript, Ruby, C # usw.
  3. Open Source oder nicht: Je nach Budgetbeschränkungen kann man Open-Source-Tools wie Selenium oder Appium für Automatisierungszwecke verwenden. Es ist jedoch wichtig zu bedenken, dass alle Open-Source-Tools ihren kommerziell verfügbaren Gegenstücken nicht unterlegen sind. Zum Beispiel ist Selenium Webdriver ein Open-Source-Tool, das von automatisierten Testern auf der ganzen Welt am meisten bevorzugt wird.
  • Wählen Sie das richtige Testraster aus

Das Testraster bezieht sich auf die Infrastruktur, auf der alle automatisierten Tests ausgeführt werden. Es umfasst eine Reihe von Geräten, Browsern und Betriebssystemen (mehrere Versionen), auf denen Software getestet werden soll. Es ist immer am besten, Tests auf realen Geräten und Browsern zu automatisieren. Dadurch wird sichergestellt, dass die Software unter realen Benutzerbedingungen getestet wird.

Zusätzlich sollte das ideale Testraster paralleles Testen ermöglichen. Dies bedeutet, dass Tester in der Lage sein sollten, mehrere Tests auf mehreren Geräten gleichzeitig auszuführen. Dies verkürzt die Testzeit, beschleunigt die Ergebnisse und bietet Ergebnisse innerhalb kürzerer Fristen.

Etwas anderes zu entscheiden ist, ob das Testraster vor Ort oder in der Cloud gehostet werden soll. Beachten Sie, dass die Einrichtung und Wartung einer lokalen Infrastruktur fast immer teuer ist. Es erfordert, den Überblick über neue Geräte, Browser und Betriebssysteme zu behalten, sie entsprechend zu aktualisieren und zu pflegen. Dies ist eine Herausforderung, da jeden Monat mehrere Versionen veröffentlicht werden.

Umgekehrt ist das Testen auf einem Cloud-basierten Grid einfacher, da die Aktualisierung und Wartung von der Organisation übernommen wird, die das Grid anbietet. BrowserStack bietet beispielsweise ein Cloud-Selenium-Grid an, das zum Testen mit über 2000 realen Geräten und Browsern verbunden ist. Benutzer müssen sich lediglich anmelden und mit dem Testen eines robusten Selenium-Gitters beginnen, das ständig aktualisiert wird, um die bestmöglichen Ergebnisse zu erzielen.

Die Real Device Cloud von BrowserStack bietet mehr als 2000 echte Browser und Geräte für sofortige On-Demand-Tests. Die Cloud bietet auch Integrationen mit gängigen CI / CD-Tools wie Jira, Jenkins, TeamCity, Travis CI und vielem mehr. Darüber hinaus gibt es integrierte Debugging-Tools, mit denen Tester Fehler sofort identifizieren und beheben können. BrowserStack erleichtert auch das Testen von Cypress auf über 30 Browserversionen mit sofortiger, problemloser Parallelisierung.

Testen Sie Automatisierungstests kostenlos

Beispiel für Testautomatisierung

Beim manuellen Testen von Software verwendet der Tester eine Halterung und eine Tastatur, um damit zu interagieren. Automatisierungsskripte und -tools replizieren diese Interaktion Schritt für Schritt.

In diesem Beispiel wird ein Taschenrechner getestet, um festzustellen, ob er zwei Zahlen addieren und das Ergebnis anzeigen kann. Manuell wären die Schritte dazu die folgenden:

Schritt 1: Rechner starten
Schritt 2: Drücken Sie 2
Schritt 3: Drücken Sie +
Schritt 4: Drücken Sie 3
Schritt 5: Drücken Sie =
Schritt 6: Der Bildschirm zeigt 5
Schritt 7: Close Calculator

Ein Automatisierungstool kann dieselben Schritte mit dem folgenden Skript ausführen:

//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}

Wenn Sie das obige Skript ausführen, wird genau das gleiche Ergebnis (5) angezeigt. Anstatt die manuellen Schritte durchlaufen zu müssen, schreiben Sie einfach das Skript und lassen Sie das Tool den Rest erledigen.

So wechseln Sie vom manuellen zum automatisierten Testen

Stellen Sie zunächst zwei Fragen.

  1. Was ist zu automatisieren?
  2. Wie automatisieren?

Was ist zu automatisieren?

  • Automatisieren Sie Tests, die für einen häufigen Release-Zyklus erforderlich sind. Dies kann Rauchtests, Regressionstests und dergleichen umfassen. Grundsätzlich automatisieren Sie Tests, die den gesamten Testzyklus beschleunigen. Denken Sie daran, dass weniger manuelle Eingriffe zu schnelleren Ergebnissen führen.
  • Automatisieren Sie Tests basierend auf technischen und geschäftlichen Prioritäten. Denken Sie so: Würde die Automatisierung dieses Tests dem Unternehmen helfen? Würde die Automatisierung dieses Tests dazu beitragen, die technische Komplexität zu vereinfachen? Wenn die Antwort auf eine der beiden Fragen Ja lautet, automatisieren Sie.
  • Automatisieren Sie basierend auf der Benutzerfreundlichkeit. Einige Tests, wie Cross-Browser-Kompatibilitätstests, funktionieren einfach besser, wenn sie manuell durchgeführt werden. Die Abhängigkeit von Tools kann auch das Automatisierungspotenzial für ein bestimmtes Testteam oder eine bestimmte Organisation einschränken.

Lesen Sie mehr: 10 Best Practices für die Testautomatisierung

Wie automatisiere ich?

Beachten Sie zunächst, dass nicht alle Tests automatisiert werden können. Durch die Einhaltung der drei Strategien im vorherigen Abschnitt wird es einfacher, automatisierte Tests auf praktische Weise zu initiieren.

  • Fangen Sie klein an. 100% Automatisierung ist nicht das Ziel und auch nicht möglich. Schreiben Sie kleinere Testfälle, weil sie einfacher zu warten und wiederzuverwenden sind. Verschieben Sie eine kleine Anzahl von Tests auf eine Automatisierungsplattform, führen Sie die Tests aus, analysieren Sie die Ergebnisse und entscheiden Sie, ob sich der Prozess als vorteilhaft für den Softwareentwicklungsprozess erwiesen hat.
  • Wenn der Betrieb erhebliche Vorteile bringt, verschieben Sie weitere Tests in die Automatisierung. Beginnen Sie, Tests nicht nur volumenmäßig zu verschieben, sondern erhöhen Sie auch die Art der zu automatisierenden Tests. Denken Sie daran, dass dies noch ein experimentelles Stadium ist. Es ist möglich, dass sich bestimmte Tests in der Automatisierung als ineffizient erweisen und wieder auf manuelle Tests umgestellt werden müssen.
  • Ordnen Sie Testfälle jeder Methode oder Funktion zu, um eine bessere Testabdeckung zu erhalten. Kennzeichnen Sie Ihre Testfälle zur einfacheren Identifizierung, damit das Team schnell weiß, welche Tests automatisiert werden müssen. Dies hilft auch, eine bessere Berichterstattung zu implementieren.
  • Beginnen Sie beim Starten von Automatisierungstests, indem Sie neue Bereiche der Anwendung manuell erkunden. Erstellen Sie dann einen Risikoplan, der detailliert beschreibt, was automatisiert werden muss, basierend auf geschäftlichen und technischen Prioritäten.
  • Verwenden Sie Analytics, um die Präferenzen der Endbenutzer zu ermitteln. Erstellen Sie eine Liste der Browser und Geräte, mit denen Benutzer am wahrscheinlichsten auf die Software zugreifen. Dies hilft Automatisierungstests, die richtigen Schnittstellen abzudecken und die Softwareleistung auf den richtigen Benutzerwegen zu optimieren.

Testen Sie automatisierte Tests in der Real Device Cloud

Wartung der Testautomatisierung

Nach der Erstellung müssen Automatisierungstestsuiten gewartet werden. Wenn sich die Software weiterentwickelt und die Codebasis erweitert wird, müssen Automatisierungsskripte geändert und aktualisiert werden, um neue Funktionen und Funktionen zu integrieren. Selbst winzige Änderungen in der Benutzeroberfläche können Tests stören und zum Scheitern führen. Bei der Gestaltung von Testfällen müssen Automatisierungstester den Wartungsaufwand und die Kosten berücksichtigen.

Der Testautomatisierungswartungsansatz funktioniert aus zwei Hauptperspektiven:

  • Testfehler: Sucht beim Debuggen fehlgeschlagener Tests nach möglichen Wartungsproblemen. Wurde das Testskript nicht ausreichend aktualisiert? Hat eine Änderung des Softwarecodes das Testskript beeinträchtigt? Auf diese Weise können Sie auf einfache Weise feststellen, welche Bereiche Wartungsaufwand erfordern.
  • Änderung von Abhängigkeiten oder Tools: Hat das Team oder die Organisation APIs, Berichtstools, Datenbanken usw. geändert.? In diesem Fall müssen Tests möglicherweise geändert oder aktualisiert werden, um sie an neue Toolsets anzupassen. Um dies zu erreichen, müssen Entwickler und Tester natürlich in der neuen Infrastruktur geschult werden, damit sie in Zukunft mit dem Wartungsaufwand Schritt halten können.

Was sind die Schlüsselelemente einer effektiven Testautomatisierungsstrategie?

Automatisierungstests sind ein integraler Bestandteil jedes Testökosystems. Ohne den Wechsel zu einem Automatisierungs-Setup werden umfassende Tests schwierig, ebenso wie die Einhaltung immer kürzerer Fristen. Daher ist es wichtig, Automatisierungstestprotokolle so früh wie möglich zu initiieren, um manuelle Tests auszugleichen und zu ergänzen.

Probieren Sie die oben beschriebenen Schritte aus und experimentieren Sie genug, um herauszufinden, welche Ansätze optimale Ergebnisse liefern. Machen Sie sich keine Sorgen, ein paar Mal zu scheitern, bevor Sie den Sweet Spot finden, der eine effektive Automatisierung ermöglicht, ohne die menschliche Validierung zu beeinträchtigen.

Write a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht.