Warum ist Qualitätssicherung überhaupt wichtig? Und wo beginnt sie? Wichtig ist, dass man anfängt, nicht dass alles perfekt erfüllt ist. Je früher Fehler erkannt werden, desto geringer sind die Kosten. Genau hier liegt die Antwort auf die erste Frage. Mit Qualitätssicherung kann man die Fehler nutzen, um den Prozess stabiler zu machen. Magento bringt dafür einiges mit.
ISO-Normen als weltweiter Standard für Qualitätssicherung
Um Qualität zu sichern, braucht es zunächst eine Vorstellung davon, was das ist. Von der Internationalen Organisation für Normung (ISO) werden sogenannte ISO-Normen entwickelt, die weltweit gültige Qualitäts-, Sicherheits- und Einheitlichkeitsstandards festlegen. Jedoch ist diese Organisation Mitte der 90er-Jahre im Industrie-Kontext entstanden. Später kamen weitere Kommissionen wie die Internationale elektrotechnische Kommission (IEC) sowie die Internationale Fernmeldeunion (ITU) hinzu. So finden sich Standards zur Software-Produkt-Qualität z.B. in der ISO/IEC 25010.
Gewichtung vor Perfektion
Qualität definiert sich über verschiedene Eigenschaften, wie z.B. Funktionalität, Effizienz, Sicherheit und Benutzbarkeit. Diese können auch im Widerspruch zueinander stehen. Um ein bestimmtes Maß an Sicherheit zu bekommen, müssen eventuell in der Funktionalität Abstriche gemacht werden. Das Captcha ist ein Beispiel dafür. Magento-Experte Christian Münch, Leiter Entwicklung bei netz98, hebt hervor, dass es wichtig sei, sich bei der Planung eines Magento-Projektes klarzumachen, dass 100 Prozent kaum erreicht werden können und es nicht darauf ankomme, dass alles perfekt erfüllt ist.
Die relevante Frage lautet: Wo liegt der Schwerpunkt bei der Qualität für dieses Projekt? Was ist in meinem speziellen Kontext wichtig? Auf der Basis kann man dann passend zum Budget eine Gewichtung festlegen. Ebenfalls wichtig: dies transparent mit dem Kunden bzw. Shop-Betreiber zu besprechen.
Was ist der Vorteil an einem Qualitäts-Standard?
Das größte Argument für Qualität liegt in der Tatsache, dass Fehler umso teurer sind, je später sie entdeckt werden. Es gibt Studien, die belegen, dass die relativen Kosten, einen Fehler zu korrigieren, an unterschiedlichen Stellen im Projekt unterschiedlich hoch sind.
Ganz vorne bei den Anforderungen, wo noch nicht viel umgesetzt ist, sind die relativen Korrekturkosten am günstigsten. D.h. wenn man Qualitätssicherung betreibt und beim Start des Magento-Projektes den Fehler bereits im Konzept aufdeckt, „dann ist fast nichts passiert“, so Münch. Es lohnt demnach, am Anfang Zeit zu investieren und die Anforderungen gut zu prüfen. Am teuersten ist es, wenn ein Fehler erst in der Produktion realisiert wird. Das kostet dann nicht nur Geld, sondern es kann z.B. auch ein Reputationsschaden entstehen. Wurde ein Sicherheitsproblem produziert, kann der Schaden immense Ausmaße annehmen, wenn dadurch der Onlineshop gehackt wird.
Zielsetzungen unterstützen die Qualitätssicherung
Damit es ein Fehler nicht bis in die Produktion schafft und dort Schaden anrichtet, hilft es, Ziele zu formulieren. Mögliche Ziele können sein:
- Fehler nicht in das Produktivsystem gelangen lassen
- Fehler möglichst frühzeitig finden/abfangen
- Schaden vermeiden (Funktionsfehler/Sicherheit)
- Gesamtkosten (TCO) minimieren
- Kundenzufriedenheit
Das Problem ist, dass die Fehler im Projekt oft nicht auf den ersten Blick zu erkennen sind. Analog zu dem Teil des Eisbergs, der unter dem Wasser liegt, sind sie aber da und können Probleme verursachen, wenn sie nicht aufgedeckt werden. Ohne Qualitätssicherung in einem Magento-Projekt bleiben die Beteiligten ahnungslos und damit handlungsunfähig. Handeln können sie dann erst, wenn der Schaden bereits da ist. Ziel muss es demnach immer sein, Fehler so früh wie möglich zu erkennen.
Definition of Done ist essentiell
Essentiell für die Qualitätssicherung in Magento-Projekten ist auch die Definition, wann etwas fertig ist (Definition of Done). Ansonsten ist es schwierig, zu vergleichen, ob jemand schnell oder langsam arbeitet bzw. was gute oder schlechte Qualität ist. Wo mache ich den Schnitt? Ein Mitarbeiter ist z.B. immer sehr schnell fertig, dafür kommen oft Rückläufe. Das Ergebnis, welches vermeintlich schnell erreicht wurde, ist nicht mehr wirklich erreicht, da die Qualität nicht stimmt.
Ein anderer Mitarbeiter braucht mehr Zeit für ein Ergebnis, dafür ist dies dann sauber und per Qualitätsdefinition gut und tatsächlich fertig. Um Ergebnisse messbar zu machen, empfiehlt sich also eine Aufstellung, welche Kriterien erreicht sein müssen, damit etwas als fertig gilt.
Sichtbarkeit des Qualitätsstatus im Magento-Projekt
Je umfangreicher die betriebliche Landschaft ist und je mehr Projekte, Module und Abhängigkeiten eingebettet sind, desto mehr greift das „Eisberg-Prinzip“. Das bedeutet: Umso mehr unbekannte Probleme lauern unter der Oberfläche. Man sieht sie nicht, aber sie sind da. Die Sichtbarmachung des Qualitätsstatus ist daher wichtig. Vorher gibt es augenscheinlich keine Probleme. Nach Erstellung einer Übersicht hat der Projektmitarbeiter vielleicht 20 davon, jedoch kann er agieren und anfangen, diese zu reduzieren.
Steigender Qualitätsanspruch bringt sowohl einen höheren Aufwand als auch eine stärkere Sichtbarkeit mit sich. Darin liegt eine große Chance. „Man kann Fehler nutzen, um den Prozess stabiler zu machen“, sagt netz98-Magento-Experte Christian Münch. Eine saubere Dokumentation gehöre dazu. Mit der Einführung von Quality Gates sinkt die Anzahl der Auffälligkeiten im Magento-Projekt.
Qualitätssicherung mit Magento
Wer mit Magento arbeitet, hat bereits beste Voraussetzungen für die Qualitätssicherung. Das Shopsystem liefert einiges mit. Alternative Systeme sind weniger gut aufgestellt. So findet sich in Magento beispielsweise folgendes:
- Coding Standards: Sorgen für Qualität im Projekt. Werden bei Magento regelmäßig aktualisiert.
- Test Frameworks: Ermöglichen es, eigene Tests zu implementieren. Beispiele: Unit Test Framework, Integration Test Framework, Webapi Test Framework.
- php-cs-fixer: Kann den Quellcode teilweise selber umformatieren und Fehler fixen.
- Magento Performance Toolkit: Ermöglicht es, die Leistung der Magento-Installationen und die Auswirkungen von Anpassungen zu testen.
- Upgrade Compatibility Tool (Adobe Commerce): Analysiert die Kompatibilität der Funktionalitäten der bestehenden Website, der Erweiterungen von Drittanbietern und der Anpassungen mit der neuesten Adobe-Commerce-Version. Es listet die möglichen Probleme auf, sodass sie während des Adobe-Commerce-Upgrade-Prozesses behoben und vermieden werden können.
- Site-Wide Analysis Tool (Adobe Commerce): Check für Adobe-Commerce-Kunden, der über die Instanz drüber läuft und von außen den Shop auf Fehler, Falscheinstellungen etc. analysiert.
Die Magento Community macht Qualitätssicherung einfach
Wer kein großes Infrastruktur-Setup hat und daher keinen Zugriff auf diverse Tools bzw. Systeme wie z.B. CI/CD hat, der kann einfache Lösungen nutzen. Eine Qualitätssicherung im Kleinen ist besser als gar keine Qualitätssicherung zu betreiben. So ist die Teilautomatisierung von Prozessen beispielsweise über Git Hooks möglich, wenn kein CI/CD vorhanden ist. Zudem ist die Magento Community sehr aktiv und man findet je nach Bedarf fertige Lösungen, die man klonen und für sich anpassen kann.
Bild: freepik