Sammlung von Newsfeeds

Werkstudententätigkeit bei Qytera

Qytera News -

Lesedauer: 2 Minuten

In der sich ständig wandelnden IT-Welt kann es insbesondere für Berufsanfänger:innen sehr schwierig sein, einen guten Berufsstart hinzulegen. Die Ansprüche von den Arbeitgebern werden immer größer, deshalb ist es umso wichtiger neben dem Studium bereits Arbeitserfahrung zu sammeln. Deshalb bieten wir bei Qytera Studenten die Möglichkeit, interessante Tätigkeiten in der Testing-Welt zu übernehmen. Unsere Werkstudenten-Tätigkeiten sind sehr anspruchsvoll und es wird praktisches Wissen vermittelt, welches auf diese Art und Weise an keiner Universität oder Fachhochschule gelehrt wird.

Was machen wir bei der Qytera GmbH überhaupt?

Die Hauptdienstleistungen von Qytera liegen in der Testautomatisierung und im Testmanagement, das bedeutet, wir optimieren Softwaretests. In der Softwareentwicklung herrscht ein großer Konkurrenzkampf, kleinere Fehler können hier viele Kosten verursachen, insbesodnere dann, wenn sie sich wiederholen. Unsere Mitarbeiter:innen verhindern dies mit ihrer langjährigen Erfahrung und ihrem Know-How, genau bei diesen Prozessen suchen wir Unterstützung von engagierten Werkstudenten:innen, die Lust haben, tief in die Testing-Welt einzutauchen.

Bild: Dienstleistungen Qytera. (Klicken zum Vergrößern) [Quelle: Qytera] × Was unterscheidet eine Werkstudentenstelle bei Qytera von anderen Werkstudenten-Jobs?

Bei Qytera bekommst du von Anfang an anspruchsvolle Tätigkeiten zugewiesen, an denen du wirklich wachsen kannst und dich fachlich und persönlich auf das nächste Level bringen kannst. Das sind keine leeren Worte, sondern Tatsachen unser Werkstudent Tilo Flasche hat auch während seines Mastersstudiums bei uns angefangen und ist nun ein echter Test-Experte geworden. Wir haben zahlreiche Dax notierte Unternehmen als Kunden aber auch Behörden, dadurch wirst du auf unterschiedlichen Projekten eingesetzt und kannst dadurch Testing-Skills erlenen und den Umgang beim Kunden. Ebenfalls wird der Weiterbildungsgedanke bei Qytera großgeschrieben, bei uns bekommen Studierende die Möglichkeit, in unserer eigenen Akademie IREB und ISTQB Schulungen zu absolvieren und somit offizielle Zertifikate zu erwerben. Somit bieten wir unseren Werkstudenten:innen eine einzigartige Möglichkeit sich fundiertes Praxiswissen anzueigenen und darüber hinaus noch an Schulungen teilzunehmen.

Tilo Flasche Junior Test Automation Engineer

Tilo Flasche ist nach seinem Bachelor in Informatik zu Qytera gekommen und hat sich innerhalb kürzester Zeit als festes und wichtiges Teammitglied etablieren können. Er wird offiziell als Junior Test Automation Engineer eingesetzt und war bei größeren Projekten (z.B. Klett-Verlag) beteiligt. In seiner Zeit bei Qytera konnte Tilo unglaublich viel über die Testautomatisierung lernen. Darüber hinaus konnte er auch an seinen Entwickler-Fähigkeiten arbeiten, denn er hat für die Testautomatisierung zusammen mit Kollegen:innen ein Tool entwickelt, welches im Prozess der Testautomatisierung eingesetzt wird. Tilo hat somit während seines Studiums einen erfolgreichen Einstieg in die Arbeitswelt gemeistert, somit hat er gegenüber seinen Mitstudenten:innen einen erheblichen Vorteil auf dem Arbeitsmarkt gewonnen.

Im folgenden Mitarbeiter Interview kannst du dir ein erstes Bild von Tilo und seinen Tätigkeiten bei Qytera machen

Exclusives Meet Up für Studierende zum Thema Testautomatisierung

Du willst einen ähnlichen Weg wie Tilo einschlagen, dann melde dich für unser Meet Up "Automatisierte Softwaretests - Vom Studierenden für Studierende" an, dort erfährst du alles über die Tätigkeiten der Testautomatisierung für Berufsanfänger bei Qytera. Selbstverständlich wird auch Tilo Flasche an diesem Meet Up teilnehmen und euch seine Erfahrungen auch nochmal live schildern.

In diesem Meet Up erklärt Tilo verschiedene Tools, mit denen Tests für diverse Web-Anwendungen automatisiert werden. Hierfür hat er extra Demoprojekte angefertigt, die den Nutzen der Automatisierung veranschaulichen sollen. Somit soll dieses Seminar einen echten Mehrwert für die Studierenden bieten und euch die Testing-Welt etwas näher bringen

22. September 202122. September 2021 Artikel weiterempfehlen:

Testmanagement skalieren

Qytera News -

Lesedauer: 3 Minuten

Testen ist weiterhin für Softwareentwicklungsprojekte erfolgsrelevant. Damit Tests zu erwarteten Ergebnissen führen, empfiehlt es sich, diese zu planen, zu verfolgen und zu steuern. Diese Aktivitäten werden z.B. nach ISTQB unter dem Begriff Testmanagement gebündelt und in der Rolle Testmanager verankert.

Bild: Segelschiff Testmanagement (Klicken zum Vergrößern) [Quelle: Flickr] × Skalierung der Rolle Testmanager

Mit wachsender Größe von Anwendungen bzw. deren starker Vernetzung werden Planung, Verfolgung und Steuerung von Tests zu einer anspruchsvollen Aufgabe, die entsprechende Skills erforderlich macht. In großen Unternehmen betreffen übergreifende Vorhaben möglicherweise viele Einheiten, die temporär bezüglich des Tests nach einheitlichen Vorgaben koordiniert werden müssen. In solchen Kontexten wird die Notwendigkeit eines Testmanagers, also eines Spezialisten für das Planen, Verfolgen und Steuern von Testaktivitäten dringlicher.

Insbesondere, wenn regulatorische Anforderungen bestehen, werden Testprozesse in Unternehmen vereinheitlicht. In diesem Zusammenhang stellt sich dann die Frage, wie das Testmanagement kontextbezogen skaliert werden kann, d.h. ab welcher Größe eines Projekts oder Vorhabens die Rolle Testmanager sinnvollerweise dediziert zu besetzen ist.

Je nach Unternehmen und Projektgröße wird die Rolle Testmanager auch bei agilen Vorgehensweisen beibehalten. Die exklusive Zuordnung der Testmanagementaktivitäten zu einer Rolle ist aber nur eine Option.

Verschiedene Mitarbeiter in Scrum-Teams können diese Aufgaben alternativ übernehmen. Im klassischen Vorgehen sind z.B. auch Projektmanager in der Lage, die Aufgaben eines Testmanagers zu übernehmen.

Skalierbar sind außer der Rolle Testmanager aber auch Testprozesse und unterstützende Tools.

Skalierung von Testprozessen

Was die Prozesse anbetrifft, so könnte unternehmensweit statt einem Testhandbuch oder einer Teststrategie ein Testprozess-Framework eingesetzt werden, um kontextabhängige Anpassungsmöglichkeiten institutionell zu verankern.

Für große Projekte oder ganze Unternehmenseinheiten kann der Testprozess auf dieser Basis dann übergreifend weiter ausgestaltet werden. Zusätzliche Regelungen und Präzisierungen werden im Kontext vereinbart, regelmäßig angepasst und optimiert und gelten für eine größere Anzahl von Releases. Spezifische Details oder Abweichungen vom übergreifenden Prozess können für einzelne Releases z.B. in Form von Delta-Testkonzepten festgelegt werden.

Wenn der Testprozess risikoorientiert ausgerichtet ist, ist die Skalierung mit dem Fokus auf das Risiko vorzunehmen. Dies setzt allerdings ein höheres Maß an Steuerung voraus und muss entsprechend konsequent umgesetzt werden, damit die gewünschte Fokussierung auch erfolgreich sein kann.

Skalierung von Testmanagementtools

Ein Testmanagementtool, über das die Testprozesse im Unternehmen operativ zugänglich gemacht werden, sollte ebenfalls Skalierung zulassen, d.h. in großen und kleinen Projekten einsetzbar sein, möglichst auf einer einheitlichen Plattform.

Dabei sollten testbezogene Daten für verschiedene Testarten und Teststufen zusammengeführt werden, um bedarfsgerechte Auswertungen zu ermöglichen. Die einheitliche Ablage von Ergebnissen umfasst sowohl manuell wie automatisiert ausgeführte Tests.

Dabei sollte das Testmanagementtool auch mit relevanten Tools in angrenzenden Bereichen des Softwarelebenszyklus integriert sein. Im agilen Umfeld ist dabei oft eine Anbindung an ein Projektmanagementtool wie Jira sinnvoll, entweder in Form eines Add-Ins oder einer gut integrierten Schnittstelle. Mit einer solchen Integration können Anforderungen (z.B. Epics, User Stories) und Arbeitspakete für Entwickler mit Defects und Testausführungen in Zusammenhang gebracht und damit die Rückverfolgbarkeit (Traceability) sichergestellt werden.

Sind in einem Unternehmen DevOps-Prozesse etabliert, sollte der Testprozess als Teilprozess mit weiteren Verfahren integriert werden. So kann es sinnvoll sein, Build-/Deployment und Release-Prozesse mit dem Testprozess zu verschmelzen und ein einheitliches Vorgehen für die stark verwobenen Bereiche im Unternehmen zu etablieren. Dazu gehört dann auch die Bestimmung eines passenden Toolstacks, der neben dem Testmanagementtool z.B. Build-und Deploymenttools umfassen sollte.

Fazit

Mit Tests soll die Qualität von auszuliefernden Produkten sichergestellt werden. Um Testaktivitäten effizient und effektiv steuern zu können, sollten Planung und Steuerung der Testaktivitäten kontextbezogen skaliert werden. Rollenbesetzung, Vorgehensweisen und begleitende Toolunterstützung sind über den Testprozess hinausgehend entsprechend zu schneiden und bei Bedarf z.B. risikoorientiert auszurichten. Das setzt entsprechende Möglichkeiten im Testprozess und bei den eingesetzten Tools voraus.

07. September 202107. September 2021Finden Sie weitere interessante Artikel zum Thema:  Artikel weiterempfehlen:

Selenium Grid mit Docker - Continuous Testing im Continuous Delivery Umfeld

Qytera News -

Lesedauer: 15 Minuten

Im Rahmen einer Reihe von Blogartikeln zum Thema Continuous Testing im Continuous Delivery Umfeld starten wir hier mit einem Blog zu Selenium Grid mit Docker.

Ein entscheidendes Ziel von Continuous Testing ist es, dem Kunden schneller Softwareanpassungen getestet bereitstellen zu können und somit den veränderten Erwartungen gerecht zu werden. Um dies zu verwirklichen gibt es verschiedene Möglichkeiten. Ein effektiver Weg ist die Kombination aus Selenium Grid und Docker.

In diesem Artikel erklären wir Ihnen

  • was die beiden Tools machen
  • warum sie zusammen sehr sinnvoll sind
  • wie man sie installiert
  • erste Schritte (Starten Hub und Nodes)
  • was ist Docker-compose
  • wie funktioniert die Umsetzung (Beispiel)
Was ist Continuous Testing und Continuous Delivery
  • Continuous Testing

Continuous Testing ist der Prozess der Durchführung automatisierter Tests als Teil der Delivery-Pipeline (CI/CD) um kontinuierlich alle Veränderungen des Codes zu überprüfen, damit die Anforderungen (funktionale als auch nicht-funktionale (Lasttests und Performancetests)) validiert werden können.

  • Continuous Delivery

Continuous Delivery (CD) ist ein Software-Entwicklungs-Ansatz, welcher mit einer Sammlung von Prozessen, Techniken und Werkzeugen das Deployment (Softwareauslieferungsprozess) weitgehend automatisiert und kontinuierlich verbessert.

Zu den Techniken zählt man Continuous Integration (CI), Testautomatisierung und kontinuierliche Installation.

Hier eine Veranschaulichung einer CI/CD-Pipeline:

Bild: Testing Pipeline (Klicken zum Vergrößern) [Quelle: Qytera]

× Was ist Selenium bzw. Selenium GridSelenium

Möchte man Webanwendungen automatisiert testen, gibt es hierfür unterschiedliche Möglichkeiten. Eine sehr gute Wahl ist das Framework Selenium. Dieses inzwischen weit verbreitete, kostenfreie Tool gehört zu den bekanntesten quelloffenen Testwerkzeugen.

Mit Selenium kann man Interaktionen mit der Webanwendung aufnehmen, Automatisierungsskripts implementieren und diese beliebig häufig in Tests wiederverwenden. Man kann auch kompliziertere Vorgänge damit durchführen (z.B. in das Backend einloggen, erstellen von Datensätzen, u.v.m.).

Selenium Grid

Selenium Grid gehört zu der Selenium Suite und ist ausgerichtet auf den gleichzeitigen Test auf verschiedenen Browser-Instanzen. Somit kann durch Parallelität bei der Testdurchführung viel Zeit gespart werden.

Die Architektur von Selenium Grid wird Hub und Node-Architektur genannt. Dabei ist der Hub das Zentrum und nur auf einem Computer vorhanden und in ihn werden die Tests geladen. Die Nodes (Knoten) entsprechen den Selenium-Instanzen. Sie führen die Tests aus, welche auf dem Hub geladen wurden. Die Systeme mit den Nodes können auf anderen Plattformen laufen, als der Hub.

Bild: Selenium Hub. (Klicken zum Vergrößern) [Quelle: Qytera]

× Was ist Docker

Das Docker Tool erleichtert es einem mit Hilfe von Containern eine Anwendung zu erstellen, bereitzustellen und auszuführen. Mit so einem Container kann ein Entwickler oder Test Automation Engineer eine Anwendung mit allen erforderlichen Teilen (z. B. Bibliotheken und anderen Abhängigkeiten) zusammenpacken und als ein Paket versenden. Auf diese Weise kann der Entwickler sicherstellen, dass die Anwendung auf jedem anderen Linux-Betriebssystem ausgeführt werden kann, unabhängig von der benutzerdefinierten Einstellung.

Docker hat ein ähnliches Prinzip eines abgeschlossenen Systems wie eine virtuelle Maschine. Virtuelle Maschine haben ein vollständiges Betriebssystem mit einer eignen Speicherverwaltung und zugehörigem Gerätetreiber. In einer virtuellen Maschine werden wertvolle Ressourcen für das Gast-Betriebssystem und den Hypervisor emuliert, wodurch es möglich ist, viele Instanzen eines oder mehrerer Betriebssysteme parallel auf einem einzelnen Rechner (oder Host) auszuführen. Jedes Gast-Betriebssystem wird als einzelne Entität vom Host-System ausgeführt.

Auf der anderen Seite werden Docker-Container mit Docker-Engine ausgeführt und nicht mit dem Hypervisor. Container sind daher kleiner als VMs und ermöglichen einen schnelleren Start mit besseren Performance.

Im Vergleich zu virtuellen Maschinen können Container schneller und weniger Ressourcen-intensiv sein. Bei einer virtuellen Maschine kann es einige Minuten dauern bis die Anwendungen gestartet sind, wobei ein Container in wenigen Sekunden erstellt und gestartet werden kann.

Installation (beschrieben für Windows)

Damit Docker für Windows richtig funktioniert, benötigt die Maschine:

  1. 64-Bit-Betriebssystem
  2. Windows 7 oder höhere Version (ebenfalls möglich mit MacOS und Linux)
  3. Hyper-V installiert und funktionsfähig (Standardmäßig normalerweise schon in Funktion)
  4. Virtualisierung aktiviert (Zu sehen und aktivieren im BIOS, falls nicht standardmäßig eingestellt)

Link: Docker für Windows 10, MacOS, Linux

Die Installation von Docker selbst ist einfach und für weitere Information kann man der Docker Installations-Dokumentation folgen. Es ist jedoch darauf zu achten, dass bei der Installation die Option "Windows-Container" ausgewählt wird.

Die Installation fügt dem Computer die folgende Software hinzu:

Docker Client für Windows
Docker Machine für Windows Terminals
Docker Compose
Docker Toolbox-Verwaltungstool und ISO
Oracle VM VirtualBox
Kitematic, the Docker GUI
Docker QuickStart shell
Git MSYS-Git UNIX-Tools

Überprüfung der Installation

Das Installationsprogramm fügt Docker Toolbox, VirtualBox und Kitematic dem Anwendungsordner hinzu.

Um ein vorkonfiguriertes Docker Toolbox-Terminal zu starten, klicke auf das Docker QuickStart-Symbol. Wenn das System eine Benutzer-Kontensteuerung anzeigt, damit Virtual-Box Änderungen an Ihrem Computer vornehmen kann, dann wählen Sie bitte Ja. Das Terminal führt mehrere Dinge aus, um Docker Toolbox für Sie einzurichten. Wenn es fertig ist, zeigt das Terminal die Eingabeaufforderung $ an.

Bild: Docker Toolbox. (Klicken zum Vergrößern) [Quelle: Qytera]

×

Lassen Sie uns ein Beispielprogramm hello-world ausprobieren. Geben Sie den folgenden Befehl in der Eingabeaufforderung ein:

docker run hello-world

Dies sollte das sehr kleine hello-world Image herunterladen und eine Meldung mit "Hello from Docker" anzeigen, d.h. Docker funktioniert einwandfrei.

Im Hintergrund ist viel passiert, um Hello World zum Laufen zu bringen. Hier sind einige dieser Schritte.

  1. Die Anwendung Docker-Client wurde über den Docker-Befehl aufgerufen.
  2. Der Aufruf „docker run hello-world“ wurde ausgeführt.
  3. In diesem Fall wurde Docker Client aufgefordert eine Instanz eines Docker-Image mit dem Titel hello-world zu erstellen. Woher hat Docker dieses Image? Docker Client sucht in den lokalen Repositories nach dem Image mit dem Titel „hello-world“, kann es aber nicht finden. Daher sucht Docker nun im Internet in einem öffentlichen Repository von Docker Images, welches von Docker selbst gehostet wird. Dort ist Docker nun fündig geworden und hat es heruntergeladen, installiert und die Instanz gestartet.
Selenium Grid mit Docker Containern

Normalerweise müssen wir beim Konfigurieren des Selenium Grids mehrere virtuelle Maschinen als Node anlegen und jede einzelne Node mit dem Hub verbinden. Wenn wir ein normales Grid erstellen, müssen wir die Selenium Server JAR Datei herunterladen und diese JAR-Datei auf jedem Computer ausführen, auf dem wir das Selenium Grid einrichten wollen. Dies ist teuer und manchmal eine zeitaufwendige Aufgabe für die Tester. Docker hilft uns jedoch, kostenintensive und zeitaufwendige Probleme zu lösen.

Bild: Docker Mobile. (Klicken zum Vergrößern) [Quelle: Qytera]

× Installiere die Docker Images

Wie beim normalen Grid müssen wir bei der Konfiguration des Selenium Grids mit dem Docker die Hub- und Browser-Nodes in unserem Docker-Container installieren. Später können wir den Hub und die Knoten aus diesen Docker-Container starten.

Daher müssen wir zuerst die Hub- und Node Images im Docker installieren.

  • Selenium/hub
  • Selenium/node-chrome
  • Selenium/node-firefox-debug (wichtig für nachvollziehen)
  • Selenium/node-chrome-debug

Die nächste Frage ist, wie man diese Images findet. Um diese Images zu finden, geht man zum Docker Hub und sucht nach einem Image mit dessen Namen. Diese Images kann man auch mit der Eingabe des Search-Befehls finden, wie unten angezeigt.

docker search Selenium/hub

Bild: Selenium Hub Docker. (Klicken zum Vergrößern) [Quelle: Qytera]

×

Man findet auf Docker Hub, bei der Suche nach Selenium/hub folgende Ergebnisse:

Bild: Docker Screenshot 1 (Klicken zum Vergrößern) [Quelle: Qytera]

×

Hier werden alle Image Repositories angezeigt, die wir für Selenium Hub haben. Hier müssen wir auf das Image klicken, das die größte Anzahl von Pulls aufweist. Es wird uns helfen, unseren Code ohne Fehler auszuführen.

Sobald wir auf ein Image klicken, sehen wir ein neues Fenster (siehe unten).

Bild: Docker Screenshot 2 (Klicken zum Vergrößern) [Quelle: Qytera]

×

So kann man die anderen Images in Docker Hub suchen und entsprechende Infos holen.

Hier kann man jetzt einzelne Images aus der Docker Repository runterladen. Bitte führe diese einzelne Kommandos aus.

  1. docker pull selenium/hub
  2. docker pull selenium/node-firefox
  3. docker pull selenium/node-firefox-debug
  4. docker pull selenium/node-chrome
  5. docker pull selenium/node-chrome-debug

Nachdem wir alle Images herunterladen haben, können wir sie mit dem folgenden Befehl überprüfen.

docker images

Selenium Hub starten

Wir starten zuerst Selenium Hub aus dem Docker Container. Dazu benötigen wir folgenden Befehl.

docker run -d -p 4444:4444 --name selenium-hub selenium/hub

Um einen Container im getrennten Modus zu starten, verwenden wir die Option -d oder -d=true

Selenium Hub wird jetzt gestartet. Um dies zu überprüfen, müssen wir folgender Link im Browser eingegeben.

http://localhost:4444/grid/console

Beim Starten von Selenium Hub können Fehler auftreten. Verwenden Sie die Befehle "docker stop $(docker ps -aq)" und "docker rm $(docker ps -aq)", um alle Container zu stoppen und zu löschen. Dann starten Sie noch einmal.

Selenium Nodes starten

Es wird jetzt Chrome Node und Firefox Node gestartet und mit Selenium Hub verbunden.

Befehle zum Ausführen von Chrome Node von Docker:

Bild: Docker Screenshot 5 (Klicken zum Vergrößern) [Quelle: Qytera]

×

Jetzt verbinden wir Debug Nodes mit Hub.

  • docker run -d -P -p 5901:5900 --link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-chrome-debug
  • docker run -d -P -p 5902:5900 --link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-firefox-debug

Nachdem die Debug Nodes in Chrome und Firefox ausgeführt sind, kann man den Browser aktualisieren. Nun findet man dort die beide Nodes.

Bild: Docker Screenshot 6 (Klicken zum Vergrößern) [Quelle: Qytera]

×

Wenn bei der Ausführung von Images ein Fehler auftritt, sollte man das Image erneut installiert und erneut von Docker aus ausführen. Als nächstes Schritt beobachten wir die Debug-Nodes mit VNC-Viewer. Dafür brauchen wir einen VNC-Viewer. realvnc download Wir brauchen die Portnummern der Chrome- und Firefox-Debug-Node um diese Nodes mit VNC-Viewer zu verbinden.

docker ps -a

Portnummer 5901 für Chrome Node und Port 5902 für Firefox Node sind definiert. Wir rufen jetzt den installierten VNC Viewer auf und geben die Daten in folgendem Format ein: Hub-URL:Port Nummer z.B. 127.0.0.1:5901 (5901 für Chrome & 5902 für Firefox) Das vordefinierte Passwort ist secret

Nach dem Klick auf den Connect-Button fragt der VNC Viewer nach einem Passwort. Das Passwort ist secret. Danach sieht man ein Fenster wie bei einer VM (siehe unten)

Bild: Docker Screenshot 8 (Klicken zum Vergrößern) [Quelle: Qytera]

×

Ebenso können wir das Gleiche im Firefox-Browser machen, indem wir den VNC-Viewer verwenden. So haben wir unsere Docker Installation mit Selenium Grid abgeschlossen.

Docker-compose YAML Datei

Wenn unsere Docker Anwendung mehrere Container enthält (z. B. komplexe Anwendungen mit einem Web Server, einer Datenbank), dann ist es umständlich jedes Mal auf Kommandozeilen-Ebene die Funktionen auszuführen.

Docker-compose löst dieses Problem, indem man in einer einzelnen YAML Datei die Multi Container Anwendung mit Abhängigkeiten definiert. Man kann es mit einem einzigen Befehl starten und stoppen.

Wir haben die Möglichkeit, den Prozess in der YAML-Datei zu definieren und mit dem Befehl docker-compose auszuführen. Als Beispiel wurde ein YAML Datei angelegt:

Bild: Docker Screenshot 9 (Klicken zum Vergrößern) [Quelle: Qytera]

×

Dafür erstellt man einen neuen Ordner, unter diesem Ordner legt man die docker-compose.yml Datei zusammen mit dockerfile ab (man kann als Dateiendung sowohl .yml als auch .yaml verwenden, beide sind funktionstüchtig).

Mit docker-compose kann man diese Einstellung ausführen. Durch das Kommando docker-compose up -d werden die Images für Hub, Chrome und Firefox Nodes von Docker abgerufen und ein Instanz jedes verfügbaren Browsers gestartet. Standardmäßig wird die neueste Versionen verwendet wenn wir die Versionsnummer am Ende der Image weglassen.

Vor dem Ausführen des folgenden Codes muss sichergestellt werden, dass keiner der in der docker-compose.yaml Datei angegebenen Container schon gestartet ist. Dafür kann entweder jeder Container einzeln mit dem Befehl "docker container kill " und anschließend "docker container rm " gelöscht werden oder es kann Docker neu gestartet werden, sodass auch alle Container beendet werden. Danach kann folgender Befehl ausgeführt werden:

$ docker-compose up -d

Selenium-Grid mit Docker - Ein Beispiel

Anbei ist ein Beispiel Code. Dieser wurde angepasst, damit man den Code nicht lokal sondern auf Selenium Nodes ausführen kann.

Bild: Docker Screenshot 10 (Klicken zum Vergrößern) [Quelle: Qytera]

×

Die vorgenommen Änderungen sind unten aufgeführt und beschrieben.

Details

DesiredCapabilities bietet die Möglichkeit, die Eigenschaften des Browsers festzulegen. So stellen wir Browsername, Plattform und Version des Browsers ein:

  1. DesiredCapabilities capability = DesiredCapabilities.chrome(); // Für Firefox --> DesiredCapabilities.firefox
  2. capability.setBrowserName("chrome"); // Für Firefox --> setBrowserName("Firefox")

Wenn die Tests im lokalen Browser ausgeführt werden, dann kann man diese Driver verwenden z.B. firefoxdriver, iedriver, chromedriver. Weil wir die Tests auf dem Browser des Remote-Computers ausführen, verwenden wir RemoteWebDriver.

  1. driver = new RemoteWebDriver(new URL(seleniumHubURL), capability); // seleniumHubURL--> Selenium hub URL z.B. http://127.0.0.1:4444/wb
  2. driver.get("http://selenium.webtesting.eu/");

assertTrue Assertion wird im Allgemeinen für die boolesche Bedingung "True" verwendet. Wenn es "False" zurückgibt, wird es fehlschlagen und die Software-Ausführung von dieser spezifischen Methode übersprungen.

assertTrue(driver.getTitle().startsWith(title)); // title --> "Selenium"

Weiterhin muss sichergestellt werden, dass alle Browser nach dem Ausführen der verschiedenen Tests wieder korrekt geschlossen werden. Bei jedem Test wird ein neuer RemoteWebDriver erstellt, der nach dem Ausführen eines Testes wieder gelöscht (driver.quit()) werden muss. Wird der Driver nicht korrekt gelöscht, ist ein zweites Ausführen des Testes nicht möglich, da eine nicht abgeschlossene Instanz des Browsers schon in dem Container läuft. Ein erneutes Ausführen wird dadurch blockiert. Der Code wurde dahingehend angepasst, dass der Driver nach jedem Test geschlossen wird.

Bild: Docker Screenshot 11 (Klicken zum Vergrößern) [Quelle: Qytera]

× Epilog

Sie sind nun gerüstet für einen gelungenen Start in die Welt des parallelen automatisierten Testens. In weiteren Blogs wollen wir auf andere interessante Gebiete von Continuous Testing im Continuous Delivery Umfeld eingehen. Es wäre schön Sie dort wieder begrüßen zu dürfen.

29. Juli 202129. Juli 2021 Artikel weiterempfehlen:

Digitale Verwaltung: Open Source, Offene Standards und Softwarequalität

Qytera News -

Lesedauer: 7 Minuten

Die aktuelle COVID-19 bzw. SARS-CoV-2-Pandemie hat die Themen Digitalisierung und Digitale Bildung in fast allen Bereichen des täglichen Lebens enorm beschleunigt. Beispiele hierfür sind neue Bezahlverhalten (Kontaktlosen Bezahlen mit NFC-Funktion), Nutzung von Video-Konferenzen, Homeoffice, Homeschooling, etc.

Die deutsche Industrie sowie die digitale Verwaltung (E-Government) stellen in einer Rekordzeit kontinuierlich neue Online Dienste zur Verfügung. Das ist eine Chance für den Standort Deutschland und Made in Germany!

Softwarequalität beschränkt sich leider noch sehr häufig auf die Formel: Hauptsache, es läuft! Aber in Zeiten von Spotify, Google, Facebook und Co. sind die Erwartungen von Kund:innen und Bürger:innen in Bezug auf Funktionalität, Verfügbarkeit und Usability (Benutzbarkeit) enorm gestiegen.

Aktuelle Performance-Probleme bei der Erreichbarkeit von Impfzentren für die Terminbuchung, das Ausstellen des digitalen Impfnachweis durch die Apotheken, bei Lernplattformen und Schulportalen sowie bei Video-Konferenzen zeigen die Dringlichkeit des Themas.

Bild: Corona Screenshot (Klicken zum Vergrößern) [Quelle: Qytera]

× Manuell oder automatisiert testen?

Bei vielen Webprojekten hören wir oft folgende Aussagen:

  • Bei den häufigen, oft grundlegenden Änderungen lohnt sich die Testautomatisierung nicht.
  • Kommerzielle Tools sind viel zu teuer in Anschaffung und Softwarepflege bzw. Wartung.
  • Open Source kann nicht viel und ist viel zu kompliziert (“nur für Bastler”).
  • Wir haben nicht genügend Zeit für die Testautomatisierung, lasst uns einfach manuell und explorativ testen.

Bild: Testing Bild. (Klicken zum Vergrößern) [Quelle: Qytera]

×

Testautomatisierung ist kein Ersatz des manuellen Tests! Durch Testautomatisierung wird Ihr Testprozess aber effektiver. Automatisierte Tests bieten die Möglichkeit, Tester:innen von repetitiven Aufgaben zu befreien. So kann Zeit und Geld gespart werden. Testautomatisierung hilft dabei, in immer kürzeren Zeiträumen eine Sicherung der Softwarequalität vorzunehmen. Denn oft reichen die kurzen Entwicklungszyklen nicht mehr aus, die Neuentwicklungen wie auch die bestehenden Bestandteile regressiv zu testen.

Der Test Automation Engineer

In dieser Rolle sind sowohl solides Wissen aus dem Testbereich wie auch Praxiserfahrung aus der Softwareentwicklung vertreten; genau das Wissen und Können, das für die Testautomatisierung benötigt wird!

Die Aufgaben befinden sich zwischen den Bereichen und erfordern Wissen aus beiden: ein Tester weiß, wie getestet wird, Testfälle geschrieben werden, Tests auszuwerten sind und eine Entwicklerin, wie gute Software programmiert wird. Also werden beide Eigenschaften benötigt, die im Test Automation Engineer vereint sind.

Qualität ist kein Zufall!

Viele Unternehmen und Behörden fehlt eine Teststrategie beim Testen der Online Dienste und es wird sehr häufig noch manuell getestet. Unternehmen wie Apple, Spotify und Google setzen auf Open Source Tools wie Selenium WebDriver bei der Automatisierung von Softwaretests. Seit 2018 ist die API ein offizieller W3C-Standard. Viele proprietäre Lösungen basieren wiederum auf Selenium. Innovation kann leider nicht in einem APP Store gekauft werden.

Um eine gute Softwarequalität zu bekommen, benötigen Sie einen strukturieren Testprozess und qualifizierte Software Tester.

Qualität ist kein Zufall!

Bild: Test Automation Pyramide. (Klicken zum Vergrößern) [Quelle: Qytera]

×

Die klassische Testpyramide (nach Mike Cohn) zeigt die sinnvollsten Bereiche der Testautomatisierung: Die Basis bieten wie üblich die Unittests. Diese werden sehr schnell durchgeführt und auch die Entwicklung ist durch die Simplizität der zugrundeliegenden Prozesse meist schnell gemacht. Die Integrationstests – im Bereich der Komponenten- oder Systemintegration – integrieren die neueste Programmierung erstmals automatisiert und dürfen deshalb auf keinen Fall vernachlässigt werden. Eine Amortisierung von automatisierten Systemtests lohnt sich vor allem bei agilen Projekten durch die häufige Durchführung aufgrund von Regressionstests, aber auch in klassisch geführten Projekten kann schon nach 3-4 Ausführungen ein Return on Investment (ROI) eintreten.

Nicht in der Testpyramide enthalten, aber auch sehr wichtig und teils sehr gut automatisiert testbar, sind die nicht- funktionalen Tests. Vor allem Last- und Performancetests können sehr gut automatisiert getestet werden (z.B. mit Apache JMeter).

Warum Open Source so wichtig ist

Open Source ist nicht nur eine Beschreibung für Software, sondern verkörpert auch Zeitgeist, Spirit und Lebensgefühl.

Open Source bezeichnet kostenfreie Software, deren Quellcode nicht nur öffentlich ist, sondern auch von Dritten kopiert, geändert und genutzt werden kann. Open Source kann von unabhängige Stellen auditiert und kontrolliert werden. Somit werden Schwachstellen transparent und es zeigt sich, dass diese auch schnell gelöst werden.

Open Source stärkt somit die digitale Souveränität und Unabhängigkeit von Behörden und Unternehmen. So wird auch eine Abhängigkeit von Softwareherstellern verringert werden. Gerade in einer globalisierten Welt werden durch Übernahmen und Fusionen von heute auf morgen die Entwicklung von Softwareprodukten eingestellt oder in die Cloud verlagert.

Vorteile von Open Source für die digitale Verwaltung und Unternehmen

Flexibilität, Integrationsfähigkeit, Innovationsfähigkeit und Sicherheit sprechen für Open Source Software.

  • Sicherheit: Die Daten verbleiben in den Rechenzentren, in der IT-Infrastruktur der Ämter, in den Behörden und Unternehmen.
  • Skalierbarkeit: Rechenleistung und Speicher können schnell eingerichtet und jederzeit flexibel angepasst werden.
  • Kein Vendor Lock-In: Lösungen in bewährten Cloud Technologien wie Ansible und Terraform bieten digitale Souveränität und Unabhängigkeit.
  • Infrastructure as Code: Somit kann die Cloud-Plattform relativ schnell und sicher gewechselt werden (z.B. von Amazon AWS nach Microsoft Azure nach Open Telekom Cloud).
Anforderungen an IT-Dienstleister - Generalist oder Spezialist?

Was zeichnet einen IT-Dienstleister aus, der sich als Partner für ein Open Source Projekt anbietet? Die technische Expertise im Open Source Bereich ist unerlässlich

In der heutigen schnelllebigen Zeit ist es eine besondere Herausforderung für alle Unternehmen, die Qualität und Effizienz bei der Entwicklung von Softwaresystemen kontinuierlich einzuhalten und zu steigern. Hier spielt der Einsatz von Testautomatisierung eine immer größere Rolle, da durch die Automatisierung der Tests viel kostbare Zeit und Ressourcen eingespart werden können. Testabläufe werden effizienter, umfassender und die Qualität der Entwicklung steigt. Ein sehr gutes Beispiel, wie das gelingen kann, ist Google mit Android, welches auf Linux setzt.

Erfahrung

Achten Sie auf Bewertungen des IT-Dienstleisters im Internet und die Anzahl der veröffentlichen Achten Sie auf Bewertungen des IT-Dienstleisters im Internet und die Anzahl der veröffentlichen Blogbeiträge. In der IT-Branche gibt es viele Themen und Tools. Die meisten IT-Consulting-Firmen behaupten, die Besten in allem zu sein. Das trifft in der Realität jedoch nicht zu. Um sicher zu stellen, dass Sie es mit einem erfahrenen IT-Berater zu tun haben, müssen Sie unbedingt auf Zertifikate und Bewertungen achten. Legt das IT- Consulting viel Wert auf hohe Qualität, sollte die Expertise mit Zertifizierungen untermauert sein. Fragen Sie aktiv nach der Qualifikation in dem jeweiligen Gebiet Blogbeiträge. In der IT-Branche gibt es viele Themen und Tools. Die meisten IT-Consulting-Firmen behaupten, die Besten in allem zu sein. Das trifft in der Realität jedoch nicht zu. Um sicher zu stellen, dass Sie es mit einem erfahrenen IT-Berater zu tun haben, müssen Sie unbedingt auf Zertifikate und Bewertungen achten. Legt das IT- Consulting viel Wert auf hohe Qualität, sollte die Expertise mit Zertifizierungen untermauert sein. Fragen Sie aktiv nach der Qualifikation in dem jeweiligen Gebiet.

Zusammenfassung

Wir sind der Meinung, dass die deutsche Wirtschaft sowie die Digitale Verwaltung mehr in Europäische IT-Lösungen investieren sollte, noch besser in Open Source Software. Open Source macht erst eine digitale Souveränität möglich und ist der Innovationsmotor für die digitale Transformation. Open Source ist die Zukunft!

21. Juli 202121. Juli 2021 Artikel weiterempfehlen:

Was ist Jira? - Jira im Überblick

Qytera News -

Lesedauer: 4 MinutenWas ist Jira?

Jira ist eine Webanwendung zur Verwaltung von Prozessen, Aufgaben und zum operativen Projektmanagement. Eingesetzt wird Jira vor allem in der Softwareentwicklung, findet jedoch mittlerweile auch Anklang in anderen Bereichen vieler Unternehmen.

Verwalten von agilen Projekten

Eine der populärsten Anwendungsfälle von Jira ist das Verwalten von agilen Projekten. Hierfür stellt Jira ein Kanban-Board bereit, mit dem sich Aufgaben und deren Status verwalten lassen. In der Philosophie von Jira zeichnet sich eine Aufgabe, oder auch Issue genannt, durch folgende Merkmale aus: Eine Aufgabe ist einem oder mehreren Teammitgliedern zugeordnet, besitzt einen Status, eine Priorität und kann durch die Teammitglieder kommentiert werden. Alle Änderungen an einer Aufgabe werden aufgezeichnet und können somit nachvollzogen werden. Die Nutzer:innen können ebenfalls Aufgaben mittels Aufgabentypen klassifizieren.

Darstellung von Aufgaben mittels Kanban-Boards

Ein Kanban-Board ist eine visuelle Darstellung von Aufgaben. Die grundlegende Idee eines Kanban-Boards ist es, Aufgaben in verschiedenen Spalten zu organisieren und somit die Übersichtlichkeit zu erhöhen. Eine weitverbreitete Praxis ist hierbei, dass die Spalten den Fortschritt der Aufgabe aufzeigen und dass eine Aufgabe während ihrer Bearbeitung von der ersten Spalte aus in mehreren Zwischenschritten in die letzte Spalte des Board wandert. In der ersten Spalte werden zunächst Ideen für Aufgaben gesammelt, die zukünftig bearbeitet werden sollen, jedoch noch nicht weitergehend definiert worden sind. Wird eine Aufgabe konkretisiert, wandert die Aufgabe eine Spalte weiter. Der nächste Schritt besteht darin, dass die Aufgabe einem oder mehreren Mitarbeiter:innen zugeteilt wird und eine Frist bis zur Fertigstellung der Aufgabe definiert wird. Hierbei wird die Aufgabe in die dritte Spalte verschoben. Nach dem Abschluss der Aufgabe wandert diese in die vierte Spalte des Boards. In dieser Spalte werden Aufgaben gesammelt, die von den Bearbeiter:innen als abgeschlossen betrachtet werden, jedoch noch von anderen Mitarbeiter:innen reviewet werden müssen. Schlussendlich wandert die Aufgabe nach dem Review in die letzte Spalte und gilt somit als endgültig abgeschlossen.

Jira stellt ein solches Kanban-Board als Webanwendung bereit. Durch farbliche Markierungen können Kategorien, Prioritäten und andere Attribute der Aufgabe kenntlich gemacht werden. Weiterhin erlaubt das Kanban-Board von Jira ein Tracking der Aufgaben. Die Verantwortlichen können somit genau nachvollziehen, wann und von wem eine Aufgabe bearbeitet wurde und wie lange die Person hierfür benötigt hat.

Bild: Jira Kanban Board. (Klicken zum Vergrößern) [Quelle: Qytera]

×

Die Anordnung der Spalten nach dem Fortschritt der Aufgaben ermöglicht es Projektleiter:innen zudem, Engpässe frühzeitig zu erkennen. Sammeln sich zu viele Aufgaben in der Spalte für die aktuell bearbeiteten Aufgaben, kann das Projektmanagement hierauf reagieren und Aufgaben umpriorisieren oder verschieben. Auch für die anderen Mitarbeiter:innen bietet ein Kanban-Board eine gute Übersicht über den aktuellen Status des Projektes.

Um Aufgaben effizienter zu planen, hat sich eine Methode der Punktevergabe für Aufgaben etabliert. Hierbei werden Aufgaben sogenannte Story Points zugeteilt, die den Aufwand dieser Aufgaben beschreiben. Je mehr Story Points eine Aufgabe erhält, desto mehr Zeit sollte für diese eingeplant werden. Diese Methode bietet der Projektleitung eine gute Möglichkeit, die verfügbaren Kapazitäten in einem Projektsprint möglichst effizient zu nutzen.

Roadmaps

Jira bietet neben Kanban-Boards auch die Möglichkeit, einen umfassenderen Überblick über den Fortschritt des Projektes mittels Roadmaps zu geben. In Roadmaps werden allgemeine Ziele des Projektes festgehalten. Aufgaben aus den Scrum-Boards lassen sich diesen Zielen zuordnen. Somit kann der Fortschritt des Ziels erfasst werden. Projektmanager:innen können somit nachvollziehen, welche Ziele im Zeitplan erreichbar sind und für welche Ziele eventuell mehr Ressourcen erforderlich sind.

Bild: Jira Road Map. (Klicken zum Vergrößern) [Quelle: Qytera]

× Integration mit anderen Atlassian-Tools

Jira ist nicht nur auf die Verwaltung von Aufgaben beschränkt. Durch seine auf Erweiterbarkeit ausgelegte Struktur existieren eine Vielzahl von Plugins, welche die Funktionalität von Jira erweitern. Viele dieser Plugins nutzen die Fähigkeit von Jira, eigene Aufgabentypen zu erstellen und ermöglichen somit eine Interoperabilität mit den nativen Jira-Funktionen und anderen Plugins.

Denken - Change-Prozess

Jira lässt sich mit anderen Tools von Atlassian integrieren. Hierzu zählen u.a. das Wiki-System Confluence, das Git-Repository-Tool Bitbucket, das CI/CD-Tool Pipelines sowie das Tool Atlassian DevOps.

Testmanagement mit Jira Xray

Ein populäres Plugin zum Management von Testprojekten ist das Xray-Plugin für Jira. Hierfür empfehlen wir Ihnen unseren Blogartikel zu diesem Thema.

Fazit

Jira bietet Ihnen eine sehr umfangreiche Lösung zum Managen von agilen Projekten an und kann durch seine Funktionen wie Kanban-Boards und Roadmaps sowie seine vielen Erweiterungsmöglichkeiten ein sehr nützliches Tool für Ihre Softwareentwicklungsprojekte bzw. Testmanagementprojekte sein.

20. Juli 202120. Juli 2021 Artikel weiterempfehlen:

Die Selenium A4Q Tester Zertifizierung

Qytera News -

Lesedauer: 2 Minuten

Die A4Q Selenium Tester Zertifizierung ist führend auf ihrem Gebiet und bescheinigt Ihnen ein nachgewiesenes Verständnis und Fähigkeiten im Aufsetzen von Testumgebungen mit dem Selenium WebDriver. Alle Absolventen:innen sind nach der Beendigung eines solchen Selenium Certified Testers Kurs in der Lage Selenium WebDriver Tests ohne Aufsicht zu erstellen und auszuführen. Ebenfalls verfügen die Kursteilnehmer:innen über tiefergehendes Wissen in der Testautomatisierung, in der Steuerung der GUI-Element und in der Dokumentation der Testergebnisse.


Vorteile der A4Q Tester Zertifizierung

Bei der A4Q Zertifizierung handelt es sich, um eine unabhängige, international anerkannte Zertifizierung. Dadurch bringt ein Zertifikat für jeden Arbeitgeber die Sicherheit mit, dass die Person über fundierte und umfangreiche Kenntnisse auf dem Gebiet der Automatisierung mit Selenium Webdriver verfügt. Somit wird eine gleichbleibende und hohe Qualität der Fähigkeiten der Absolventen zertifiziert.

Folgende Lerninhalte werden in allen A4Q Selenium Lehrgängen vermittelt:

  • Aufsetzen von Selenium WebDriver-Tests
  • Erstellen von verwertbaren Testautomatisierungslösungen
  • Richtige Auswahl der nötigen Testautomatisierungs-Tools und Implementierung
  • Eigenständige Implementierung von Selenium WebDriver Skripten
  • Funktionale Durchführung von Webanwendungstests und das Einfügen wartbarer Skripte

Sie wollen auch alle diese Themengebiete erlernen und selbstständig durchführen können? Dann melden Sie sich jetzt hier für unsere A4Q Selenium Foundation Level Schulung an!

Abschlussprüfung

Unsere Selenium Foundation Tester Prüfung basiert auf dem offiziellen und akkreditieren A4Q Selenium Tester Foundation Lehrplan. Somit sind alle im Kurs vermittelten, Lerninhalte relevant für die Prüfung. Die offizielle Prüfung besteht aus 40 Multiple-Choice Fragen, hier erhält jede richtige Antwort einen Punkt, Fehlerpunkte gibt es nicht. Der Kurs gilt als bestanden, wenn mindestens 65% der Fragen richtig beantwortet wurden. Insgesamt müssen also 26 Fragen korrekt beantwortet worden sein, damit Studierenden das Zertifikat ausgestellt werden kann. 

Die Prüfungsdauer beträgt in der Regel für alle Teilnehmer:innen 60 Minuten, hat ein Bewerber jedoch eine andere Muttersprache als die Prüfungssprache, dann steht laut Regelwerk eine Zeitverlängerung der Prüfung von 15% zu, das sind 15 Minuten. Die A4Q Selenium Tester Prüfung darf nur bei einem akkreditieren Partner abgelegt werden, da nur dieser in der Lage ist die Prüfungsergebnisse richtig zu beurteilen und letztendlich den Teilnehmern ihre Zertifizierung zur verleihen. Wir bei Qytera sind offiziell anerkannter Partner und können den vollständigen A4Q Selenium Foundation Kurs samt Abschlussprüfung durchführen und die Zertifizierung verleihen.

Der A4Q Selenium Tester Foundation Kurs ist der einzige auf dem Markt, der über eine Zertifizierung verfügt. Aller anderen Selenium Kurse ohne die A4Q-Bezeichnung sind nicht offiziell anerkannt und bieten somit keinen richtigen Nachweis über die erworbenen Fähigkeiten.

Aufbau der Lerninhalte

In der A4Q Selenium Schulung sind die Lerninhalte immer gleich aufgebaut, für jedes der vier Lernfelder ist eine vorgeschriebene Zeit gegeben, in der der Lerninhalt vermittelt werden muss. Insgesamt beträgt die Dauer des Lehrgangs 16,75 Stunden. In den folgenden Abschnitten erfolgt eine detaillierte Aufteilung der Lernfelder mit den genauen Zeitangaben:

  • Lernfeld 1: Basics der Testautomatisierung, Dauer: 105 Minuten.
  • Lernfeld 2: Webanwendungen für die Testautomatisierung, Dauer: 195 Minuten.
  • Lernfeld 3: Anwendung des Selenium WebDrivers, Dauer: 495 Minuten.
  • Lernfeld 4: Testskripte erstellen, Dauer: 225 Minuten.

Fazit

Die Schulung zum A4Q Selenium Foundation Tester vermittelt Ihnen grundlegende Fähigkeiten in der Testautomatisierung und in der Erstellung von Testumgebungen mit dem Selenium WebDriver, darüber hinaus erhalten Sie einen anerkannten Nachweis darüber, dass Sie diese Fähigkeiten verstehen und beherrschen, der auf der international anerkannt ist. Der komplette Lehrgang dauert 16,75 Stunden und ist in vier Lernfelder aufgeteilt.

13. Juli 202113. Juli 2021 Artikel weiterempfehlen: