move-left Back
🌍 All Regions
Quality Assurance Engineering

Die Herausforderungen für einen Tester: aus technischer Sicht

In einem Artikel, der vor einigen Wochen veröffentlicht wurde, haben wir über die menschlichen Herausforderungen gesprochen, denen Tester gegenüberstehen.

Die Arbeit eines Testers ist nicht nur eine menschliche Aufgabe, sondern es gibt auch viele Herausforderungen, die mit den technischen Aspekten des Testens zusammenhängen.

Dieser Artikel stellt einige der technischen Herausforderungen vor, denen wir am häufigsten begegnen.

API-Tests

Die Herausforderung

Software ist in ihrer Umgebung nicht isoliert. Sie kommuniziert über APIs mit anderer Software. Um ein funktionsfähiges Produkt zu erhalten, muss unbedingt sichergestellt werden, dass es mit bestimmter umgebender Software interagieren kann. Diese Software-Interaktionen müssen daher getestet werden.

Diese Tests können für Tester verwirrend sein, da APIs keine grafischen Benutzeroberflächen bieten (Software benötigt diese nicht, um miteinander zu kommunizieren) und spezielle Werkzeuge erfordern.

Zudem ist es zwar einfach, die APIs der eigenen Software zu beherrschen, doch gilt dies nicht unbedingt auch für die APIs der Software, mit der das eigene Produkt interagiert.

Schließlich können diese stark kodifizierten Interaktionen zu Architekturen führen, die mehr oder weniger leicht zu verstehen sind.

  • Empfehlung

Es gibt mehrere Gründe, warum Sie als Tester keine Scheu vor API-Tests und APIs im Allgemeinen haben sollten, selbst wenn Sie als funktionaler Tester nur über wenige „technische“ Kenntnisse verfügen:

  • Es gibt eine Reihe von API-Testtools wie beispielsweise Postman, die leicht zugänglich und relativ einfach zu erlernen sind,
  • API-Tests sind funktional in der Regel nicht besonders komplex, da es sich um standardisierte Nachrichten handelt, in denen Variablen übergeben werden. Ich persönlich stelle mir API-Tests gerne als Formular-Tests vor, bei denen man die verschiedenen Werte überprüft, die Felder annehmen können,
  • Es ist einfach, API-Tests sehr schnell zu vervielfachen. Sobald man eine Nachricht hat, kann man auf der Grundlage derselben Basisnachricht zahlreiche Tests (einschließlich datengesteuerter Tests) durchführen.

Das Testen von APIs ist ein guter erster Schritt in die Welt des „technischen“ Testens, da es leicht zu erlernen ist, sobald man sich einmal damit beschäftigt hat. Ebenso wird es im agilen Kontext für Tester immer wichtiger, in verschiedene Aspekte des Testens eingreifen zu können, und das Testen von APIs ist eine Fähigkeit, die zunehmend gefragt ist.

Testautomatisierung

Die Herausforderung

Das ist keine neue Herausforderung! Seit ich 2011 angefangen habe zu arbeiten, höre ich immer wieder von Testautomatisierung. Ich habe sogar den Eindruck, dass Tester schon viel länger davon hören.


Auf den ersten Blick erscheint es daher ziemlich überraschend, dass die Automatisierung noch nicht flächendeckend verbreitet ist. Tatsächlich hat sich der Anteil automatisierter Tests in den letzten Jahren eher stabilisiert als zugenommen.

Der Grund dafür ist ganz einfach: Es ist nicht leicht, die Testausführung zu automatisieren. Es gibt zahlreiche Tools, und die Anforderungen und Kontexte sind noch vielfältiger!

Viele Automatisierungsprojekte scheitern, weil das Automatisierungstool ungeeignet ist, die automatisierten Tests zu zeitaufwendig in der Wartung sind, die Automatisierungsziele und -strategien nicht klar definiert oder angepasst sind oder die automatisierten Tests nicht zuverlässig genug sind.

Um eine erfolgreiche Automatisierung zu erreichen, müssen Sie das richtige Tool auswählen, die an der Automatisierung beteiligten Personen schulen, den Umfang der Automatisierung festlegen und den Umfang sowie die Tests an den Kontext anpassen.

  • Tipps

Wenn Sie als funktionaler Tester tätig sind, kann die Testautomatisierung schnell unverständlich werden. Tatsächlich müssen nicht-technische Tester sowohl ihre Skriptkenntnisse (um automatisierte Tests zu verstehen und zu schreiben) als auch ihre Fähigkeit zum Einrichten und Überwachen automatisierter Tests ausbauen.


In diesem Fall empfehle ich, Schritt für Schritt vorzugehen und mit „einfacher“ Automatisierung zu beginnen. Dies kann durch API-Tests geschehen oder durch die Nutzung eines bereits entwickelten KDT-Frameworks (Keyword Driven Testing), wie es bei Tools wie RobotFramework der Fall ist, oder durch den Einsatz von Automatisierungstools, die speziell für Funktionstester entwickelt wurden und es ihnen ermöglichen, sich mit der Automatisierung und ihren Einschränkungen vertraut zu machen. Ich denke hier an Tools wie Agilitest.

Wenn Sie keine größeren Schwierigkeiten mit der technischen Seite haben, muss „nur“ noch die Herausforderung der Einrichtung und des Betriebs des Systems bewältigt werden. Der Schlüssel dazu ist:

  • das zu verwendende Testtool so auszuwählen, dass es die verschiedenen Testanforderungen erfüllen kann,
  • wartbare Tests unter Anwendung bewährter Codierungspraktiken zu entwerfen,
  • die regelmäßige Wartung der automatisierten Tests sicherzustellen,
  • eine regelmäßige Nachverfolgung dieser Tests sicherzustellen und die Testkampagne am Laufen zu halten.

Einbindung der richtigen nicht-funktionalen Tests

Die Herausforderung

Schließlich hören wir immer häufiger von nicht-funktionalen Tests. Zu den gängigsten zählen Penetrationstests (bekannt geworden durch die DSGVO), Leistungstests, Anpassbarkeitstests (insbesondere für mobile Geräte) und Barrierefreiheitstests (bekannt geworden durch die RGAA in Frankreich und die WCAG im Rest der Welt).


Die Liste der nicht-funktionalen Testarten wird weiter wachsen, entsprechend der zukünftigen Nutzung und Standards wie dem RGESN für Ökodesign.


Wie Sie wissen, ist es unmöglich, all diese Tests gründlich durchzuführen, und ein Tester muss wissen, welche nicht-funktionalen Tests in welchem Umfang durchgeführt werden müssen.

  • Empfehlung

Mein wichtigster Ratschlag lautet hier: Verlassen Sie sich auf die Anforderungen und „verlangen“ Sie testbare nichtfunktionale Anforderungen … oder fordern Sie einfach, dass für die nicht behandelten Punkte keine Anforderungen bestehen und daher auch kein Testbedarf besteht!

Mir ist bewusst, dass der erste Teil in vielen Kontexten utopisch ist. Wenn die Existenz solcher Anforderungen nicht in Betracht gezogen werden kann, lohnt es sich möglicherweise, das Thema der nicht-funktionalen Tests direkt in der Teststrategie des Unternehmens anzugehen und dabei Methoden zur Auswahl der durchzuführenden nicht-funktionalen Tests festzulegen. Diese Strategie lässt sich dann in Testpläne umsetzen (Strategie auf Projekt-/Produktebene). In Ermangelung quantifizierter Anforderungen müssen Sie sich von den verschiedenen Standards (DSGVO, RGAA…) oder von Ihren Beobachtungen auf dem Markt bzw. in der Produktion inspirieren lassen, falls das Produkt bereits im Einsatz ist.

Testdesign

Die Herausforderung

Man könnte argumentieren, dass Testdesign nicht technisch ist. Es stimmt zwar, dass man nicht wissen muss, wie man Code bearbeitet oder liest, um gute Tests zu entwerfen. Dennoch ist das Entwerfen hochwertiger Tests ein höchst technischer Aspekt der Arbeit eines Testers.


Es gibt eine Reihe von Testentwurfsmethoden (die unter Testern bekanntesten sind spezifikationsbasiert), die anhand von Testbedingungen ermitteln, welche Tests mit welchen Werten ausgeführt werden sollen.


Ebenso muss ein Tester wissen, wie er Prioritäten setzt und anhand der Risiken und der verfügbaren Ressourcen ermittelt, welche Elemente in welchem Umfang getestet werden sollen.

  • Ratschlag

Zunächst einmal müssen Sie Ihre Testplanungstechniken kennen, ihre Stärken und Schwächen verstehen und wissen, wie man sie umsetzt.


Technisches Wissen allein reicht jedoch nicht aus. Es ist unerlässlich, den Kontext und das zu testende Produkt zu verstehen. Dies ermöglicht es uns, uns an den Kontext anzupassen und eine Kombination von Techniken vorzuschlagen, die zu einem möglichst effizienten Testpaket führt.


Zudem ist es unerlässlich, sich intensiv mit den Testdaten auseinanderzusetzen (bestimmte Designtechniken geben klare Hinweise darauf, welche Werte in bestimmten Fällen gewählt werden sollten), um Daten auszuwählen, die die verschiedenen potenziellen Fehler des Produkts am besten aufdecken.

Datenmanagement und Testumgebungen

Die Herausforderung

Dies ist für viele Tester ein großes Problem! Testumgebungen sind instabil, schwer zugänglich oder nicht nah genug an der Produktionsumgebung.


Die Daten sind nicht repräsentativ, nicht umfangreich genug, nicht zugänglich oder nicht anonymisiert …


Das Problem dabei ist: Um ein Produkt korrekt testen zu können, ist es unerlässlich, sich so nah wie möglich an die Produktionsumgebung anzunähern, um das Nutzerverhalten so originalgetreu wie möglich zu simulieren.
Leider ist es praktisch unmöglich, eine Umgebung zu schaffen, die sowohl hinsichtlich des Volumens als auch der Interaktion mit Partnern so umfangreich ist wie die Produktionsumgebung. Ebenso ist es keine Lösung, sich vollständig auf Produktionstests im Rahmen von „Shift Right“ zu verlassen.

  • Empfehlung

Daten- und Umgebungsprobleme sind in der Regel recht komplex.

Glücklicherweise stehen uns derzeit eine Reihe von Tools zur Verfügung, die uns bei der Bewältigung dieser Probleme helfen. Ich denke dabei insbesondere an die Umgebungsvirtualisierung, die es uns ermöglicht, Umgebungen spontan zu erstellen und so die Probleme zu vermeiden, die bei von mehreren Teams gemeinsam genutzten Umgebungen oder bei Umgebungen mit „bereits verwendeten“ Daten auftreten.

Für Daten stehen Tools (von Anbietern oder aus eigener Entwicklung) zur Verfügung, mit denen Sie Daten anonymisieren und Teilmengen aus der Produktion extrahieren können, um repräsentative Stichproben zu erhalten.

Was die Partner betrifft, ist die Einrichtung von Plug-ins manchmal eine unverzichtbare Lösung, da Partner nicht unbedingt über gemeinsame Testumgebungen mit unserem Produkt verfügen oder diese zu oft „ausgefallen“ sind.

Kurz gesagt: Es gibt hier keine Wunderlösung, sondern vielmehr die Suche nach pragmatischen (oft toolbasierten) Lösungen, die auf den jeweiligen Kontext zugeschnitten sind. Das Wichtigste ist, die problematischsten Punkte zu identifizieren und zu versuchen, sie zu lösen.

Schließlich kommt es auch vor, dass Umgebungs- und Datenprobleme durch menschliches Eingreifen gelöst werden können – in Kontexten, in denen Testumgebungen und Daten nicht unter der Kontrolle der Teams stehen, die diese Umgebungen und Daten nutzen.

Tags

Quality Assurance Engineering All Industries All Business Units