Kontaktieren Sie uns

Wie man Automatisierung implementiert, wenn Tests parallel zu Entwicklungs-Sprints entwickelt werden

Da wir viele Testautomatisierungsaufträge von einer Vielzahl von Kunden übernehmen, werden wir diese Frage tatsächlich oft gestellt.   

Der Schlüssel? Dinge modular und strukturierter Weise zu erstellen, indem man von dem Allgemeinen zum Spezifischen übergeht. In den meisten Fällen bietet Ihnen das verwendete Framework die grundlegenden Komponenten, die Sie benötigen, um die App oder das System navigieren zu können, auf dem Sie arbeiten, wie zum Beispiel das Klicken auf einen Hyperlink oder das Senden einer API-Anforderung. Anschließend müssen Sie auf diese Grundlage weitere Funktionen oder Vorgänge in Ihrem System aufbauen, wie zum Beispiel die Durchführung spezifischer Prüfungen, um sicherzustellen, dass der zurückgegebene Wert korrekt ist und dass das System keine Fehler verursacht hat. Anschließend können Sie auf diese Grundlage wiederum weitere szenarioorientierte Komponenten erstellen.  

Das kann ein eher geschäftstypisches Szenario sein, wobei beispielsweise der Login ein klassisches Beispiel ist oder auch die Durchführung wichtiger Aktivitäten wie die Produktsuche oder ‘in den Warenkorb legen’ in einem E-Commerce-Kontext. Oder es könnte ein Systemereignis-Szenario sein, wenn man auf B2B-Schnittstellen arbeitet – eine eingehende Anforderung über eine API, die eine bestimmte Reaktion auslöst, so etwas.  

Diese können zu einer Bibliothek gemeinsamer Aktionen oder Ereignisse aufgebaut werden, die Bedeutung haben. und Diese können mithilfe der Given-When-Then-Struktur in Schlüsselbegriffe für das Behavior-Driven-Development (BDD) umgewandelt werden.  

Beispiel: Da ich als Benutzer angemeldet bin, wird mir bei der Suche nach einem Produkt und beim Klicken auf das Produkt die richtige Beschreibung und der richtige Lagerbestand angezeigt. Hinter den Kulissen befindet sich ein Code, der das Login, die Suche, die Produktauswahl und letztendlich die Überprüfung der angezeigten Informationen gegen den Zielwert verarbeitet. Dieser Zielwert kann entweder eine vordefinierte oder eine Verknüpfung zwischen dem angezeigten Wert und den Informationen in der Datenbank sein.  

Man könnte sogar eine Mock- oder Stub-Datenbank erstellen, um nicht die eigentliche Datenbank zu besuchen zu müssen. Das verdeutlicht einen weiteren möglichen Vorteil der Automatisierung – man kann Abhängigkeiten gegenüber Drittanbietern oder anderen Komponenten des Systems abbauen, was sowohl die Testausführung vereinfacht als auch Tests vorantreibt, die sonst auf die Lieferung eines anderen Elements warten müssten.  

Der Schlüssel? Das Verständnis dafür, wie das System aufgebaut ist, und dann die Untersuchung, wie man das Verhalten isolieren kann, das man testen möchte. Diese Art von testtechnisch sehr fokussierten Tests kann viele Vorteile haben.