Testautomatisierung für Magento-Projekte

Funktionale Tests sind elementare Bestandteile der Software-Entwicklung und für die Realisierung sicherer und benutzerfreundlicher Magento-Shops unerlässlich. Doch Testen ist zeitaufwändig, bei Entwicklern meist unbeliebt und selten so umfangreich, dass vor dem Livegang der neuen Funktion Fehler im Code stets zuverlässig entdeckt werden. Habe ich Fehler entlarvt, wirft das Testergebnis neue Probleme auf: Auch bei der agilen Entwicklung mit ihren vergleichsweise kurzen Entwicklungszyklen (im Gegensatz zur wasserfallartigen Entwicklung) bleibt am Ende der Iteration nicht genügend Zeit für die Nachbearbeitung, wenn der Fehler zu spät entdeckt wird – der Livegang verzögert sich, der Kunde ist unzufrieden, die Entwickler sind gestresst.

Magento-Experte Vinai Kopp
Workshopleiter Vinai Kopp

Abhilfe kann – zumindest teilweise – die Automatisierung von funktionalen Tests schaffen. Hierbei simuliert das Testprogramm den Frontend-Nutzer und führt beispielsweise einen Kundenlogin im Shop unter Safari aus. Das TUDOCK-Entwicklerteam absolvierte Ende Januar 2015 einen zweitägigen Inhouse-Workshop zur Automatisierung von Funktionstests für Magentoshops unter Leitung von Vinai Kopp. Der Magento-Experte ist Autor mehrerer Magento-Bücher, offizieller Magento U Developer Trainer und Mitglied des Magento Certification Advisory Boards. Vinai Kopp arbeitet außerdem als freier Magento-Entwickler, Magento-Trainer und technischer Berater. Nach dem Workshop war Vinai so freundlich, mir ein schriftliches Interview zum automatisierten Testen unter Magento zu geben:

Magento-Experte Vinai Kopp im Interview

Worum geht es bei der Testautomatisierung?

Vinai: Das ist ein großes Feld. Automatisierte Tests können auf verschiedenen Ebenen der System-Architektur stattfinden. Auf jeder Ebene werden andere Aspekte geprüft. Die Ziele sind jedoch immer dieselben:

  • Schnelleres Finden von Fehlern
  • Reduzierung des manuellen Testaufwands
  • Bessere und kalkulierbare Wartbarkeit
  • Zuverlässigere Projektabwicklung
  • Unterstützung bei der Entwicklung der System-Architektur

Welche Vorteile hat die Testautomatisierung?

Vinai: Jede Test-Ebene bringt bestimmte Vorteile:

  • Funktionale Tests sichern, dass wichtige User-Stories wie gewünscht funktionieren.
  • Integrations-Tests stellen sicher, dass einzelne System- und Software-Komponenten korrekt zusammenarbeiten.
  • Unit-Tests unterstützen einen Entwickler bei der Wartung und Entwicklung der einzelnen Software-Komponenten.

Auch wenn das Programmieren von Tests Zeit benötigt, werden im Schnitt unter dem Strich Projekte schneller abgeschlossen. Der Grund dafür ist, dass viel weniger Aufwand für Fehlersuche und Nacharbeit benötigt wird.

Wofür kann ich automatisierte Tests im Rahmen der Shopentwicklung mit Magento konkret einsetzen?

Vinai: Wie bei jedem Software Projekt kann fast alles automatisiert getestet werden. Da der Software-Kern von Magento jedoch nicht durch Unit-Tests abgedeckt ist und die Architektur es einem nicht einfach macht, werden in der Regel mehr Integrations- und funktionale Tests bei Magento-Projekten eingesetzt.
Gerade die Absicherung der wichtigsten User-Stories durch funktionale Tests ist sehr wertvoll. Typische funktionale Test-Fälle für ein Shop-Projekt wären zum Beispiel das Hinzufügen von Produkten in den Warenkorb und der Checkout-Prozess.

Welche Testfälle sollte ich nicht automatisieren? Wo liegen die Nachteile oder gar Gefahren der Testautomatisierung?

Vinai: Die größte Gefahr liegt darin, viel Aufwand in das Schreiben von Tests zu investieren, welche keinen wirklichen Mehrwert für ein Projekt darstellen. Solche Tests decken entweder eher unwichtige Aspekte eines Projektes ab oder müssen mit viel Aufwand an jede Änderung an dem Projekt angepasst werden. Beides kann durch Planung und Erfahrung vermieden werden.

Welche Kompetenzen und Tools brauche ich, um automatisierte Tests für einen Magento-Shop aufzusetzen?

Vinai: Es gibt viele Werkzeuge, unter denen das passende ausgewählt werden kann. Ein Standard für PHP-Software ist PHPUnit. Ein Vorteil dieses Werkzeuges ist, dass alle Ebenen damit getestet werden können. Für funktionale Tests wird häufig Selenium 2 zur Fernsteuerung von Browsern verwendet. Auch da gibt es viele Bibliotheken im PHP-Umfeld, wie zum Beispiel phpunit-mink.

Wie führe ich die Testautomatisierung am besten ein, wo fange ich an?

Vinai: Zuerst muss bekannt sein, wie die Test-Werkzeuge genutzt werden können. Diese technische Grundlage kann zum Beispiel in einem Training vermittelt werden.
Das weitere Vorgehen kommt darauf an, auf welcher Ebene automatisierte Tests eingeführt werden sollen.
Das Einführen von Tests in die gewohnten Arbeitsabläufe ist meistens die größte Hürde. Gewohnheiten sind schwieriger zu ändern als das Lernen einer neuen Technologie.

Wie komme ich zu aussagekräftigen Ergebnissen, auf was muss ich achten?

Vinai: Wenn Tests geschrieben sind, ist der Einsatz eines Continuous Integration Servers sehr hilfreich. Er automatisiert das Ausführen der Tests bei jeder Änderung am System und macht die Ergebnisse für alle Beteiligten sichtbar.
Auch Fehler und Löcher in der Test-Abdeckung werden so schneller sichtbar.

Stichwort Test Driven Development: Wie integriere ich die Testautomatisierung in Scrum?

Vinai: Scrum ist ein wichtiger Prozess bei der agilen Softwareentwicklung. TDD ist ein genauso wichtiger Aspekt, nur im Unterschied zu Scrum ist TDD auf der technischen Seite angesiedelt. Um erfolgreich agile Softwareentwicklung zu betreiben, sind sowohl die Prozesse als auch die technischen Aspekte wichtig.

Kannst du Angaben zum Initialaufwand machen, der entsteht, wenn ich für ein Magento-Projekt erstmals automatisierte Funktionstests nutzen möchte (Zeitaufwand für das Aufsetzen der Tests, Kosten)?

Vinai: Dazu kann leider keine allgemeine Aussage gemacht werden, da viele Faktoren berücksichtigt werden müssen. In die Rechnung sollten zum Beispiel die Anzahl und der Erfahrungsstand der Programmierer, die Komplexität des Projektes und die Menge der zu testenden Funktionen einfließen.
Glücklicherweise kann die Einführung jedoch in Schritten erfolgen, sodass die Kosten überschaubar bleiben.

Wo bekomme ich weitere Informationen zum Thema (deine Empfehlung)?

Vinai: Ein guter Einstieg ist sicher der Austausch mit anderen Programmierern auf User Groups. Bei Büchern zu dem Thema ist es oft nicht so wichtig, in welchen Programmier-Sprachen die Beispiele geschrieben sind; es kommt mehr auf die dahinterliegenden Konzepte und Ideen an. Der Klassiker zum Thema TDD ist Test Driven Development By Example von Kent Beck.

Autor: Kategorie: Webentwicklung
Schlagwörter: Magento, Wissen
YTo2OntzOjY6ImZldXNlciI7aTowO3M6MzoicGlkIjtpOjk3O3M6MzoiY2lkIjtpOjEwOTcxMjQxOTU7czo0OiJjb25mIjthOjEwOntzOjEwOiJzdG9yYWdlUGlkIjtpOjEyNDtzOjE0OiJleHRlcm5hbFByZWZpeCI7czoxMToidHhfbmV3c19waTEiO3M6MTM6IlVzZXJJbWFnZVNpemUiO2k6MTg7czo5OiJhZHZhbmNlZC4iO2E6MTp7czoyMToic2hvd0NvdW50Q29tbWVudFZpZXdzIjtpOjA7fXM6ODoic2hhcmluZy4iO2E6MTp7czoxMjoidXNlU2hhcmVJY29uIjtOO31zOjg6InJhdGluZ3MuIjthOjM6e3M6MTY6InJhdGluZ0ltYWdlV2lkdGgiO2k6MTE7czoxNjoicmV2aWV3SW1hZ2VXaWR0aCI7aToxNjtzOjg6Im1vZGVwbHVzIjtzOjQ6ImF1dG8iO31zOjY6InRoZW1lLiI7YTo3OntzOjI2OiJib3htb2RlbFRleHRhcmVhTGluZUhlaWdodCI7aTozMDtzOjI0OiJib3htb2RlbFRleHRhcmVhTmJyTGluZXMiO2k6NDtzOjE1OiJib3htb2RlbFNwYWNpbmciO2k6MTA7czoxODoiYm94bW9kZWxMaW5lSGVpZ2h0IjtpOjIwO3M6MTg6ImJveG1vZGVsTGFiZWxXaWR0aCI7aToxMzQ7czoyNjoiYm94bW9kZWxMYWJlbElucHV0UHJlc2VydmUiO2k6MTtzOjIyOiJib3htb2RlbElucHV0RmllbGRTaXplIjtpOjM1O31zOjE3OiJwcmVmaXhUb1RhYmxlTWFwLiI7YToxMDp7czoxNDoidHhfYWxidW0zeF9waTEiO3M6MTc6InR4X2FsYnVtM3hfaW1hZ2VzIjtzOjE1OiJ0eF9jb21tZXJjZV9waTEiO3M6MjA6InR4X2NvbW1lcmNlX3Byb2R1Y3RzIjtzOjEyOiJ0eF9pcmZhcV9waTEiO3M6MTA6InR4X2lyZmFxX3EiO3M6MTU6InR4X21pbmluZXdzX3BpMSI7czoxNjoidHhfbWluaW5ld3NfbmV3cyI7czo5OiJ0eF90dG5ld3MiO3M6NzoidHRfbmV3cyI7czoxMToidHRfcHJvZHVjdHMiO3M6MTE6InR0X3Byb2R1Y3RzIjtzOjI0OiJ0eF93ZWNzdGFmZmRpcmVjdG9yeV9waTEiO3M6MjU6InR4X3dlY3N0YWZmZGlyZWN0b3J5X2luZm8iO3M6MTI6InR4X2NvbW11bml0eSI7czo4OiJmZV91c2VycyI7czoxOToidHhfY3d0Y29tbXVuaXR5X3BpMSI7czo4OiJmZV91c2VycyI7czoxMToidHhfbmV3c19waTEiO3M6MjU6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3MiO31zOjExOiJzaG93VWlkTWFwLiI7YTo1OntzOjk6InR4X3R0bmV3cyI7czo3OiJ0dF9uZXdzIjtzOjExOiJ0dF9wcm9kdWN0cyI7czo3OiJwcm9kdWN0IjtzOjEyOiJ0eF9jb21tdW5pdHkiO3M6NDoidXNlciI7czoxOToidHhfY3d0Y29tbXVuaXR5X3BpMSI7czoyNToiYWN0aW9uPWdldHZpZXdwcm9maWxlJnVpZCI7czoxMToidHhfbmV3c19waTEiO3M6NDoibmV3cyI7fXM6MTI6IlJlcXVpcmVkTWFyayI7czoxOiIqIjt9czo0OiJsYW5nIjtzOjI6ImRlIjtzOjM6InJlZiI7czoyOToidHhfbmV3c19kb21haW5fbW9kZWxfbmV3c18xOTUiO30%3DYTo0OntzOjQ6ImNvbmYiO2E6MzU6e3M6MTc6InVzZVdlYnBhZ2VQcmV2aWV3IjtzOjE6IjEiO3M6MjI6InVzZVdlYnBhZ2VWaWRlb1ByZXZpZXciO3M6MToiMSI7czoyMDoid2VicGFnZVByZXZpZXdIZWlnaHQiO3M6MjoiNzAiO3M6MjA6Im1heENoYXJzUHJldmlld1RpdGxlIjtzOjI6IjcwIjtzOjMxOiJ3ZWJwYWdlUHJldmlld0Rlc2NyaXB0aW9uTGVuZ3RoIjtzOjM6IjE2MCI7czozODoid2VicGFnZVByZXZpZXdEZXNjcmlwdGlvbk1pbmltYWxMZW5ndGgiO3M6MjoiNjAiO3M6Mjc6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lUGFnZSI7czozOiIxODAiO3M6MzM6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lVGVtcEltYWdlcyI7czoyOiI2MCI7czozMDoid2VicGFnZVByZXZpZXdDYWNoZUNsZWFyTWFudWFsIjtzOjE6IjAiO3M6Mjg6IndlYnBhZ2VQcmV2aWV3TnVtYmVyT2ZJbWFnZXMiO3M6MjoiMTAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbmltYWxJbWFnZUZpbGVTaXplIjtzOjQ6IjE1MDAiO3M6MzA6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbkltYWdlU2l6ZSI7czoyOiI0MCI7czozMDoid2VicGFnZVByZXZpZXdTY2FuTWF4SW1hZ2VTaXplIjtzOjM6IjQ1MCI7czoyOToid2VicGFnZVByZXZpZXdTY2FuTWluTG9nb1NpemUiO3M6MjoiMzAiO3M6MzE6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnMiO3M6MjoiNDAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnNGb3JMb2dvIjtzOjI6IjU1IjtzOjQwOiJ3ZWJwYWdlUHJldmlld1NjYW5NYXhIb3J6aXpvbnRhbFJlbGF0aW9uIjtzOjI6IjU7IjtzOjM3OiJ3ZWJwYWdlUHJldmlld1NjYW5tYXh2ZXJ0aWNhbHJlbGF0aW9uIjtzOjE6IjMiO3M6MzA6IndlYnBhZ2VQcmV2aWV3U2NhbkxvZ29QYXR0ZXJucyI7czoxMDoibG9nbyxjcmdodCI7czozODoid2VicGFnZVByZXZpZXdTY2FuRXhjbHVkZUltYWdlUGF0dGVybnMiO3M6NTc6InBpeGVsdHJhbnMsc3BhY2VyLHlvdXR1YmUscmNsb2dvcyx3aGl0ZSx0cmFuc3BhLGJnX3RlYXNlciI7czozODoid2VicGFnZVByZXZpZXdEZXNjcmlwdGlvblBvcnRpb25MZW5ndGgiO3M6MjoiNDAiO3M6MjU6IndlYnBhZ2VQcmV2aWV3Q3VybFRpbWVvdXQiO3M6NDoiNzAwMCI7czoxMjoidXNlUGljVXBsb2FkIjtzOjE6IjAiO3M6MTI6InVzZVBkZlVwbG9hZCI7czoxOiIwIjtzOjEzOiJwaWNVcGxvYWREaW1zIjtzOjM6IjEwMCI7czoxNjoicGljVXBsb2FkTWF4RGltWCI7czozOiI4MDAiO3M6MTY6InBpY1VwbG9hZE1heERpbVkiO3M6MzoiOTAwIjtzOjIyOiJwaWNVcGxvYWRNYXhEaW1XZWJwYWdlIjtzOjM6IjQ3MCI7czoyMzoicGljVXBsb2FkTWF4RGltWVdlYnBhZ2UiO3M6MzoiMzAwIjtzOjIwOiJwaWNVcGxvYWRNYXhmaWxlc2l6ZSI7czo0OiIyNTAwIjtzOjIwOiJwZGZVcGxvYWRNYXhmaWxlc2l6ZSI7czo0OiIzMDAwIjtzOjE4OiJzb3VuZGNsb3VkQ2xpZW50SUQiO3M6MDoiIjtzOjIyOiJzb3VuZGNsb3VkQ2xpZW50U2VjcmV0IjtzOjA6IiI7czoyMDoidXNlVG9wV2VicGFnZVByZXZpZXciO3M6MDoiIjtzOjI0OiJ0b3BXZWJwYWdlUHJldmlld1BpY3R1cmUiO2k6MDt9czoxMToiYXdhaXRnb29nbGUiO3M6Mjg6IldhcnRlIGF1ZiBBbnR3b3J0IHZvbiBHb29nbGUiO3M6ODoidHh0aW1hZ2UiO3M6MTM6IkJpbGQgZ2VmdW5kZW4iO3M6OToidHh0aW1hZ2VzIjtzOjE1OiJCaWxkZXIgZ2VmdW5kZW4iO30%3DYTowOnt9YTowOnt9YTo3OntzOjE2OiJjb21tZW50TGlzdEluZGV4IjthOjE6e3M6MzI6ImNpZHR4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMTk1IjthOjE6e3M6MTA6InN0YXJ0SW5kZXgiO2k6MTU7fX1zOjE0OiJjb21tZW50c1BhZ2VJZCI7aTo5NztzOjE2OiJjb21tZW50TGlzdENvdW50IjtpOjEwOTcxMjQxOTU7czoxMjoiYWN0aXZlbGFuZ2lkIjtpOjA7czoxNzoiY29tbWVudExpc3RSZWNvcmQiO3M6Mjk6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMTk1IjtzOjEyOiJmaW5kYW5jaG9yb2siO3M6MToiMCI7czoxMjoibmV3Y29tbWVudGlkIjtOO30%3D YTo1OntzOjExOiJleHRlcm5hbFVpZCI7aToxOTU7czoxMjoic2hvd1VpZFBhcmFtIjtzOjQ6Im5ld3MiO3M6MTY6ImZvcmVpZ25UYWJsZU5hbWUiO3M6MjU6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3MiO3M6NToid2hlcmUiO3M6MTcwOiJhcHByb3ZlZD0xIEFORCBleHRlcm5hbF9yZWY9J3R4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMTk1JyBBTkQgcGlkPTEyNCBBTkQgdHhfdG9jdG9jX2NvbW1lbnRzX2NvbW1lbnRzLmRlbGV0ZWQ9MCBBTkQgdHhfdG9jdG9jX2NvbW1lbnRzX2NvbW1lbnRzLmhpZGRlbj0wIEFORCBwYXJlbnR1aWQ9MCI7czoxMDoid2hlcmVfZHBjayI7czoxMzk6ImV4dGVybmFsX3JlZj0ndHhfbmV3c19kb21haW5fbW9kZWxfbmV3c18xOTUnIEFORCBwaWQ9MTI0IEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuZGVsZXRlZD0wIEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuaGlkZGVuPTAiO30%3D YToyOntpOjA7czoxNDk6IjxpbWcgc3JjPSIvdHlwbzNjb25mL2V4dC90b2N0b2NfY29tbWVudHMvcmVzL2Nzcy90aGVtZXMvdHVkb2NrL2ltZy9wcm9maWxlLnBuZyIgY2xhc3M9InR4LXRjLXVzZXJwaWMgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjtpOjk5OTk5O3M6MTUxOiI8aW1nIHNyYz0iL3R5cG8zY29uZi9leHQvdG9jdG9jX2NvbW1lbnRzL3Jlcy9jc3MvdGhlbWVzL3R1ZG9jay9pbWcvcHJvZmlsZWYucG5nIiBjbGFzcz0idHgtdGMtdXNlcnBpY2YgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjt9
Bitte bestätigen Sie
Nein
Ja
Information
Ok
Vorschau wird geladen ...
* Pflichtfeld
Ihr Kommentar ist eine Antwort auf den folgenden Kommentar

Wir behalten uns vor, Kommentare zu löschen, beispielsweise wenn sich diese nicht auf den Beitrag beziehen, zur Eigenwerbung missbraucht werden, persönliche Daten anderer enthalten, diskriminieren, beleidigen oder Rechte verletzen.

Datenschutzhinweis: Wenn Sie einen Kommentar oder sonstigen Beitrag in unserem Blog hinterlassen, speichern wir neben Ihren Angaben Ihre IP-Adresse. Darüber hinaus können Sie die Beiträge und Kommentare unseres Blogs abonnieren. Das Kommentarabonnement können Sie jederzeit abbestellen. Weitere Informationen finden Sie in unserer Datenschutzerklärung.

E-Commerce & Webentwicklung: Wir realisieren und optimieren Internetprojekte. Unser Fachgebiet sind Onlineshops, Rich Internet Applications und anspruchsvolle Onlineauftritte. Über unsere Arbeit schreiben wir. Hier im Blog von TUDOCK.