© DRogatnev/Shutterstock.com
PHP Magazin
Testing-Methoden und -Technologien im Überblick

Tests an die Front

Test-driven Development ist keine Mode, sondern professionelle Entwicklung. Anders als der Zuckerguss einer Torte ist Qualität auch kein Attribut, das nachträglich ergänzt werden kann, sondern muss von Anfang an berücksichtigt werden. Dieser Artikel soll einen Überblick über die zum Erreichen dieser Qualität nötigen Testing-Methoden und -Technologien geben.

Karsten Sitterberg


Wir werden uns im Wesentlichen die Situation bei Anwendungen mit einem SPA-Frontend anschauen, aber auch herkömmliche, serverseitig gerenderte Anwendungen kommen nicht zu kurz. Ziel ist es, das Vorgehen von testgetriebener Softwareentwicklung zu motivieren und uns dann einen Überblick über die zur Verfügung stehenden, aktuellen Werkzeuge zu verschaffen.

Der vorliegende Artikel richtet sich an alle Java-Entwickler, die klassische Webanwendungen oder auch Anwendungen mit einem Single Page Application Frontend (im Folgenden Browseranwendungen genannt) entwickeln. Es werden verschiedene moderne Test-Frameworks unter anderem anhand von Quellcodebeispielen erläutert. Ziel ist, dass jeder Entwickler die diversen Frameworks einordnen kann und ein Gefühl dafür bekommt, wie der Einsatz der Frameworks in der Praxis aussehen kann.

Automatisierte Testinfrastruktur

Viele Entwickler stellen sich die Frage, warum sie Zeit in automatisierte Testinfrastruktur stecken sollen. Schließlich müssen die Tests nicht nur geschrieben, sondern auch gewartet werden. Für die Antwort muss man ein wenig ausholen.

An jede Anwendung werden gewisse zu erreichende Qualitätsziele, sowohl während der Entwicklung als auch in Produktion, gestellt. Eine Anwendung soll etwa fehlerfrei arbeiten, zugleich für alle Entwickler gut verständlich sein, sich durch hohe Entwicklerproduktivität auszeichnen, um neue Features erweiterbar sein und – sofern es sich nicht um einen Prototyp handelt – eine langfristige Wartbarkeit sicherstellen. Um diese Qualitätsziele zu erreichen, muss ein gewisses initiales Investment getätigt werden: Zerlegung und Transformation des Problems in ein Anwendungsdesign, Auswahl des richtigen API und der zu verwendenden Technologien. Parallel dazu wird die Entwicklungsinfrastruktur aufgebaut, zum Beispiel Build Pipeline, SCM und Ticketsystem. Um die oben genannten Qualitätsziele zu erreichen, hat sich als Entwicklungsprozess das Test-driven Development inklusive Code-Reviews und Pair Programming bewährt. Dieses Investment zahlt sich erfahrungsgemäß recht schnell und schon bei kleinen Projekten aus. Martin Fowler hat sich dazu ebenfalls geäußert und geht in seinem Artikel „Is High Quality Software Worth the Cost?“ [1] von Wochen aus. Besonders die Vorteile von automatisierten Tests zeigen sich schnell, da damit manueller Aufwand eingespart wird und Tests frühzeitig verborgene und unerwünschte (Laufzeit-)Fehler zum Vorschein bringen können.

Generell sollte man sich in der Entwicklung...

PHP Magazin
Testing-Methoden und -Technologien im Überblick

Tests an die Front

Test-driven Development ist keine Mode, sondern professionelle Entwicklung. Anders als der Zuckerguss einer Torte ist Qualität auch kein Attribut, das nachträglich ergänzt werden kann, sondern muss von Anfang an berücksichtigt werden. Dieser Artikel soll einen Überblick über die zum Erreichen dieser Qualität nötigen Testing-Methoden und -Technologien geben.

Karsten Sitterberg


Wir werden uns im Wesentlichen die Situation bei Anwendungen mit einem SPA-Frontend anschauen, aber auch herkömmliche, serverseitig gerenderte Anwendungen kommen nicht zu kurz. Ziel ist es, das Vorgehen von testgetriebener Softwareentwicklung zu motivieren und uns dann einen Überblick über die zur Verfügung stehenden, aktuellen Werkzeuge zu verschaffen.

Der vorliegende Artikel richtet sich an alle Java-Entwickler, die klassische Webanwendungen oder auch Anwendungen mit einem Single Page Application Frontend (im Folgenden Browseranwendungen genannt) entwickeln. Es werden verschiedene moderne Test-Frameworks unter anderem anhand von Quellcodebeispielen erläutert. Ziel ist, dass jeder Entwickler die diversen Frameworks einordnen kann und ein Gefühl dafür bekommt, wie der Einsatz der Frameworks in der Praxis aussehen kann.

Automatisierte Testinfrastruktur

Viele Entwickler stellen sich die Frage, warum sie Zeit in automatisierte Testinfrastruktur stecken sollen. Schließlich müssen die Tests nicht nur geschrieben, sondern auch gewartet werden. Für die Antwort muss man ein wenig ausholen.

An jede Anwendung werden gewisse zu erreichende Qualitätsziele, sowohl während der Entwicklung als auch in Produktion, gestellt. Eine Anwendung soll etwa fehlerfrei arbeiten, zugleich für alle Entwickler gut verständlich sein, sich durch hohe Entwicklerproduktivität auszeichnen, um neue Features erweiterbar sein und – sofern es sich nicht um einen Prototyp handelt – eine langfristige Wartbarkeit sicherstellen. Um diese Qualitätsziele zu erreichen, muss ein gewisses initiales Investment getätigt werden: Zerlegung und Transformation des Problems in ein Anwendungsdesign, Auswahl des richtigen API und der zu verwendenden Technologien. Parallel dazu wird die Entwicklungsinfrastruktur aufgebaut, zum Beispiel Build Pipeline, SCM und Ticketsystem. Um die oben genannten Qualitätsziele zu erreichen, hat sich als Entwicklungsprozess das Test-driven Development inklusive Code-Reviews und Pair Programming bewährt. Dieses Investment zahlt sich erfahrungsgemäß recht schnell und schon bei kleinen Projekten aus. Martin Fowler hat sich dazu ebenfalls geäußert und geht in seinem Artikel „Is High Quality Software Worth the Cost?“ [1] von Wochen aus. Besonders die Vorteile von automatisierten Tests zeigen sich schnell, da damit manueller Aufwand eingespart wird und Tests frühzeitig verborgene und unerwünschte (Laufzeit-)Fehler zum Vorschein bringen können.

Generell sollte man sich in der Entwicklung...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang