Shopbetreiber sind darauf angewiesen, dass die technischen Funktionalitäten in Ihrem E-Commerce jederzeit wie gewünscht funktionieren. Dazu sind Tests notwendig. Dabei ist das Testen keine einmalige Angelegenheit nach Einrichtung des Onlineshops, sondern muss kontinuierlich im laufenden Betrieb fortgesetzt werden. Ideal ist es, wenn in allen Stadien des Projektes Onlineshop von der Einrichtung, über den laufenden Betrieb bis hin zur Zuführung spezieller Elemente regelmäßig sowie immer wieder getestet wird. Bereits in der Entwicklung eines Onlineshops ist das Testen ein unverzichtbares Element. Um Umsatzausfälle zu vermeiden und jederzeit eine optimale Performance des Shops zu sichern, kommt diesem regelmäßigem Testen eine große Bedeutung zu. Leider wird dieser Aspekt von den Shopbetreibern immer noch nicht ausreichend gewürdigt. Für das Testen spielt zum einen die Hostingumgebung, zum Beispiel durch Einrichtung spezieller Testumgebungen, zum anderen aber auch eine Vereinfachung der Testvorgänge durch automatisiertes Testen eine Rolle. Was ist automatisiertes Testen und wie planen sie es?
Was sind automatisierte Tests?
Die Funktionalitäten in einem Onlineshop könnten jederzeit manuell getestet werden. Allerdings setzt dies profunde Kenntnisse der zu testenden Elemente voraus, kann zeitaufwendig und mühsam sein. Wer sich auf manuelles Testen verlassen würde, verliert vielleicht schnell die Lust an diesen Routineaufgaben und vernachlässigt sie wahrscheinlich. Sie scheinen nicht in das Tagesgeschäft im E-Commerce zu passen. Dabei sichern die aber den Erfolg des E-Commerce und die Kundenbindung. Kunden verlieren im E-Commerce schnell die Geduld, wenn sie sich mit Fehlern bei Bestellabläufen quälen müssen. Reibungslose Abläufe und Komfort sind die besten Voraussetzungen für den Erfolg im E-Commerce. Das gilt sowohl für das Endkundengeschäft als auch im B2B-Bereich. Automatisierte Tests können hier Abhilfe schaffen. Bei automatisierten Tests handelt es sich um spezielle Programme. Anhand bestimmter Routinen wird die Durchführung von Tests mithilfe festgesetzter Parameter gesteuert. Außerdem wird in einem gewissen Umfang das Ergebnis des Tests mit zu erwartenden Ergebnissen verglichen. Insoweit werden sich wiederholende, notwendige Aufgaben in einem bereits strukturierten und formalisierten Testprozess automatisiert. Außerdem sind Tests möglich, die aufgrund ihrer Komplexität manuell nur sehr schwer durchzuführen sind.
Warum automatisiert testen?
Im Mittelpunkt des automatisierten Testen bei Onlineshops stehen Oberflächentests.Man spricht hier auch von Integrations-Tests. Mit ihnen ist es möglich, die wichtigsten Komponenten eines Onlineshops systematisch und regelmäßig durchzutesten. Hochwertige Infrastrukturen für Onlineshops sind keine statische Angelegenheit. Sie entwickeln sich permanent weiter und werden ständig optimiert. Jede kleine Änderung des Codes kann dabei Folgen haben, die auf den ersten Blick nicht immer abzusehen sind. Wer hier leichtsinnig vorgeht, kann es mit einem Total-Ausfall seines gesamten Systems zu tun bekommen. Jedes Update kann hier bereits ein solches Risiko bergen. Genau deshalb sind die kontinuierlichen Funktionstests im Frontend-Bereich eine notwendige und in ihrer Bedeutung kann zu unterschätzende Maßnahme der Qualitätssicherung. Als Shopbetreiber haben Sie dabei von automatisierten Testen folgende Vorteile: Sie minimieren das Risiko von Umsatz- und Ertragsausfällen durch technische Probleme. Automatisiertes Testen erspart Ihnen viel Zeit. Sie sichern die Qualität und die Funktionalitäten des Onlineshops konstant und permanent. Sie verfügen im Idealfall je nach Anspruch des Testprogramms über übersichtliche Testdokumentationen, die sogar in Form von Videoaufzeichnungen jederzeit eine Nachvollziehbarkeit von Testung und Testergebnissen ermöglichen.
Die Arten von Tests
Die klassische Form des automatisierten Testes ist der sogenannte Integrations-Test (Oberflächentest). Bei dieser Testform simuliert ein Browser den Aufruf einer Webanwendung. Dabei wird dann das Verhalten der Anwendung vor allem im Hinblick auf bestimmte Interaktionen des Benutzers automatisiert getestet. Oberflächentests benötigen deshalb eine weitere Infrastruktur, um die Testumgebung auch bezogen auf verschiedene Browser zu gestalten. Der Oberflächentest dient der Testung eines ganzen Moduls. Beispielsweise wird der gesamte Check-Out Prozess getestet, um in diesem sensiblen Bereich Ausfälle zu vermeiden. Diese könnten etwa entstehen, wenn plötzlich eine Zahlungsart nicht mehr zur Verfügung steht. Manchmal werden zwischen Integrations-Tests und sogenannten Seleniumtests als spezifischen Oberflächentests noch Unterschiede gemacht. Selenium ist eine Open Source Software, die im Bereich der automatisierten Tests bekannt und beliebt. Sie bietet viele Möglichkeiten, erfordert aber auch eine komplexere Grundkonfiguration und die Arbeit mit einem Seleniumserver. Zu unterscheiden von den Oberflächentests sind die Funktionstests. Sie sind einfacher gestaltet. Bei ihnen geht es um die Testung einzelner Funktionen, wie Beispiel einer speziellen Berechnungsfunktion. Die Funktion wird anhand vorher definierter Parameter aufgerufen, ein Berechnungswert ermittelt und dieser mit einem entsprechenden erwarteten Wert abgeglichen.
Was sind Asserts- die Programmierung hinter automatisierten Tests
Ursprünglich werden automatisierte Tests beispielsweise in der Programmiersprache PHP individuell entwickelt. Man kann dies an den sogenannten Asserts recht gut sehen. Die Asserts ermöglichen die Bewertung von Testergebnissen in automatisierter Form, indem sie Ergebnisse selbst auswerten,. Möglichst wird das über rechnerische Funktionen. Typische Funktionen können etwas so aussehen:
$this->assertEquals(X); - Test entspricht dem erwarteten X
$this->assertNotEquals(X); - Test entspricht nicht dem erwarteten X
Ergänzung zum automatisierten Testen: Spezielle Testumgebungen schaffen
Neben der Anwendung einer Software zur Testautomatisierung kann es außerdem hilfreich und teilweise notwendig sein, einen speziellen Testserver einzurichten. Eine Testserver Umgebung ist insbesondere dann interessant, wenn größere Veränderungen an einem Onlineshop vorgenommen werden sollen. Ohne den Produktivshop zu beeinflussen, können die Veränderungen vorher in der Testumgebung auf ihre Kompatibilität mit dem bisherigen System getestet werden, zum Beispiel bei einem umfangreichen Update. Diese spezielle Testumgebung kann auch bei Zufügung eines neu Plugins interessant sein, um dessen Zusammenspiel mit dem Shopsystem zu testen, bevor es in den Aktivshop integriert wird. Es gibt verschiedene Staging-Anbieter - Anbieter für Testserver. Hier sind etwa Netzperfect, Mittwald oder 8mylez für Shopware Onlineshops zu nennen. Außerdem bietet es sich an, für spezielle Funktionen wie beispielsweise bei den Plugins eine spezifische Testumgebung zu schaffen. Bei Shopware ist das etwa mit einer PHPUnit-Testumgebung möglich, die gesondert eingerichtet wird.
Testautomatisierung für Shopware
Es gibt eine ganze Reihe von speziellen Programmen für die Testautomatisierung. Nicht alle aber sind in gleicher Weise auf die speziellen Bedürfnisse des E-Commerce ausgerichtet. Außerdem erfordern manche Programme einen nicht unerheblichen Aufwand bei der Implementierung. Das gilt auch für die Open Source Software Selenium. Je nachdem, wie intensiv der einzelne Shop bereits Traffic verarbeitet und wie hoch das Bestellaufkommen im einzelnen Fall ist, ist einige Zeit für die Implementierung von Selenium oder eines anderes Testprogramms einzuberechnen. Es kann deshalb sinnvoll sein, sich bei der Auswahl der Software für automatisierte Tests beraten zu lassen und sich Testumgebungen individuell professionell einrichten zu lassen. Dabei programmieren wir Ihnen auch gern Ihren individuelle Testumgebung und automatisierte Testung. Wir stehen Ihnen bei Signundsinn jederzeit zur Verfügung., wenn es um Testautomatisierung und die gesicherte Performance Ihres Webshops geht. Gemeinsam sichern wir Ihren Erfolg im E-Commerce.