Testautomatisierung / Softwaretesten


Softwaretesten Blogartikel


Testautomatisierung Blogartikel


Vom Quereinsteiger zum Softwaretester

Mythen der Testautomatisierung 1800 1200 Jakob R. Jaworski

Mythen der Testautomatisierung

Es gibt viele Mythen im Bereich der Testautomatisierung. In dieser Serie beleuchten wir die häufigsten Testautomatisierungsmythen und schaffen Klarheit.

Mit Testautomatisierung ist es möglich 100% der Tests zu automatisieren

Ein Mythos ist der Glaube, den ganzen Softwaretestprozess automatisieren zu können. Gerade bei der Einführung von Testautomatisierung entsteht oft der Irrglaube, manuelles Testen werde nicht mehr benötigt. Die Qualität der Software könne alleine durch die Testautomatisierung sichergestellt werden. Doch Testautomatisierung oder wie manche Experten und Expertinnen auch sagen „automatisiertes checken“, ist eine Form der Verifizierung. Wir haben eine Anforderung und Verifizieren, ob diese Anforderung erfüllt ist. Man kann es sich wie eine Checkliste vorstellen, die abgehackt wird. Checken gehört zum Softwaretestprozess, es ist jedoch nur eine kleine Teilmenge davon. James Bach hat den Begriff des Testens sehr gut auf den Punkt gebracht:

Testing is the process of evaluating a product by learning about it through exploration and experimentation, which includes to some degree: questioning, study, modeling, observation, inference, etc.

Den Prozess des Hinterfragens, Studieren und Modellieren, der Hauptbestandteil von gutem Softwaretesten ist, kann man nicht durch Testautomatisierung realisieren. Den Unterschied zwischen Testen vs. Checken hat James Bach in einem Artikel sehr gut erklärt: Testing vs. Checking

Testautomatisierung ist keine Team-Angelegenheit

Oft entsteht die Vorstellung, dass nur eine neue Rolle für die Testautomatisierung geschaffen werden muss. Testautomatisierung ist gerade in agilen Softwareentwicklungsprojekten Aufgabe des ganzen Teams. Die Softwareentwickler erstellen in der Regel die Unit-Tests. Die automatisierten Integrationstests werden vom Softwareentwickler oder Softwaretester erstellt. Für die automatisierten Systemtests ist der Softwaretester meistens verantwortlich. Es ist wichtig, dass es einen Verantwortlichen für die Testautomatisierung gibt. Der Verantwortliche muss nicht alle Teile der Testautomatisierung implementieren. Er sollte jedoch einen Überblick darüber haben, welche Testfälle automatisiert wurden und auf welcher Stufe. Es ist zu beachten, dass alle Parteien, die an der Implementierung der Testautomatisierung und des Testens zusammenarbeiten und sich austauschen. Durch fehlende Kommunikation aller beteiligen am Softwaretestprozess, kann es passieren, dass Tests wichtige Risiken nicht abdecken und/oder Redundanz von automatisierten und manuellen Tests entstehen. Redundanz von Tests führt zu mehr Wartungsaufwand und langsamer Testausführung.

Testautomatisierung ist kein Softwareentwicklungsprojekt

Im Softwareentwicklungsprojekt ändert sich die zu entwickelnde Anwendung kontinuierlich. Es reicht nicht, die Testautomatisierung einmal zu implementieren, um konstantes Feedback über die Qualität der zu entwickelnden Anwendung zu bekommen. Testautomatisierung ist keine Phase, die nur einmal ausgeführt wird. Die Testautomatisierung sollte als Softwareentwicklungsprojekt gesehen werden, welche geplant, implementiert, kontinuierlich gewartet und erweitert werden muss.

 Fazit

Bevor die Testautomatisierung in den Softwareentwicklungsprozess integriert wird, sollte Klarheit geschafft werden, welchen Mehrwert durch die Testautomatisierung erreicht werden kann. Testautomatisierung kann keinen guten Softwaretester ersetzen. Automatisierte Testfälle sollen den Softwaretester unterstützen. Die Implementierung eines Testautomatisierungsframework und der automatisierten Testfälle, sollte als Softwareentwicklungsprojekt gesehen werden. Im zweiten Teil beleuchten wir die zwei Extreme bei der Implementierung von automatisierten End-2-End Testfällen. Teil zwei Testautomatisierungsmythen 

Tutorials im Bereich Testautomatisierung von Webanwendungen, mobilen Anwendungen und Webservices findest Du im Bereich: Testautomatisierung & Softwaretest Tutorials und auf unserem YouTube-Kanal: Testautomatisierung – Gewusst Wie

Softwaretester Must-Reads für den Monat August 1800 1200 Jakob R. Jaworski

Softwaretester Must-Reads für den Monat August

Es gibt mittlerweile eine große Anzahl an Büchern, Artikeln und Tutorials über das Softwaretesten. Damit Du nicht den Überblick verlierst, welcher Content Dir in Deiner täglichen Arbeit als Softwaretester nützlich sein kann, werden wir in regelmäßigen Abständen unsere Empfehlungen veröffentlichen.

Du willst wissen, warum in vielen Softwareentwicklungsprojekten die Testautomatisierung scheitert? Es interessiert Dich, welche Fähigkeiten Du brauchst, um den Softwaretestprozess durch automatisiertes Testen zu unterstützen? Die erste Empfehlung „A Test Automation Learning Path“ von Bas Dijkstra beantwortet diese und weitere Fragen.

Als Softwaretester findest Du im Laufe des Softwareentwicklungsprozess eine große Anzahl an Defekte. Wie Du diese explorativ analysieren kannst, zeigt dir unsere zweite Empfehlung von Alan Richardson.

Du bist Neueinsteiger im Softwaretesten und weißt nicht, wie Du starten sollst? Dann ist unsere dritte Empfehlung ein kostenfreies Buch für Softwaretest-Neueinsteiger von Mike Talks genau richtig für Dich.

Artikel: A Test Automation Learning Path von Bas Dijkstra

In dem Artikel A Test Automation Learning Path beschreibt der Autor Bas Dijkstra einen möglichen Weg für Softwaretester, die den Softwaretestprozess durch automatisiertes Testen unterstützen wollen. Laut Bas Dijkstra sind fundierte Kenntnisse im Bereich Softwaretesten eine wichtige Grundlage für die Testautomatisierung. Der Autor hat die Erfahrung gemacht, dass viele Softwareentwicklungsprojekte an einer fehlenden soliden Testautomatisierungsstrategie scheitern und zeigt auf, wie eine mögliche Strategie aussehen kann. Des Weiteren thematisiert der Autor noch Testautomatisierungstools

Der Artikel gibt gerade Softwaretester und Softwareentwicklungsprojekten, die mit der Testautomatisierung starten wollen, einen guten Überblick für den Einstieg. Bas Dijkstra zeigt auf, welche Fragen eine Testautomatisierungsstrategie beantworten sollte. Und welche Kenntnisse und Technologien der Verantwortliche für die Testautomatisierung beherrschen sollte.

Link zum Artikel: A Test Automation Learning Path

YouTube-Video: How to Investigate a Defect with Exploratory Testing  von Alan Richardson

Alan Richardson ist ein sehr technisch versierter Softwaretester. In seinem YouTube Video analysiert er explorativ einen Defekt und spricht über seine Gedankengänge beim Nutzen der unterschiedlichen Tools. Das YouTube Video gibt einen guten Überblick, über verschiedene Tools, die zum Unterstützen des eigenen Softwaretesten eingesetzt werden können und welche Fragen beim Testen gestellt werden können.

Link zum Video: How to Investigate a Defect with Exploratory Testing

Kostenfreies eBook: How to Test von Mike Talks

Mike Talks hat sich zusammen mit einem befreundeten Test Manager die Frage gestellt „Wie bringe ich einem Neueinsteiger Softwaretesten bei?“. Daraus ist sein Buch How to Test entstanden. Der Autor legt den Fokus auf das manuelle Softwaretesten und gibt einen kurzen Überblick über die einzelne Testarten. Mike Talks stellt Heuristiken vor und zeigt anhand von Beispielen wie Heuristiken eingesetzt werden können. Das Buch ist gerade für Softwaretest-Neueinsteiger sehr gut geeignet. Es gibt Interessierten einen guten Überblick darüber, was Softwaretesten ist und welche Grundlagen und Fähigkeiten ein Softwaretester braucht.

Link zum Buch: How to Test

Tutorials im Bereich „Testautomatisierung mit Selenium“ findest Du im Bereich: Testautomatisierung & Softwaretest Tutorials und auf unserem YouTube-Kanal: Testautomatisierung – Gewusst Wie

Quereinstieg als Softwaretester – ein Erfahrungsbericht 1800 1350 Thorsten Specht

Quereinstieg als Softwaretester – ein Erfahrungsbericht

Wie der Quereinstieg als Testautomatisierer unserer Meinung nach am besten funktioniert, haben wir bereits in einem früheren Artikel erläutert. Doch es gibt nicht nur den einen Weg als Quereinstieg. Ich selbst bin Quereinstieger und möchte Dir über meinen Weg zum Softwaretester berichten – als ein Beispiel von vielen.

In diesem Artikel stelle ich Dir meinen Weg zum Softwaretester vor. Wie ich meine ersten Monate als Quereinsteiger in der Praxis erlebt habe und welche Fähigkeiten ich am Anfang aufarbeiten musste, stelle ich Dir in späteren Artikeln vor.

Meine Voraussetzungen als Quereinstieger

Softskills durch ein fachfremdes Studium

Bevor ich zum Softwaretesten kam, habe ich zunächst einen Bachelor in Wissenschaftsjournalismus an einer technischen Universität erlangt. Anschließend habe ich eine technische Richtung eingeschlagen, indem ich ein Master-Studium im Fach Technische Dokumentation aufgesetzt habe. Wie Du siehst, hat mein Bildungsweg nur wenig mit Informatik oder Softwareentwicklung zu tun. Dennoch habe ich wichtige Softskills erworben, die mir im Job helfen, neues Wissen aufzubauen und als Softwaretester die Schnittstelle von Entwicklung, Produktmanagement und Projektmanagement zu bilden.

Praxiserfahrung in der Softwareentwicklung

Während meines Bachelor-Studiums habe ich für ein Computermagazin geschrieben – ein Großteil meiner Veröffentlichungen sind Rezensionen zu Android- und iOS-Apps, die ich zunächst getestet und anschließend bewertet habe. Begleitend zum Master-Studium habe ich dann in einem Softwareunternehmen gearbeitet: die ersten Monate als manueller Tester, einige weitere Monate im Produktmanagement. Insgesamt habe ich ca. 18 Monate als Werkstudent in der Softwareentwicklung verbracht. In dieser Zeit habe ich erste Eindrücke von agilem Arbeiten und dem Umfeld der Softwareentwicklung gesammelt.

Programmiergrundlagen mit Python und JavaScript

Ein paar Grundlagen der Webentwicklung mit HTML und CSS habe ich in meinem Studium erworben. Da mich Programmieren schon immer interessiert hat, habe ich in meiner Freizeit zusätzlich über einige Wochen die Grundlagen des Programmierens anhand von JavaScript gelernt. Außerdem habe ich einen Python-Grundlagenkurs durchgearbeitet. Zum Zeitpunkt meiner Bewerbung als Softwaretester hatte ich damit die Grundlagen, die nötig sind, um einfache Testfälle mit Selenium zu automatisieren. Anders ausgedrückt: Ich hatte das Konzept der Objektorientierung verstanden, kannte Datentypen und die Syntax zweier Programmiersprachen. Aber vor allem an Übung mangelte es.

Der erste Softwaretester-Job als Quereinsteiger

Nach meinem Studium habe ich zunächst 8 Monate als Technischer Redakteur gearbeitet. Da mir die Arbeit und das Umfeld von Beginn an schlechter gefallen hatten, als meine Zeit in der Softwareentwicklung, habe ich mich auf eine Stelle als Software Quality Assurance Engineer beworben. Hierbei habe ich auf drei Dinge geachtet:

  1. Meine Motivation und Lernbereitschaft deutlich zu machen,
  2. meine Voraussetzungen realistisch zu kommunizieren und nicht zu hoch zu stapeln,
  3. zu begründen, was mich für die Arbeit als Softwaretester qualifiziert.

Insbesondere der erste Punkt hat mir im Vorstellungsgespräch geholfen. Meine Gesprächspartner haben von Anfang an gemerkt, dass ich wirklich Lust darauf habe. Dass ich meine Programmierfähigkeiten ausbauen möchte und bereit bin, meine fachlichen Lücken aufzuholen.

Um es mir nicht zu einfach zu machen, habe ich eine Testautomatisierungsaufgabe mit nach Hause bekommen, die ich innerhalb einiger Tage lösen sollte. Trotz meiner grundlegenden Programmierkenntnisse, ist mir das ohne Vorerfahrung in der Testautomatisierung nur schlecht gelungen. Doch das war nicht entscheidend – denn für die Zusage hat es trotzdem gereicht.

In einem weiteren Beitrag schildere ich, wie meine ersten Monate als Softwaretester verlaufen sind. Dort erfährst Du, auf welche Herausforderungen ich zu Beginn gestoßen bin und was mir dabei geholfen hat, die Grundlagen des Softwaretestens zu erlernen.

Falls Du Dich für den Quereinstieg ins Softwaretesten interessierst, haben wir genau die richtige Ausbildung für Dich „Vom Quereinsteiger zum Softwaretester

Testautomatisierer werden 5472 3648 Jakob R. Jaworski

Testautomatisierer werden

Testautomatisierer werden per Quereinstieg. Geht das?

Die agile Softwareentwicklung verlangt nach schnellem Feedback über die Qualität des zu entwickelnden Systems. Das manuelle Test alleine, kann das schnelle Feedback ohne die Testautomatisierung nicht gewährleisten. Die Position des Testautomatisierer rückt im Softwareentwicklungsprozess immer mehr in den Fokus. Testautomatisierer sollten ein weites Spektrum an Fähigkeiten im Bereich der Softwareentwicklung beherrschen. Welche Fähigkeit ein Testautomatisierer meistern solltest und wie ein möglicher Einstieg aussehen kann, um Testautomatisierer zu werden zeigen die nächsten Abschnitte.

Grundlagen des Softwaretestens

Wenn Du Testautomatisierer werden willst, solltest Du die theoretischen und praktischen Grundlagen des Softwaretestens können. Wie Du Dir die Fähigkeiten aneignen kannst, erfährst Du in meinem Beitrag „Softwaretester werden.

Spezialisieren als Testautomatisierer

Meisterst Du die Grundlagen des Softwaretestens, wird es Zeit mit der Testautomatisierung zu starten. Entscheide Dich zu Beginn, worauf Du dich spezialisieren möchtest:   Willst Du im Bereich Webanwendungen, mobilen Anwendungen oder Desktopanwendungen etc. tätig sein? Hast Du eine Entscheidung getroffen, empfiehlt es sich im nächsten Schritt mit einer Programmiersprache auseinander zu setzten. Doch wie findest Du die passende Programmiersprache, um Testautomatisierer zu werden?

Testautomatisier werden – Programmiersprache meistern

Wer Testautomatisierer werden will, sollte mindestens in einer Programmiersprache fit sein. Im Laufe Deiner Karriere in der Testautomatisierung wirst Du projektbedingt eine Vielzahl an Programmiersprachen einsetzten. Doch mit welcher solltest Du starten? Ein guter Indikator sind hier Job-Portale:  In den Stellenanzeigen zur Testautomatisierung lässt sich schnell herauslesen, welche Programmiersprachen aktuell sehr gefragt sind. Solltest Du trotzdem unentschlossen sein, worauf Du Deinen Fokus legen möchtest, empfiehlt es sich Java, C# oder Python zu lernen. Denn alle drei Programmiersprachen werden beim automatisierten Testen von Webanwendungen, mobilen Anwendungen, Micro Services und Web Services eingesetzt.

Testautomatisierungstool für Webanwendungen 

Sobald Du die Grundlagen der Programmierung kannst, solltest Du dich mit der Auswahl eines Testautomatisierungstool für Webanwendungen auseinandersetzen – mittlerweile gibt es davon eine große Anzahl. Einen guter Einstieg in die Testautomatisierung von Webanwendungen gelingt mit Selenium, dem am häufigsten eingesetzten Testautomatisierungstool für Webanwendungen. Selenium ist ein Open Source Tool und somit kostenfrei. Ein großer Vorteil des Tools ist die vielseitige Einsetzbarkeit: Du kannst es allen gängigen Programmiersprachen (Java, C#, Python, JavaScript, Ruby, PHP etc.) verwenden. Einen Überblick über die Vor- und Nachteile von Selenium erhältst Du hier. Kostenfreie Tutorials zu Selenium findest Du im Bereich Tutorials und auf unserem YouTube Kanal „Testautomatisierung – Gewusst Wie“.

Testautomatisierungstool für mobile Anwendungen

Interessierst Du Dich für das automatisierte Testen von mobilen Anwendungen, dann ist Appium eine gute Option. Appium ist genauso wie Selenium ein Open Source Tool. Du kannst mit Appium native, hybride und mobile Web Apps automatisiert Testen. Einen Überblick über die Vor- und Nachteile von Appium erhältst Du hier. Kostenfrei Tutorials zu Appium findest Du im Bereich Tutorials und auf unserem YouTube Kanal „Testautomatisierung – Gewusst Wie“.

Fazit

Durch das Erlernen der theoretischen und praktischen Grundlagen des Softwaretests, baust Du Dir ein gutes Fundament auf, um ein Testautomatisierer zu werden. Entscheide Dich für den Anfang, in welchem Bereich Du Dich spezialisieren willst. Fokussiere Dich auf eine Programmiersprache und lerne Die Grundlagen der jeweiligen Programmiersprache. Für Testautomatisierung von Webanwendungen ist Selenium eine gute Tool-Wahl, für mobile Anwendungen bietet Appium einen guten Einstieg. Tutorials zu Selenium und Appium findest Du im Bereich Tutorials und auf unserem YouTube Kanal „Testautomatisierung – Gewusst Wie“.

Testautomatisierung mit Selenium 1800 1200 Jakob R. Jaworski

Testautomatisierung mit Selenium

Testautomatisierung mit Selenium

Selenium ist das meist eingesetzte Testautomatisierungstool für Webanwendungen. Doch ist Selenium ein Testautomatisierungstool oder nur ein Automatisierungstool? Ist die Testautomatisierung mit Selenium für den agilen Softwareentwicklungsprozess überhaupt geeignet? Diese und weiter Fragen beantwortet der erste Teil des Artikels. Im zweiten Teil werfen wir einen Blick auf die fünf Schritte eines automatisierten Selenium-Testfalls und Aspekte, die bei der Testautomatisierung mit Selenium berücksichtigt werden sollten.

Die Serie “Testautomatisierung von Webanwendungen” beschäftigt sich mit Testautomatisierungstools, die für das automatisierte Testen von Webanwendungen eingesetzt werden. Jeder Teil der Serie stellt ein neues Tool vor und beschreibt die Einsatzgebiete und die Herausforderungen, die bei der Einführung entstehen können. Die Serie wird kontinuierlich erweitert.

Die Fülle an Browser-Versionen und die Tatsache, dass Webanwendungen auch auf mobilen Endgeräten funktionieren sollen, stellen Tester vor eine Herausforderung. Das manuelle Testen der Webanwendungen in allen gängigen Browser-Versionen ist in vielen Fällen auf Grund von mangelnden Projektressourcen nicht durchführbar. In der Webentwicklung haben sich Testautomatisierungstools langfristig etablieren können. Für das End-2-End-Testen von Webanwendungen gibt es eine Vielzahl an Testautomatisierungstools.

Unter diesen hat sich die Testautomatisierung mit Selenium in der Industrie als das meist eingesetzte Testautomatisierungstool für Webanwendungen bewährt. Eine Komponente von Selenium ist Selenium WebDriver. Dabei steht der Begriff Selenium zumeist stellvertretend für Selenium WebDriver.

Der erste Teil der Serie “Testautomatisierungstools für End-2-End-Tests von Webanwendungen” beinhaltet die Testautomatisierung mit Selenium. In diesem Teil der Serie, der sich „Testautomatisierung von Webanwendungen mit Selenium“ nennt, wird dargestellt, was Selenium ist, wofür es eingesetzt wird und was bei der Implementierung der Testautomatisierung mit Selenium zu beachten ist.

Testautomatisierung mit Selenium – Was ist Selenium?

Als Automatisierungstool interagiert die Testautomatisierung mit Selenium mit der Benutzeroberfläche der Webanwendung. Dabei führt es Aktionen auf den einzelnen Web-Elementen aus. Selenium ermöglicht es, Benutzer-Aktionen zu simulieren und diese zu automatisieren.

Als Automatisierungstool wird Selenium meist für End-2-End-Tests eingesetzt. Selenium WebDriver ist ein Application Programming Interface (API), das mit allen gängigen Programmiersprachen (Java, C#, JavaScript, Python, Ruby, PHP, etc.) eingesetzt werden kann. Selenium ist eine Open Source, somit fallen keine Kosten bei der Nutzung an. Als Automatisierungstool wird es erst in Kombination mit einem Testingframework wie beispielsweise JUnit, TestNG oder NUnit zu einem Testautomatisierungstool. Selenium WebDriver ist im W3C Standard aufgenommen und unterstützt alle gängigen Browser.

Testautomatisierung mit Selenium – Cross Platform und Parallel Tests

Ein großer Vorteil Testautomatisierung mit Selenium WebDriver ist, dass es auf allen gängigen Betriebssystemen ausführbar ist. Die Testautomatisierung, die auf einem Windows-Rechner implementiert wurden, kann auf einem Linux- oder Mac-Rechner ausgeführt werden. Ebenso unterstützt Selenium WebDriver die Ausführung der automatisierten Tests auf allen gängigen Browsern (Chrome, Firefox, Internet Explorer etc.). Die automatisierten Tests lassen sich auch parallel ausführen, was ein schnelles Feedback ermöglicht und gerade bei einer großen Anzahl von Tests einen großen Mehrwert bietet.

Testautomatisierung mit Selenium – Integration in den agilen Softwareentwicklungsprozess

Die Integration von Selenium mit Behaviour Driven Development Frameworks (BDD) wie Cucumber ermöglicht es, die Testfälle für alle Beteiligten als lebende Dokumentationen transparent zu machen. Die automatisierten Selenium-Tests können durch die gängigen Continuous Integration Server (Jenkins, GitLab) ausgeführt werden.  Dadurch ermöglicht Testautomatisierung mit Selenium eine optimale Integration in die agilen Prozesse und die Tool-Landschaft. Die Testautomatisierungsframeworks und die automatisierten Selenium-Testfälle lassen sich schon zum Teil fertigstellen, bevor die Anwendung oder das Feature implementiert ist.

Testautomatisierung mit Selenium – Integration in kommerzielle und Open-Source-Lösungen

Selenium ist das meist eingesetzte Automatisierungstool für Webanwendungen. Dementsprechend gibt es eine große Anzahl an Services, die mit Selenium eingesetzt werden können, seien es kommerzielle oder Open-Source-Lösungen. Anbieter wie Applitools oder die Open-Source-Lösung Galen ermöglichen visuelles Testen. Weitere Anbieter, wie etwa SauceLabs und Perfecto, stellen eine Infrastruktur zur Verfügung. In diesen werden die automatisierten Tests für eine Vielzahl an Browser-Versionen und Plattformen remote ausführbar gemacht.

Testautomatisierung mit Selenium – Programmierkenntnisse und nicht out-of-the-box

Um wartungsfreundliche Testautomatisierungsframeworks in Selenium WebDriver zu implementieren, benötigt man fortgeschrittene Programmierkenntnisse. Das Einarbeiten erfordert einen hohen Zeitaufwand. Ein weiterer Nachteil bei der Testautomatisierung mit Selenium Webdriver gegenüber kommerziellen Testautomatisierungstools ist, dass man jede weitere Komponente, die man zu seinem Testautomatisierungsframework hinzufügen will (wie beispielsweise Reports und Logging), in das Testautomatisierungsframework integrieren muss.

Die automatisierten Tests von Selenium werden über das User Interface (Browser) ausgeführt. Gerade die Benutzeroberfläche ändert sich im Softwareentwicklungsprozess oft. Dies führt dazu, dass die Tests bei jeder Änderung angepasst werden müssen. Die stetige Angleichung betrifft auch kommerzielle Testautomatisierungstools, die über die Benutzeroberfläche automatisierte Tests ausführen.

Fünf Schritte – Testautomatisierung mit Selenium

Die Implementierung von automatisierten Selenium-Testfällen besteht in der Regel aus den folgenden fünf Schritten:

1.) Set-up

Damit wir automatisierte Tests mit Selenium implementieren können, müssen wir erst mal Selenium konfigurieren und den Browser festlegen.

2.) Elemente identifizieren

Um automatisierte Benutzeraktionen ausführen zu können, müssen wir die Elemente einer Webanwendung eindeutig identifizieren. Hierzu haben wir eine große Anzahl an Lokators, die uns bei Testautomatisierung mit Selenium zur Verfügung stehen.

3.) Aktionen ausführen

Nachdem wir die einzelnen Elemente einer Webanwendung identifiziert haben, können wir die Aktionen eines Benutzers automatisieren.

4.) Ist/Soll-Abgleich

Selenium ist an sich keine Testautomatisierungstool. Erst in Verbindung mit einem Testautomatisierungsframework wird es zu einem Testautomatisierungstool. Jede gängige Programmiersprache hat ein oder mehrere Testautomatisierungsframework für einen Ist/Soll-Abgleich.

5.) Anfangszustand herstellten

Nachdem unsere automatisierte Selenium Testfällen durchlaufen sind, wollen wir den Anfangszustand herstellen. Im Falle von Selenium wollen wir den Browser wieder schließen.

Testautomatisierung mit Selenium – Empfehlungen

Softwareentwicklungsprojekte sind komplex und bringen unterschiedliche Herausforderungen mit sich. Gerade am Anfang des Softwareentwicklungsprozess sind die Informationen, die für die Testautomatisierung mit Selenium gebraucht werden, noch nicht vollständig vorhanden. Die Berücksichtigung nachstehender Empfehlungen können eine gute Grundlage für den erfolgreichen Einsatz von Selenium schaffen.

Wissen

Die Testautomatisierung mit Selenium erfordert Wissen über die Grundlagen von Webanwendungen. Deshalb sollte der Verantwortliche für die Implementierung der Testautomatisierung von Selenium sollte HTML-, CSS-, Programmier- und Testautomatisierungskenntnisse besitzen. Bei der Testautomatisierung mit Selenium helfen HTML- und CSS-Kenntnisse dabei Elemente zu identifizieren und Selektoren zu erstellen. Gute Programmierkenntnisse ermöglichen es das Testautomatisierungsframework wartbarer zu implementieren wie im Abschnitt Design Pattern beschrieben.

Identifikation der Elemente

Damit bei der Testautomatisierung mit Selenium-Aktionen ausgeführt werden können, müssen die Elemente einer Webanwendung identifiziert werden. Dies kann oft eine Herausforderung sein, wenn bei der Implementierung der Webanwendung nicht darauf geachtet wird, dass die einzelnen Elemente einer Webanwendung eindeutig identifizierbar sind. Somit erleichtert die Testautomatisierung mit Selenium, wenn die Elemente eindeutige Attribute haben.

Clean Code

Der Code, der bei der Erstellung von Testautomatisierung mit Selenium implementiert wird, sollte die Regeln von Clean Code befolgen. Wie beispielsweise eindeutige Namen für Variablen, Funktionen und Klassen. Der Quellcode sollte einfach zu lesen und zu ändern sein.

Design Pattern

Automatisierte Selenium-Testfälle sind in der Regel wartungsaufwändiger als Unit-Tests oder Integrationstests, da sie mit der Anwendung über die Benutzeroberfläche agieren. Die Benutzeroberfläche einer Anwendung ändert sich im Softwareentwicklungsprozess mehrfach. Der Einsatz von Design Patterns reduziert den Wartungsaufwand der automatisierten Selenium-Testfälle und ermöglichen es, redundanten Code zu vermeiden und Code wiederzuverwenden.

Parallele Ausführung

Die Testautomatisierung von Selenium ist in der Regel langsamer in der Ausführung als Unit- und Integrationstests. Es sollte bei der Implementierung darauf geachtet werden, dass die automatisierten Selenium-Testfälle parallel ausgeführt werden. Dies führt zu schnellem Feedback.

Reporting

Damit die Testautomatisierung mit Selenium einen Mehrwert für den Softwareentwicklungsprozess liefert, ist es wichtig, den Fehlerzustand schnell zu identifizieren. Ein Report über die automatisierten Testfälle sollte uns die einzelnen Schritte, die ausgeführt werden, anzeigen. Bei einer Fehlerwirkung sollten ein Screenshot anzeigen, wo der automatisierte Testfall fehlgeschlagen ist.

Testautomatisierung mit Selenium – Fazit

Da automatisierte Selenium-Tests auf allen gängigen Browsern ausgeführt werden können, eignet sich die Testautomatisierung mit Selenium sehr gut für Webanwendungen. Durch die große Community an Selenium-Usern lassen sich für aufkommende Herausforderung auch im World Wide Web häufig Lösungen finden. Des Weiteren wird Selenium WebDriver kontinuierlich weiterentwickelt und ist immer up-to-date mit den neuesten Browser-Versionen. Zu beachten ist jedoch, dass man gute Programmierkenntnisse benötigt, um ein Testautomatisierungsframework zu implementieren.Im Softwareentwicklungsprozess sollte die Automatisierbarkeit der Anwendung berücksichtigt werden. Der Verantwortliche der Testautomatisierung mit Selenium sollte die Grundlagen der Softwareentwicklung von Webanwendungen beherrschen. Bei der Testautomatisierung mit Selenium sollten Clean Code Regeln und Design Pattern eingesetzt werden, um die Verständlichkeit des Quellcodes und die Wartbarkeit zu gewährleisten. Die automatisierten Selenium-Testfälle sollen parallel ausgeführt werden, um schnelles Feedback zu bekommen. Die Reports sollten es ermöglichen, Fehlerzustände schnell zu identifizieren.

Tutorials im Bereich „Testautomatisierung mit Selenium“ findest Du im Bereich: Testautomatisierung & Softwaretest Tutorials und auf unserem YouTube-Kanal: Testautomatisierung – Gewusst Wie

 

Testautomatisierung von mobilen Anwendungen mit Appium 1800 1205 Jakob R. Jaworski

Testautomatisierung von mobilen Anwendungen mit Appium

Testautomatisierung von mobilen Anwendungen mit Appium

In dieser Folge der Serie Testautomatisierungstools für mobile Anwendungen schauen wir uns die Testautomatisierung von mobilen Anwendungen mit Appium an. Im Gegensatz zu Desktop- und Webanwendungen stellen mobile Anwendungen Tester vor eine größere Herausforderung: Die Technologien, auf denen diese ausgeführt werden, gestalten sich immer komplexer. Einerseits werden, wie der Name “mobile” schon sagt, die Anwendungen im täglichen Leben genutzt und deswegen stellen die Nutzer größere Anforderungen an sie. Auch wenn nur die zwei gängigen Betriebssysteme Android (75 % Marktanteil 2017) und iOS (24 % Marktanteil) genutzt werden, gibt es gerade im Android-Umfeld eine Vielzahl an Gerät- und Betriebssystem-Versionen. Nicht zu vergessen ist die Fülle an Sensoren eines Mobilgeräts, die mit der mobilen Anwendung interagieren.

Mobile Anwendungen brauchen eine andere Verteilung manueller und automatisierter Tests als Desktop- und Webanwendungen. Ein Automatisierungstool, welches in der Industrie eingesetzt wird und sich in der Praxis bewährt hat, ist Appium. Appium stellt, wie auch Selenium, den gängigen Programmiersprachen eine API bereit, damit diese mit der jeweiligen Programmiersprache genutzt werden können. Wie Selenium so ist auch Appium ein Tool, welches in Verbindung mit einem Framework (z.B. TestNG, NUnit) zur Testautomatisierung genutzt wird.

Cross-Platform-Test von nativen, hybriden und Web-Apps

Appium hat den großen Vorteil, dass damit sowohl Android- als auch iOS-Anwendungen automatisiert getestet werden können. Es lassen sich auf beiden Plattformen native, hybride und Web-Apps testen. Mittlerweile kann man mit Appium Windows- und Mac-Desktop-Apps testen. In Zukunft ist es vorgesehen, damit Internet of Things-Geräte automatisiert zu testen

Keine Lizenzkosten für die Nutzung von Appium

Appium ist wie Selenium ein Open-Source-Tool, somit fallen keine Lizenzkosten an. Appium hat zahlreiche Nutzer und verfügt über umfangreiche technische Dokumentationen.Mit Appium kann mal sowohl die mobilen Anwendungen auf physischen Geräten als auch auf Emulatoren und Simulatoren automatisiert testen. Genau wie bei Selenium, gibt es Cloud-Anbieter, die eine Infrastruktur bereitstellen, um die automatisierten Tests auf einer Vielzahl von Versionen von Betriebssystemen und Geräten automatisiert zu testen. Sogar Visual-Test-Automation ist mit Appium mit Anbietern wie Applitools möglich. Das aufgebaute Testing-Framework mit Appium und der jeweiligen Programmiersprache lässt sich ohne großen Aufwand in einen Continuous Integration Server integrieren. Die parallele Ausführung der Tests führt zu schnellem Feedback.

Nicht out-of-the-box

Um eine Test Automation Solution mit Appium zu erstellen, benötigt man gute Programmierkenntnisse. Das kann bei der Einarbeitung zu einem höheren Zeitaufwand führen. Wie auch bei Selenium gibt es bei dem Open-Source-Tool kein Service Level Support. Der Aufbau einer Test Automation Solution ist nicht out-of-the-box und muss individuell, den Projektanforderungen entsprechend, von Grund auf implementiert werden.

Fazit

Der richtige Einsatz von Appium kann einen großen Mehrwert für das automatisieren von funktionalen und visuellen Tests bedeuten. Wichtig ist zu beachten, dass gerade mobile Anwendungen so getestet werden, wie sie der Endnutzer beansprucht. Beispielsweise sollte im Falle einer Sport App nicht versucht werden, alles im Labor zu automatisieren, sondern so zu testen, wie sie im täglichen Leben genutzt wird. Für schnelles Feedback sollte man die Testautomatisierung mit Appium im Emulator und Simulator automatisiert testen. Man sollte jedoch die Mehrheit der Tests, manuelle und automatisierte, am echten Gerät ausführen.

Appium Tutorials

Kostenfreie Schulung zum Thema Testautomatisierung mit Appium findest Du im Tutorials Bereich und auf unserem YouTube Kanal „Testautomatisierung – Gewusst Wie

Softwaretester werden 1800 1201 Jakob R. Jaworski

Softwaretester werden

Softwaretester werden per Quereinstieg. Geht das?

Unternehmen verlangen heutzutage nicht zwingend einen Studienabschluss, um als Softwaretester tätig zu sein. Des Weiteren existiert keine Ausbildung und kein Studiengang, der sich damit befasst, Softwaretester zu werden. In einigen Informatik-Studiengängen gibt es zwar vereinzelt Module, die sich mit dem Thema befassen. Die Module in den Studiengängen gehen jedoch nicht in die Tiefe und die wichtige Praxiserfahrung fehlt.

Falls Du Dich für den Quereinstieg ins Softwaretesten interessierst, haben wir genau die richtige Ausbildung für Dich „Vom Quereinsteiger zum Softwaretester

Viele Softwaretester sind Quereinsteiger – zahlreiche weltweit anerkannte Softwaretest-Experten besitzen keinen Informatik-Hintergrund. Stattdessen haben viele der Experten und Expertinnen Fächer wie Politikwissenschaften oder Philosophie studiert. Mit dem richtigen Vorgehen kann man auch ohne Ausbildung oder Studium Softwaretester werden. Wie Du einen möglichen Einstieg meistern kannst, zeige ich Dir in den nächsten Abschnitten.

Zertifizierung als Softwaretester

Als Quereinsteiger sollte man dem zukünftigen Arbeitgeber zeigen, dass man sich mit dem Thema Softwaretesten auseinandersetzt und Fachkenntnisse vorweisen kann. Dies ist vor allem durch Zertifikate möglich: Das International Software Testing Qualification Board (ISTQB) ist eine weltweite anerkannte Organisation, welche Zertifizierungen für Softwaretester anbietet. Es gibt verschiedene Stufen von Zertifizierungen. Die Zertifizierung als „Certified Software Tester Foundation Level“ sollte für den Einstieg als Softwaretester ausreichen. Zwar ist der damit verbundene Abschlusstest für viele eine erste Hürde, die jedoch mit der richtigen Vorbereitung gut zu meistern ist.

Certified Softwaretester im Selbststudium

Mit dem Fachbuch „Basiswissen Softwaretest: Aus- und Weiterbildung zum Certified Tester – Foundation Level nach ISTQB-Standard“ (*) kannst Du Dich optimal auf die Zertifizierung vorbereiten. Damit Du einen Einblick bekommst, wie die Fragen in der Prüfung aussehen können, empfehle ich Dir die Lernplattform smartwebapps. Dort kannst Du Dich kostenlos in den jeweiligen Kurs einschreiben und die Prüfung Certified Softwaretester Foundation Level mit Musterfragen üben. Der größte Vorteil des Selbststudiums ist das intensive Auseinandersetzten mit den Inhalten. Wem es leichter fällt, sich unter Anleitung auf die Prüfung vorzubereiten, der kann auch eine kostenpflichtige 3-tägige Schulung besuchen, die das Ablegen der Prüfung am letzten Tag beinhaltet. Anbieter hierfür sind bspw. iSQI

Nur mit Theorie geht’s auch nicht!

Die Zertifizierung ermöglicht es Quereinsteigern zwar, sich die theoretischen Grundlagen des Softwaretestens anzueignen, doch ganz ohne praktische Erfahrungen ist der Weg zum Softwaretester schwierig. Eine Möglichkeit Erfahrungen zu sammeln bietet Dir das Crowd-Testing. Hierbei testest Du Webanwendungen und mobile Anwendungen von Unternehmen und erhältst dafür eine Vergütung. Dabei lernst Du vor allem, wie Du Explorative Tests durchführst und Bug Reports schreibst. Zusätzlich erhältst Du Feedback von erfahrenen Testern. Mittlerweile gibt es eine große Anzahl an Crowd Testing-Anbietern. Zu empfehlen sind test.io und testbirds.

Fazit

Eine große Anzahl an Softwaretestern sind Quereinsteiger. Eine Zertifizierung bringt Dich Deinem Ziel, Softwaretester zu werden, näher. Ob Du Dich durch einen Schulungsanbieter oder im Selbststudium auf die Zertifizierung vorbereitest, liegt ganz bei Dir. Damit Du nicht nur Theorie lernst, sondern zeitnah Praxiserfahrung sammelst, solltest Du Dich jedoch bei 2-3 Crowd Testing-Anbietern anmelden. Nachdem Du die Grundlagen gelernt und Praxiserfahrung gesammelt hast, ist es an der Zeit, Dich mit dem Thema Testautomatisierung zu befassen. Testautomatisierung gewinnt in Softwareentwicklungsprojekte zunehmend an Bedeutung. Kostenfreie Schulungen dazu findest Du im Bereich Tutorials.

Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommen wir von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht. Damit unterstützt Du die Wartungskosten der Testautomatisierung – Gewusst Wie Website

Back to top
Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.