Einleitung
In diesem Beitrag geht es um das Buch “Test Automation Fundamentals” von Baumgartner et al., welches im dpunkt.verlag erschienen ist und für 39,90 Euro gelistet wird. Ich selbst hatte durchaus großes Interesse an dem Buch, da ich mich im Rahmen meiner Projekte PIRA und MetaCG in den letzten ca. 1,5 Jahren vermehrt mit dem Thema Software-Testing befasst habe. Jedoch bin ich dabei eher einer Learning-by-Doing-Strategie gefolgt und habe mich auch an den Testregimen anderer Open-Source-Projekte bedient. Gerade daher war ich gespannt, wie ein (Lehr-)Buch die Herangehensweisen und Inhalte vermittelt.
Das Buch richtet sich an Test Automatisierungs Ingenieure:innen, Software Tester:innen, Software Entwickler:innen, sowie an Lehrer:innen und Schüler:innen. Es ist in englischer Sprache verfasst und ich werde in dieser Rezension darauf verzichten, etwaige Zitierungen ins Deutsche zu übersetzen.
Meine Erwartungen an das Buch waren durchaus hoch, in dem Sinne, dass ich vieles über das fundamentale Design von Software Tests lernen werde, und insbesondere auch strukturierte Herangehensweisen an das Testen vermittelt werden. Die Rückseite des Buches beschreibt den Inhalt, dass das Buch “provides a complete overview of how to design test automation processes and integrate them into your organization or existing projects. It details functional and technical strategies and goes into detail on the relevant concepts and best practices. The book’s main focus is on functional system testing.” [Baumgartner et al.]
Inhalt und Eindruck
Das Buch startet mit einer längeren Erklärung, warum automatisiertes Testen gut und mitunter notwendig ist. In diesem Kapitel werden auch Erwartungen gesetzt, bzw. die Grenzen aufgezeigt, welche Aspekte das Buch nicht behandelt. Insgesamt sehe ich das Kapitel als notwendig und sinnhaft an. Ich muss jedoch auch sagen, dass es für mich sehr lang erschien, da viele Aspekte, von denen ich bereits überzeugt bin, noch einmal in voller Länge erwähnt und begründet wurden. Hier ganz klar der Hinweis, dass ich mich mit der grundlegenden Sinnhaftigkeit, der Abwägung von Investition und möglichen Benefit, etc pp, schon hinreichend befasst hatte und vieles einfache Wiederholung war. Für eine Einführung in das Thema ist dieses Kapitel aber sowohl fundamental wichtig, als auch sinnhaft und letztlich überzeugend und verständlich geschrieben.
Danach gibt das Buch einen sehr guten Einblick in die technischen Überlegungen, wann und wie man Testautomatisierung in einem Projekt einbringen kann, und, wie man nach Möglichkeit das richtige Werkzeug wählt. Insbesondere werden eine ganze Reihe von technischen Überlegungen angestellt, die mir neu waren, und die ich für wichtig halte. Was mir sehr gut gefallen hat ist, dass die Autoren Beispiele und Beispielszenarien geben und die Technologiewahl mit ihren Gründen. Hier hat das Buch meine Erwartungen de facto übertroffen und ich bin sehr froh, es gelesen zu haben.
Hierauf folgend geht das Buch in großem technischen Detail auf die Realisation einer Testautomatisierung ein. Es werden viele verschiedene Projekt-Szenarien als Beispiele genannt und welche Hindernisse es geben kann, oder welche positiven Auswirkungen entstehen können. Dieser Teil ist, in meinen Augen, der Schwerpunkt – zumindest in technischer Hinsicht – und die Autoren geben einen verständlichen Einblick in die Technologien und ihre Vor- und Nachteile. Es sei hier angemerkt, dass alle Beispiele in dem Buch durchaus komplexe Softwaresysteme betrachten. Damit meine ich insbesondere Systeme, die aus diversen, in verschiedenen Sprachen implementierten, auf verschiedenen Hardwaresystemen ausgeführten Komponenten bestehen. Dieser Aspekt hat für mich eine weitere Dimension in meinen Überlegungen geöffnet, da meine eigenen Projekte recht kompakt sind und nur wenige Zielsysteme haben.
Weitere Aspekte, die im Verlauf des Buches noch behandelt werden, sind potentielle Stolpersteine für die Einführung eines Testautomatisierungssystems. Die Autoren geben hier sowohl technische Hindernisse, als auch organisatorische Hindernisse an. Als Teil dieser Sektion werden insbesondere auch die Risiken beleuchtet, die die Einführung einer komplexen Testautomatisierung mit sich bringen kann.
Ebenfalls wichtig, und im Buch gut beleuchtet, ist das Thema des Reportings einer Testinfrastruktur und was mit dem Wissen von Defekten geschehen soll. Dies ist vermutlich eine der spannendsten Sektionen außerhalb der technischen Teile, da es auch um Kultur und Prozesse geht. Letztlich nützt die beste Testinfrastruktur nichts, wenn Testergebnisse nicht ernst genommen werden.
Abschließend werden die Aspekte der Testvalidierung und die kontinuierliche Verbesserung des Testsystems behandelt. Insbesondere der Aspekt des kontinuierlichen Verbesserungs gefällt mir sehr gut. Hier sehe ich auch einen wichtigen Beitrag, denn ich bin mittlerweile der Meinung, dass es besser ist, man fängt an und verbessert kontinuierlich, verglichen mit man bewegt sich gar nicht, da man keine perfekte Lösung parat hat.
Fazit
Zusammenfassend kann ich nur sagen, dass mir das Buch sehr gefallen hat und ich viel gelernt habe. Insbesondere der Blick auf potentiell historisch gewachsene, große Projekte, bei denen die Einführung einer Testautomatisierung selbst ein signifikantes Projekt ist, hat mir Freude gemacht. Viele dort relevante Aspekte kamen in meinem bisherigen Software-Entwickler-Dasein noch nicht zum Tragen. Wer sich also nicht scheut, ein in Englisch geschriebenes Buch zu lesen und sich für das Thema Testautomatisierung interessiert, dem sei das Buch durchaus ans Herz gelegt.
Mir wurde für diese Rezension ein Rezensionsexemplar zur Verfügung gestellt.