Automation garantiert Stabilität

Test Automatisierung

Höhere Software-Qualität dank Automatisierung. Intelligente Software beinhaltet automatisierte Tests. Wir verwenden verschiedene Testmethoden, um unsere Plattformen automatisiert zu testen.

Unsere Online-Plattformen bauen auf dem Framework Symfony auf, das diverse Testing-Mechanismen anbietet. Neben klassischen UnitTests setzen wir vor allem auch auf funktionale Tests mit Behat. Diese bilden die Workflows innerhalb einer Applikation - oder einer Plattform - ab und spielen verschiedene Szenarien mit Testdaten durch. Darüber hinaus setzen wir die Tests ein, um Berechtigungsstrukturen zu überwachen und sicherzustellen, dass Ressourcen und Inhalte nur für autorisierte Benutzer sichtbar sind.

Eine umfassende Testabdeckung ist das A und O für qualitativ hochwertige und zuverlässige Software. Besonders in der Weiterentwicklungsphase eines Projekts sind die Tests hilfreich, da sie die Funktionalität der bestehenden Applikation immer verifizieren. Wird eine Erweiterung an einer Stelle gemacht, kann dies ungewollte Einflüsse auf andere Teile der Applikation haben. Die Tests helfen solche Nebeneffekte direkt aufzudecken und zu minimieren. Sie werden bei uns in der lokalen Entwicklung individuell ausgeführt und vor jedem Checkout via Bitbucket Pipelines (Continuous Integration) automatisch durchlaufen.

Behavior driven development

Mit Behat beschreiben wir Test-Szenarien. Diese werden in Form von Sätzen mit ausformulierten Regeln definiert. Je nach Komplexität des Tests werden individuelle Code-Blöcke dazu programmiert. Die beschriebenen Test-Szenarien ermöglichen ein effizientes und standardisiertes Schreiben der Tests.

Titel (eine Zeile Kurzbeschreibung der Story) Erklärend: As a [role] (als ... [Rolle]) I want [feature] (möchte ich ...[Feature]) So that [benefit] (damit, um zu, weil ... [Benefit]) Akzeptanz-Kriterien: (als Szenarios umschrieben) Scenario: Title (Szenario: Titel) Given [context] (Gegeben, vorangestellte Tatsache [Kontext]) And [more context] (Und [mehr Kontext]) When [event] (Wenn [Ereignis]) Then [outcome] (Dann [Ergebnis, Ziel]) And [another outcome] (Und [ein weiteres Ergebnis, Ziel]) Scenario: ...

Ghost Inspector

Für automatisierte GUI Tests, insbesondere in Produktiv-Umgebungen, setzen wir auf Ghostinspector. Damit lassen sich Benutzer-Interaktionen im Browser direkt simulieren. Weiter verwenden wir Ghostinspector um Veränderungen in GUI-Bereichen auf Websites oder Applikationen automatisiert festzustellen. Datenschutz-Themen können mit Ghostinspector adressiert werden. Wir stellen zum Beispiel sicher, dass die Cookie-Meldung immer erscheint und noch keine Skripte geladen werden, bevor der Benutzer auf "Cookies akzeptieren" klickt.