types automation testing
Lernen Sie die verschiedenen Arten von Automatisierungstests mit einigen Missverständnissen über Testautomatisierung kennen:
In diesem zweiten Teil von Testautomatisierungs-Tutorials Ich werde kurz die Arten von automatisierten Tests beschreiben und vor allem einige Missverständnisse über die Testautomatisierung beseitigen.
Was ist Automatisierungstest?
Automatisierungstests können als eine Möglichkeit definiert werden, eine Reihe von Tests immer wieder auszuführen, ohne sie manuell ausführen zu müssen. Durch die Einführung von Automatisierungstests in Ihre Teststrategie können Sie Geld und Zeit sparen.
Was du lernen wirst:
Arten von Automatisierungstests
Arten von Automatisierungstests definieren, welche Art von Testsuiten automatisiert werden können. Viele Tester verwechseln dieses Thema mit den Arten von Automatisierungsframeworks, die definieren, wie Sie Ihre Testsuite in ein Automatisierungspaket umwandeln, das bequem ausgeführt werden kann.
In diesem Artikel werden wir uns die Automatisierungstesttypen genauer ansehen und am Ende einen kurzen Blick auf die Automatisierungsframeworks werfen.
Lassen Sie uns die obigen Klassifikationen im Detail verstehen:
Automatisierung basierend auf der Art des Tests
Automatisierung von Funktionstests:
Funktionstests werden geschrieben, um die Geschäftslogik hinter einer Anwendung zu testen. Wenn Sie diese automatisieren, müssen Sie Skripte schreiben, um die Geschäftslogik und die von der Anwendung erwarteten Funktionen zu überprüfen.
Automatisierung nicht funktionierender Tests:
Nichtfunktionale Tests definieren die nicht geschäftlichen Anforderungen der Anwendung. Dies sind die Anforderungen in Bezug auf Leistung, Sicherheit, Datenbanken usw. Diese Anforderungen können konstant bleiben oder entsprechend der Größe der Software skaliert werden.
Automatisierung basierend auf der Testphase
Automatisierung von Unit-Tests:
Diese Tests werden während der Entwicklungsphase selbst ausgeführt, idealerweise vom Entwickler nach Abschluss der Entwicklung und vor der Übergabe des Systems an die Tester zum Testen.
Automatisierung von API-Tests:
API-Tests werden während der Integrationsphase ausgeführt. Diese können vom Entwicklungs- oder Testteam ausgeführt werden und können vor oder nach dem Erstellen der UI-Schicht für die Anwendung ausgeführt werden. Diese Tests zielen auf die Tests ab, die auf der Anforderung und Antwort basieren, auf der die Anwendung basiert.
Automatisierung von UI-basierten Tests:
UI-basierte Tests werden während der Testausführungsphase ausgeführt. Diese werden speziell von den Testern ausgeführt und nur einmal ausgeführt, bevor die Benutzeroberfläche der Anwendung an sie übergeben wird. Diese testen die Funktionalität und Geschäftslogik der Anwendung vom Frontend der Anwendung aus.
Automatisierung basierend auf der Art der Tests
Unit Tests:
Unit-Tests sind Tests, die zum Testen des Codes einer Anwendung erstellt werden und normalerweise in den Code selbst integriert sind. Sie zielen auf die Codierungsstandards ab, wie die Methoden und Funktionen geschrieben sind.
Diese Tests werden häufiger von den Entwicklern selbst geschrieben. In der heutigen Welt können Automatisierungstester jedoch auch aufgefordert werden, sie zu schreiben.
Wenn Sie diese Tests ausführen und keine Fehler von ihnen erhalten, wird Ihr Code ohne Codeprobleme kompiliert und ausgeführt. Diese Tests zielen normalerweise nicht auf die funktionalen Aspekte der Anwendung ab. Da sie auf Code abzielen, ist es besser, sie zu automatisieren, damit sie nach Bedarf des Entwicklers ausgeführt werden können.
Rauchtests:
Der Rauchtest ist ein berühmter Test, der im Testlebenszyklus durchgeführt wird. Hierbei handelt es sich um Tests nach dem Build. Sie werden sofort ausgeführt, nachdem ein Build aus der Anwendung ausgegeben wurde, um sicherzustellen, dass die Anwendung nach Abschluss des Builds noch funktioniert.
Dies ist eine kleine Testsuite, die mehrmals ausgeführt wird. Daher ist es sinnvoll, sie zu automatisieren. Diese Tests sind in der Regel funktionaler Natur und können je nach Art der Anwendung ein Werkzeug für sie auswählen.
API-Tests:
API-Tests sind in den letzten Jahren sehr bekannt geworden. Anwendungen, die auf der API-Architektur basieren, können diese Tests durchführen.
Beim API-Testen validieren die Tester die Geschäftsschicht der Anwendung, indem sie die Anforderungs-Antwort-Kombinationen für die verschiedenen APIs überprüfen, auf denen die Anwendung basiert. API-Tests können auch als Teil der folgenden Integrationstests durchgeführt werden.
Integrationstests:
Integrationstest bedeutet, wie der Name schon sagt, das Testen der Anwendung durch Integrieren aller Module und Überprüfen der Funktionalität der Anwendung.
Integrationstests können durch API-Tests oder über die UI-Schicht der Anwendung durchgeführt werden.
UI-Tests:
UI-Tests werden über die UI-Ebene oder das Frontend der Anwendung durchgeführt. Diese können darauf abzielen, die Funktionalität zu testen oder einfach die UI-Elemente einer Anwendung zu testen.
Die Automatisierung der Benutzeroberfläche zum Testen der Funktionalität ist eine gängige Praxis. Die Automatisierung der GUI-Funktionen ist jedoch eine der komplizierteren Automatisierungen.
Regressionstests:
Eine der am häufigsten automatisierten Testsuiten ist die Regressionstestsuite. Regression ist, wie Sie vielleicht bereits wissen, der Test, der am Ende des Testens eines neuen Moduls durchgeführt wird, um sicherzustellen, dass keines der vorhandenen Module davon betroffen ist.
Es wird nach jeder neuen Testiteration wiederholt und die Haupttestfälle bleiben nach einer neuen Iteration mit normalerweise einigen neuen Ergänzungen fixiert. Da es häufig ausgeführt wird, versuchen fast alle Testteams, dieses Paket zu automatisieren.
Automatisierung als kontinuierliche Integration:
Die kontinuierliche Integration wird möglicherweise wieder für die automatisierten Regressionstests selbst ausgeführt. Um jedoch CI zu erreichen, können wir die Regression oder die identifizierte Testsuite jedes Mal ausführen, wenn eine neue Bereitstellung durchgeführt wird.
Sicherheitstests:
Sicherheitstests können sowohl funktionale als auch nicht funktionale Tests sein, bei denen die Anwendung auf Schwachstellen getestet wird. Funktionstests bestehen aus Tests im Zusammenhang mit Autorisierung usw., während nichtfunktionale Anforderungen möglicherweise auf SQL-Injection, Cross-Site-Scripting usw. testen.
Leistungstests und Qualitätskontrolle:
Leistungstests sind nicht funktionale Tests, die auf Anforderungen wie Last-, Belastungs- und Skalierbarkeitstests der Anwendung abzielen.
ai software für pc kostenloser download
Akzeptanztests:
Abnahmetests fallen wiederum unter Funktionstests, die normalerweise durchgeführt werden, um sicherzustellen, dass die vom Kunden angegebenen Abnahmekriterien erfüllt wurden.
Bisher haben wir die Art der Tests beschrieben, die automatisiert werden können, und verschiedene Klassifizierungen derselben. Alle Klassifizierungen führen schließlich zu denselben Endergebnissen einer automatisierten Testsuite. Wie bereits erwähnt, ist ein wenig Verständnis dafür erforderlich, wie sich diese von Frameworks unterscheiden.
Sobald Sie die Tests identifiziert haben, die Sie anhand der obigen Klassifizierung automatisieren möchten, müssen Sie Ihre Logik so gestalten, dass diese Tests ohne großen manuellen Eingriff reibungslos ausgeführt werden können. Bei diesem Entwurf einer manuellen Testsuite in eine automatisierte Testsuite kommen die Frameworks ins Spiel.
Jetzt werden wir die Top 3 Testautomatisierungstypen untersuchen
- Unit Testing
- API-Tests
- GUI-Tests
# 1) Automatisierte Unit-Tests
Automatisierte Unit-Tests werden geschrieben, um die Codeebene zu testen. Fehler werden in den von den Entwicklern geschriebenen Funktionen, Methoden und Routinen identifiziert.
Einige Unternehmen fordern die Entwickler auf, die Unit-Tests selbst durchzuführen, andere stellen spezielle Ressourcen für die Testautomatisierung ein. Diese Ressourcen haben Zugriff auf den Quellcode und schreiben Komponententests, um den Produktionscode zu beschädigen.
Aufgrund des Vorhandenseins von Komponententests werden bei jeder Kompilierung des Codes alle Komponententests ausgeführt und teilen uns das Ergebnis mit, dass alle Funktionen funktionieren. Wenn ein Komponententest fehlschlägt, bedeutet dies, dass jetzt ein Fehler im Produktionscode vorhanden ist.
Einige der beliebtesten Werkzeuge auf dem Markt sind NUnit und JUnit . Microsoft bietet auch ein eigenes Framework für Unit-Tests an MSTest . Besuchen Sie die Websites dieser Tools und finden Sie weitere Beispiele und Tutorials zum Schreiben von Komponententests.
#zwei) Automatisierte Webdienst- / API-Tests
Eine Anwendungsprogrammierschnittstelle (API) ermöglicht es der Software, mit anderen Softwareanwendungen zu kommunizieren. Wie bei jeder anderen Software müssen APIs getestet werden. Bei dieser Art von Tests ist die grafische Benutzeroberfläche normalerweise nicht beteiligt.
Was wir hier testen, sind normalerweise die Funktions-, Compliance- und Sicherheitsprobleme. In Webanwendungen können wir die Anforderung und Antwort unserer Anwendung testen, ob sie sicher und verschlüsselt sind oder nicht.
Dies ist eines der Beispiele, in denen wir API-Tests verwenden können. Das beliebteste Tool für API-Tests ist SEIFE Das hat sowohl kostenlose als auch kostenpflichtige Versionen. Es gibt auch andere Tools, die Sie je nach Bedarf verwenden können.
#3) Automatisierte GUI-Tests.
Diese Art des automatisierten Testens ist die härteste Form der Automatisierung, da eine Benutzeroberfläche der Anwendung getestet wird.
Es ist schwierig, da sich die Benutzeroberflächen stark ändern können. Diese Art des Testens kommt jedoch auch dem am nächsten, was die Benutzer mit unserer Anwendung tun werden. Da der Benutzer Maus und Tastatur verwendet, ahmen automatisierte GUI-Tests dasselbe Verhalten nach, indem sie Maus und Tastatur zum Klicken oder Schreiben auf Objekte verwenden, die auf der Benutzeroberfläche vorhanden sind.
Aus diesem Grund können wir Fehler frühzeitig finden und sie können in vielen Szenarien verwendet werden, z. B. beim Regressionstest oder beim Ausfüllen von Formularen, was zu lange dauert.
Zu den beliebtesten GUI-Testtools gehören: Micro Focus Unified Functional Testing (UFT) , Selen , Test abgeschlossen und Microsoft Coded UI (Dies ist Teil der Ultimate- und Premium-Editionen von Visual Studio).
Genau wie bei den Arten von Automatisierungstests gibt es auch hier mehrere Arten von Frameworks.
Automatisierungs-Frameworks
Einige häufig verwendete Automatisierungsframeworks umfassen:
- Linear (Aufnahme und Wiedergabe)
- Schlüsselwortgesteuert
- Datengesteuert
- Seitenobjektmodell
- Modular
Weiterführende Literatur => Automatisierungs-Frameworks
Wie Sie sehen können, besteht der erste Schritt im Automatisierungsprozess darin, die Art der Automatisierung zu identifizieren. Anschließend können Sie das zu entwerfende Framework identifizieren und unter Berücksichtigung dieser die Tools auswählen, die Ihren Anforderungen entsprechen.
Automatisierungstools
Basierend auf der Art der Tests, auf die Sie abzielen, und der Art des Frameworks, das Sie möglicherweise darauf aufbauen möchten, stehen die folgenden Tools zur Verfügung:
- Selen :: Sehr leistungsfähiges Tool zum Testen von Webanwendungen. Bietet Unterstützung für mehrere Browser.
- Junit und Nunit: Von den Entwicklern hauptsächlich für Unit-Tests verwendete Tools.
- QTP :: Tolles Tool für Nicht-Webanwendungen und verfügt über ein integriertes Objekt-Repository.
- Sikuli: Open Source Tool für GUI-Tests.
- Soap UI: Tool zum API-Testen.
- Seien Sie versichert: Bibliothek zum Erstellen eines API-Testframeworks.
- Appium :: Tool, das mobile Tests, native App-Tests, Hybrid- und mobile Webanwendungstests unterstützt.
- Jmeter :: Ein Tool, das für Leistungstests verwendet wird.
- TestNG: TestNG ist an sich kein Automatisierungstool, bietet jedoch eine hervorragende Unterstützung für Automatisierungs-Frameworks, die mit Selen, Appium, Sicherheit usw. erstellt wurden.
Weiterführende Literatur => Testen Sie die Automatisierungstools
Missverständnisse über Automatisierungstests
Im Laufe der Jahre habe ich einige Missverständnisse über Testautomatisierung gehört. Ich denke, ich sollte sie auch in diesem Artikel löschen.
Missverständnis # 1. Die Automatisierung ersetzt manuelle Tester.
Die Testautomatisierung soll den Testern helfen, das Testen schneller und zuverlässiger zu gestalten. Es kann niemals Menschen ersetzen.
Stellen Sie sich Testautomatisierung als Auto vor. Wenn Sie zu Fuß gehen, benötigen Sie ungefähr 20 Minuten, um Ihr Zuhause zu erreichen. Wenn Sie jedoch ein Auto benutzen, erreichen Sie in zwei Minuten. Der Fahrer des Autos ist immer noch Sie, ein Mensch, aber ... das Auto hilft dem Menschen, sein Ziel schneller zu erreichen. Außerdem wird der größte Teil Ihrer Energie gespart, da Sie nicht gelaufen sind. So können Sie diese Energie nutzen, um wichtigere Dinge auszuführen.
Gleiches gilt für Automatisierungstests. Sie verwenden es, um die meisten Ihrer wiederholten, langen und langweiligen Tests schnell zu testen und Zeit und Energie zu sparen, um neue und wichtige Funktionen zu fokussieren und zu testen.
Wie James Bach sagte ein wunderbares Zitat:
'Tools werden nicht getestet. Nur Leute testen. Tools führen nur Aktionen aus, die beim Testen helfen. „
Werkzeuge können auf Objekte klicken. Wohin zu klicken ist, wird immer von einem manuellen Tester mitgeteilt. Ich denke, Sie verstehen jetzt meinen Standpunkt.
Missverständnis # 2 . Alles unter der Sonne kann automatisiert werden
Wenn Sie versuchen, 100% Ihrer Testfälle zu automatisieren, können Sie dies möglicherweise tun, aber wenn Sie dies tun könnten, wird unser erster Punkt falsch. Wenn alles automatisiert ist, was macht dann ein manueller Tester?
Verwirrt? Recht?
Der Punkt ist eigentlich, dass Sie nicht 100% Ihrer Testfälle automatisieren können. Weil wir als Tester glauben, dass keine Anwendung zu 100% getestet werden kann. Es wird immer einige Szenarien geben, die wir vermissen werden. Es wird immer Fehler geben, die nur auftreten, wenn Ihre Anwendung von den Clients verwendet wird.
Wenn die Anwendung nicht zu 100% getestet werden kann, wie können Sie dann eine 100% ige Automatisierung versprechen?
Es besteht auch eine sehr geringe Wahrscheinlichkeit, dass Sie alle vorhandenen Testfälle automatisieren können. Es gibt immer Szenarien, die schwer zu automatisieren und einfacher manuell durchzuführen sind.
Erstellen Sie in einer Sekunde eine gefälschte E-Mail-Adresse
Zum Beispiel Ein Benutzer gibt die Daten ein, der zweite Benutzer genehmigt die Daten, der dritte Benutzer zeigt die Daten an und der vierte Benutzer darf die Daten nicht anzeigen. Diese Szenarien können automatisiert werden, erfordern jedoch viel Zeit und Mühe. Es wird also einfacher, wenn Sie dies nur manuell tun.
Denken Sie daran, wir benutzen Autos, um Entfernungen zurückzulegen, aber es kann lange Signale auf dem Weg geben, es wird Kraftstoffverbrauch geben, es wird Parkprobleme geben, Parkgebühren und viel mehr Kopfschmerzen. In einigen Szenarien gehen wir einfach zu Fuß und erreichen unser Ziel :) .
Daher sollten Sie nicht versuchen, alles zu automatisieren. Automatisieren Sie nur die Szenarien, die wichtig sind und deren manuelle Ausführung viel Zeit in Anspruch nimmt.
Missverständnis # 3 . Die Automatisierung umfasst nur die Aufnahme und Wiedergabe.
Bitte lebe nicht in einer Fantasiewelt. Diese Fantasie entsteht tatsächlich durch falsche Werbung von verschiedenen Anbietern von Automatisierungstools. Sie sagen, dass Sie nur Ihre Schritte aufzeichnen und wiedergeben und Ihre Testfälle automatisiert werden. Das ist eine große Lüge!
Automatisierung ist alles und nicht nur Aufnahme und Wiedergabe. Reine Automatisierungsingenieure verwenden normalerweise überhaupt keine Aufnahme- und Wiedergabefunktion. Aufnahme und Wiedergabe werden im Allgemeinen verwendet, um eine Vorstellung davon zu bekommen, wie das Tool ein Skript für unsere Schritte generiert.
Sobald wir das Scripting kennengelernt haben, verwenden wir immer das Scripting, um automatisierte Tests zu erstellen. Merken, Sie müssen mit der Programmierung vertraut sein, wenn Sie eine Testautomatisierung durchführen möchten . Seien Sie andererseits nicht enttäuscht, wenn Sie sich mit Programmierung nicht auskennen. Wie bei jeder anderen Aufgabe kann auch das Programmieren mit Übung und Engagement erlernt werden.
Ich kenne Leute, die nicht einmal einen Informatik-Hintergrund haben, aber das Programmieren lernen und jetzt großartige Automatisierungsingenieure sind. Bei Microsoft stellen sie Tester ein, die programmieren können. Sie heißen SDET (Softwareentwickler zum Testen). In der ersten Zeile der Stellenbeschreibung steht 'SDET schreibt viel Code ...'.
Bitte lernen Sie zu programmieren, laufen Sie nicht davon. Es wird dich zu einem machen erstaunlicher Tester .
Fazit
Ich hoffe, dieser Artikel hätte Ihnen geholfen, einige Konzepte im Zusammenhang mit der Testautomatisierung zu klären.
Wir haben ein hohes Maß an verschiedenen Arten von Automatisierungstests mit verschiedenen Klassifizierungsmöglichkeiten abgedeckt.
Die Hauptklassifikationen umfassen:
- Automatisierung basierend auf der Art des Tests (funktional oder nicht funktionsfähig).
- Automatisierung basierend auf der Testphase (Einheit, API oder Benutzeroberfläche).
- Automatisierung basierend auf den verschiedenen Testtypen (mehrere Testtypen).
Wir haben auch die verschiedenen Tools aufgelistet, die für diese Art von automatisierten Tests verwendet werden können.
In unserem kommenden Artikel werden wir das diskutieren Schritt für Schritt Vorgehensweise von So starten Sie die Testautomatisierung in Ihrem Unternehmen .
PREV Tutorial # 1 | NÄCHSTES Tutorial # 3
Literatur-Empfehlungen
- Lasttests mit HP LoadRunner-Tutorials
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Verlieren Tester aufgrund von Automatisierung ihren Einfluss auf das Testen?
- Herausforderungen beim manuellen und automatischen Testen
- 10-stufiger Automatisierungstestprozess: So starten Sie den Automatisierungstest in Ihrer Organisation
- Sind Sie ein Experte für manuelle oder Automatisierungstests? Teilzeit für uns arbeiten!
- 11 besten Automatisierungstools zum Testen von Android-Anwendungen (Android App Testing Tools)
- Top 10+ Best Software Testing Books (Handbuch und Handbuch für Automatisierungstests)