Testautomatisierung

Als Softwaretester sind wir dafür verantwortlich, in Zusammenarbeit mit Ihrem Team die Anforderungen und Qualität Ihrer Software während der Entwicklung bis zum fertigen Endprodukt zu überwachen und sicherzustellen. Als sinnvolle Ergänzung zum manuellen Test empfiehlt sich hier das Tool der Testautomatisierung.

Was ist Testautomatisierung?

Im automatisierten Testverfahren übernehmen spezielle Programme (sogenannte Testautomatisierungs-Tools) die Überprüfung verschiedenster Schnittstellen Ihrer Software. Durch die Automatisierung der manuellen Vorgänge können der Zeitaufwand, den ein repetitiver manueller Test benötigen würde, und somit auch Testkosten eingespart werden. Außerdem ist eine umfassendere Testabdeckung möglich wodurch eine höhere Qualität des Software- Endprodukts sichergestellt werden kann. Die Qualitätssicherung durch eine abgerundete und konsistent integrierte Testautomatisierung ist essentiell für den Erfolg von Ihrem Entwicklungs-Team und Projekt.

Wie läuft die Testautomatisierung ab?

Die Ausführung der Testvorgänge/-fälle an sich laufen selbstständig ab, sind also auch über Nacht ausführbar. Die Testautomatisierungs-Tools leisten eine genaue Dokumentation der vorhandenen Fehler (Abweichungen der Akzeptanzkriterien). Auf der untersten Ebene (Unit-Tests) können Ursachen gefunden werden, die zu Fehlern in der grafischen Ansicht (UI) und Anwendung der Software führen, weshalb die Testautomatisierung sich größtenteils auf die Überprüfung einzelner Module der zu testenden Software konzentriert. Desweiteren sollten Tests der Service-Ebene mit all Ihren Funktionen evaluiert und durchgeführt werden. Dies umfasst Integrations- sowie API-Tests.
Am oberen Ende sollten des weiteren die sehr aufwendigen UI-Tests in Betracht gezogen werden. Dort können schnell Abweichungen in der finalen Umsetzung für den Endkunden gefunden werden. Da Sie aber die Zeitaufwendigsten Tests darstellen muss bei dieser Schicht immer der Kosten-Nutzen-Faktor abgeschätzt werden, worin wir Sie natürlich beraten werden.

Welche Software ist für die Testautomatisierung geeignet?

Gerade beim agilen Testen, in der die Software während ihrer Entstehung durch Testwiederholungen und Feedback des Nutzers stetig weiterentwickelt und angepasst wird, ist der Einsatz von Testautomatisierungs-Tools essentiell. Besonders in den oben angesprochenen unteren Schichten (Unit, Integration und API) ist es besonders wichtig Automatisierte Tests schon früh zu etablieren. Komplexe, umfangreiche Softwareprodukte sind prädestiniert für automatisierte Tests, da die hohe Anzahl der regressiv notwendigen Testdurchläufe durch manuelles Testen nur durch sehr hohen Personalaufwand zu schaffen wäre und dadurch wirtschaftlich nicht tragbar ist.
Wo sich Testautomatisierung jedoch eher nicht anbietet sind MVP*s (Minimal Viable Product) Software in denen nach der Erprobungszeit durch einen Rework des Konzepts und Produkts von Grund auf mit neuem Code entwickelt wird. Testautomatisierung ist nur schlecht wiederverwendbar.

Alle Vorteile der Testautomatisierung auf einen Blick

  • Entlastung der manuellen Tester
  • Einsparung von Testkosten
  • Wiederholungsmöglichkeit der Testdurchläufe per Mausclick
  • Validierung der Software mit statischen sowie dynamischen Testdaten
  • Sehr hohe Abdeckung von verschiedenen Endgeräten
  • Mehr Tests in kürzerer Zeit
  • Höhere Qualität der Software
  • Automatische, strukturierte und Revisionssichere Dokumentation von aufgetretenen Fehlern
  • Testmöglichkeit 24 Stunden/Tag

Was ist unser Beitrag zur Qualitätssicherung bei der Testautomatisierung?

Als SQA-Spezialisten ist es unsere Aufgabe, die für Ihr Team und Projekt am besten passenden Testautomatisierungs-Tools zu finden und in Ihre Prozesse zu etablieren.

  • Wir legen zusammen mit Ihrem Team die Fundamente für eine langlebige sowie konsistente Testautomatisierung für Ihre Software.
  • Wir erstellen Ihnen Testsuiten und Testfälle auf Basis gegebener Akzeptanzkritieren welche möglichst häufig wiederverwendbar innerhalb des zu testenden Produkts sind.
  • Natürliche werden wir daraus entstehenden Testprotokolle nach jedem Testlauf auswerten.
  • Wir Schulen Ihr Team mit dem Umgang der eingesetzten Testautomatisierungs-Tools und schaffen alle Steine aus dem Weg für einen reibungslosen Ablauf auch nach der Übergabe an Ihr Unternehmen.
  • Außerdem bieten wir Ihnen regelmäßige Wartung der Tools an sowie weiterführende Schulungen bezüglich des SQA-Automatisierungsprozesses.

Ein kompletter Ersatz für das manuelle Testen ist die Testautomatisierung demnach nicht, denn ein Testautomatisierungs-Tool funktioniert nur so gut: wie es in Standgehalten wird, die Prozesse beibehalten werden und wie ein Tester “alte” Tests aktualisiert und jeweilige Testdurchläufe vorbereitet. In Kombination von manuellem und automatisiertem Testen ist es uns also möglich, die optimale Qualität des Endprodukts für Sie und Ihre Kunden sicherzustellen, außerdem nehmen wir Stress von den Schultern Ihrer Entwickler.

Wie gehen wir (Critical QA) vor?

Bevor wir mit Ihnen in die Phase der Teststrategie und Testplanung gehe, mache ich mir zuerst einmal ein Bild von Ihrer Firmenphilosophie. Wir sehen uns die verwendeten Methoden Ihres Teams zur Softwareprogrammierung sowie den gewünschten SDLC (Software Development Life Cycle) an und analysieren ihn. Dieses Vorgehen zu Beginn ist nötig, um uns optimal auf die bevorstehende Zusammenarbeit vorzubereiten und einzuspielen.
Sollten SIe noch gar keinen Qualitätssicherungsprozess integriert haben werden wir uns auch Gedanken über diese machen und SIe dazu beraten. Dies reicht an dieser Stelle leider zu weit. Bitte kontaktieren Sie uns diesbezüglich direkt.

 

Den Ablauf des Automatisierungsprozesses teilen wir dann in folgende Phasen auf:

 

Testplanung

  • (Nur wenn benötigt) Problemanalyse von alter Testautomatisierung
  • Auswahl des/der Testautomatisierungs-Tools
  • Umfang und Genauigkeit der jeweiligen Tests
  • Erstellung eines Master Testdokuments (Stakeholder, Testumgebungen, Testdaten, Verfahrensbeschreibung, etc.)
  • Definierung des Dokumentations Umfangs
  • Setzung von kurzfristigen und langfristigen Zielen
  • Implementierung des neuen Prozesses in Ihre Entwicklungsabläufe und Methoden erarbeiten

Implementierung

    • Installation, Einrichtung und Integration der ausgewählten Tools in die vorhandene Infrastruktur
    • Schreiben erster Tests und wiederverwendbarer Module für eine Erleichterte Handhabung

    Testausführung

    • Konkreter Einsatz mit Testfällen und Testsuiten
    • Dokumentation von Bugs
    • Nachbesserung des Master Testdokuments
    • Auswertung der Testprotokolle – Wartung des Testsystems
    • Mögliche Optimierungen
    • Anpassung der Testfälle und Testsuiten an ggf. Änderungen der Software
    • Schulung der Mitarbeiter
    • Übergabe der Testautomatisierung an die internen Mitarbeiter

    Optional: Wartung

    • Anpassungen an Firmeninterne Umstrukturierung
    • Wartung der Testautomatisierungs-Tools
    • Wartung der Tests
    • Erneute oder weiterführende Schulung der Mitarbeiter

Welche Testautomatisierungs-Tools verwenden wir?

  • Appium (Mobile Nativ)
  • Selenium, Selenium GRID – Java, JavaScript, C++
  • Gherkin
  • Cypress (Web Desktop)
  • KatalonStudio (Web und Mobile Desktop)
  • HP Qaulity Center, TestRail, qTest (Testfall Dokumentation)
  • JIRA, Redmine, BugZilla, (Ticket Dokumentation)
  • STF Cloud, Lambda Test, Firebase Test Lab, AWS Device Farm (Echtgeräte Device Clouds)
  • Tricentis TOSCA (SAP Testing)
  • Ranorex Studio (Desktop, Mobile, Windows)
  • JMeter, Postman (API Testing
  • Jenkins, GitLab, TeamCity, Travis (Continous Integration / Continous Deployment – CI/CD)

Testautomatisierung für Software Development bei Critical QA

Florian Hemmann gründete im März 2019 das Unternehmen Critical QA. Die Firma ist spezialisiert auf Dienstleistungen im Bereich der Software Qualitätssicherung. Dazu zählt auch eine individuell konfiguriert Testautomatisierung. Je nach Wunsch können alle möglichen Arbeitsabläufe in Ihren Software-Entwicklungsprozess integriert werden.