Podcast #49: Softwaretesting kompakt

🕒 Hördauer: 39 Minuten

Softwaretester brauchen heute auch ein Grundverständnis von Testautomatisierung.Pascal Moll geht im Dialog mit Markus auf sein neues Buch ein, spricht über Motivation und Zielpublikum. Warum er neben allgemeinen Themen des Testens (wie z.B. die Testpyramide oder exploratives Testen) die Testautomatisierung zum Schwerpunkt seines Buches gemacht hat: warum er Java, Maven und Wire-Mock behandelt und auf Frameworks wie JUnit und Selenium eingeht. Für Pascal sind Cucumber und BDD wichtig, weil sie die Brücke zum Fachbereich bauen. Pascal scheut sich dabei nicht, über Lücken in seinem Buch zu sprechen und einen allgemeinen Blick auf das Thema Qualität in der Softwareentwicklung zu werfen.

 

Hör' Dir hier den ganzen Podcast an:

 

Diese Themen erwarten Dich:

[00:34] Überblick

[01:14] Vorstellung Pascal Moll

[01:58] Motivation zum Buch

[02:30] Rolle eigener Erfahrungen

[03:17] Schwerpunkte

[04:13] Aufbau und roter Faden

[05:34] Bedeutungtechnischer Themen

[06:45] Programmierkenntnisse notwendig ?

[07:57] Testautomatisierung und Testen allgemein

[08:48] Zielgruppe

[09:26] Schreibstil

[10:17] Anspruch kompaktes Buch

[11:09] Abstimmung mit ISQTB-Lehrplänen

[11:55] Lehren aus Praxiserfahrung

[13:05] Frühzeitiges Erkennen von Fehlern

[13:35] Frühes Fehlerfinden am Praxisbeispiel

[13:53] Fehlervermeidung

[14:42] Auswahl und Entwicklung von Testtools sowie Testframeworks

[15:30] Testpyramide

[16:30] Kapitel über Java und Maven

[17:39] Testautomatisierungsarchitektur

[18:38] SOLID-Prinzipien

[20:01] JUnit

[20:42] Pageobjekts und Entwurfsmuster

[21:13] Mocking

[22:27] Vorteil Wiremock

[23:08] Nachteil

[24:00] Stellenwert von Selenium

[24:35] Konkurrenz zu Selenium

[25:50] Ziele von BDD und Cucumber

[27:16] Wesentlichen Vor-/Nachteile von Cucumber

[28:32] Glue Code

[29:21] Explorative Tests und Testpyramide

[29:59] Günstige Umstände für explorative Tests

[30:31] Nachteile explorativer Tests

[31:03] Gute Dokumentation beim Einsatz explorativer Tests

[31:38] Allgemeines Verständnis für Qualität

[32:28] Wirtschaftlichkeit des Testens

[33:07] Enge Zusammenarbeit zwischen Entwicklern und Testern

[34:23] Testcode = Produktionscode

[34:59] Nicht behandelte Themen

[35:28] Tipps für die Leser

[34:59] Praktischer Nutzen des Buches

[37:01] Wünsche an die Leser

[37:40] Kontaktaufnahme

[38:00] Bucherwerb

[38:10] Qytera-Seminare

 

 

Motivation und Zielgruppe

Mit seinem Buch verfolgt Pascal das Ziel, Einsteigern im Software-Testing einen Leitfaden zu bieten, basierend auf eigenen Erfahrungen aus Projekten. Ein zentraler Fokus ist die Testpyramide, die von Unit-Tests bis hin zu Akzeptanz- und explorativen Tests reicht. Das Buch richtet sich an Anfänger, die keine Java-Kenntnisse haben, und vermittelt sowohl Grundlagen des Testens als auch grundlegende Programmierkenntnisse für das Schreiben von Testfällen und die Umsetzung von Testautomatisierung.

Aufbau und roter Faden

Das Buch führt anhand eines Onlineshop-Beispiels in das Thema Testing ein und verwendet eine Autoverwaltung als Hauptbeispiel. Es behandelt verschiedene Testverfahren wie JUnit, Maven, API-Tests mit Mocking, grafische Oberflächentests und Akzeptanztests mit Cucumber. Exploratives Testen wird ebenfalls thematisiert. Weniger zentrale Themen wie Performance-Testing werden nur kurz angesprochen. Die Inhalte zur Testautomatisierung orientieren sich an den ISTQB-Lehrplänen, ohne jedoch eine detaillierte Vergleichsanalyse zu bieten.

Testen und Testautomatisierung

Das Buch erklärt technische Grundlagen wie Java, Maven, JUnit, Wiremock und Selenium für Testautomatisierung. Es zeigt, wie man diese Tools installiert und anwendet, wobei Maven als Bibliotheksverwaltungssystem hervorgehoben wird. Das Buch behandelt Testen mit Schwerpunkt auf einer technischen Sicht. Das zweite Kapitel führt in Java ein und nutzt die Autoverwaltung als praktisches Beispiel. Ein Git-Repository ermöglicht das Nachvollziehen der Beispiele. Zielgruppe sind sowohl Testautomatisierer als auch Fachtester.

Testpyramide

Die Testpyramide zeigt, wie Tests idealerweise strukturiert sein sollten: Unit-Tests sind schnell und kostengünstig, während Integrationstests komplexer und teurer sind. Akzeptanztests oder Oberflächentests sind am teuersten und dauern am längsten. Die Pyramide hilft, eine effiziente und kostengünstige Testverteilung zu visualisieren, auch wenn diese in der Praxis nicht immer ideal umgesetzt werden kann.

Javen, Maven und Testautomatisierung

Die Kapitel über Java und Maven erklären grundlegende Konzepte wie Programmiersprache, Datentypen, Methoden und Bibliotheksmanagement. Beide Themen sind wichtig für die Testautomatisierung. Eine gute Testautomatisierungsarchitektur hilft, Testfälle wartbar zu halten und neue Tests einfach zu integrieren. Die SOLID-Prinzipien fördern sauberen, wartbaren Code, indem sie klare Verantwortlichkeiten für Klassen definieren und Anpassungen effizienter machen.

Testframeworks und Mocking

JUnit ist ein leistungsstarkes Testframework, das Tests effizienter macht und sich gut mit anderen Tools wie Selenium kombinieren lässt. PageObjects und Entwurfsmuster verbessern die Wartbarkeit von Tests. Mocking ermöglicht frühes Testen, auch wenn APIs noch nicht fertig sind, und spart Kosten. WireMock hilft, lokale Mock-Server zu erstellen. Der Nachteil von Mocking ist der hohe Wartungsaufwand, da komplexe Antworten wie JSON-Dateien unübersichtlich werden können.

Selenium und Playwright

Selenium ist ein weit verbreitetes Tool zur Testautomatisierung von Webanwendungen, das einfach zu bedienen ist und Tests unabhängig von Bildschirmauflösungen ermöglicht. Playwright ist ein vielversprechender Konkurrent mit erweiterten Funktionen. Ein eigenes Kapitel zu Selenium im Buch behandelt seine umfangreiche Funktionalität, von einfachen Eingaben bis zu komplexeren Aufgaben wie Cookie-Management und Datei-Uploads.

BDD und Cucumber

Das Kapitel zu Behavior Driven Development (BDD) fördert die Kommunikation zwischen Fachbereich und Entwicklung, indem Tests gemeinsam in verständlichen Feature-Dateien definiert werden. Vorteile von Cucumber sind eine zentrale, verständliche Fehlerquelle, während der Nachteil die zusätzliche Komplexität durch die BDD-Syntax ist. „Glue Code“ verbindet die Schrittdefinitionen mit dem Programmcode über Annotations.

Explorative Tests

Explorative Tests ergänzen die Testpyramide und werden meist manuell durchgeführt, unterstützt von Tools zur Aufzeichnung und Berichtserstellung. Sie sind besonders sinnvoll, um nach abgeschlossenen Tests Lücken zu finden oder um sich mit einem neuen Produkt vertraut zu machen. Eine gute Dokumentation ist wichtig, um Fehler nachvollziehbar zu machen und an die Entwickler weiterzugeben.

Allgemeines Verständnis für Qualität

Das Buch betont die Bedeutung eines gemeinsamen Verständnisses von Qualität im Team und die Wirtschaftlichkeit von Tests, da nicht jeder Test automatisch sinnvoll ist. Enge Zusammenarbeit zwischen Entwicklern und Testern wird als vorteilhaft für den Entwicklungsprozess beschrieben. Testcode sollte genauso gepflegt werden wie Produktionscode.

Lücken, Empfehlungen und Feedback

Der Autor hat bestimmte Themen wie Performance- und AI-Testing aus Zeitgründen ausgelassen. Er empfiehlt, mit erfahrenen Kollegen zusammenzuarbeiten und Tests regelmäßig zu hinterfragen und zu refaktorisieren. Das Buch enthält praxisnahe Beispiele, die direkt umgesetzt werden können. Der Autor wünscht sich Feedback von den Lesern, um das Buch zu verbessern.

Infos und Kontakt

Pacal kann über Linkedin ( https://www.linkedin.com/in/pascal-moll-14980520b ) kontaktiert werden.

 

Finden Sie weitere interessante Artikel zum Thema: