
Die aktuelle Version von PrestaShop wurde im Dezember 2018 gestartet. Die jüngste, zum Download bereitgestellte Nebenversion des PrestaShop-Projekts ist PrestaShop 1.7.5.0, die weitgehend auf Rückmeldungen unserer Community basiert. Diese Version enthält neue Funktionen und Verbesserungen für Back Office und Front Office wie z. B.:  SEO-Optimierungen, dynamische Vorschau der Google-Suchergebnisse für Ihr Produkt, optimierte Seitenladezeiten und vieles mehr! Lesen Sie unseren Artikel zu dieser Version!
Seit dem Start von PrestaShop 1.7.5.0 haben wir hinsichtlich der Stabilität dieser neuen Version viele Fragen erhalten.  Claudia Rodriguez, PrestaShop-Botschafterin in Mexiko, stellte folgende Frage: „Die Version 1.7.5 hat bei mir gut funktioniert. Haben Sie Informationen zur Beseitigung der Zweifel hinsichtlich der Stabilität?“.  In diesem Artikel werden wir auf die Frage von Claudia eingehen und klären, was die wahre Definition von „Softwarestabilität“ ist und wie die Teams von PrestaShop die Softwaretestverfahren verbessert haben, um für mehr Stabilität zu sorgen.
Â
Stabil im Sinne von „keine Fehler“
Mit PrestaShop v1.7.5.0 wurden 114 gemeldete Fehler behoben (Quelle: http://build.prestashop.com/news/prestashop-1-7-5-0-available/). Das sind doppelt so viele wie mit der vorherigen Nebenversion PrestaShop 1.7.4.0 (Quelle: http://build.prestashop.com/news/prestashop-1-7-4-0-available/). Darüber hinaus zwangen uns Qualitätsprobleme, die kurz nach dem öffentlichen Release von PS 1.7.4.0 ans Licht kamen, zur Veröffentlichung von drei Patch-Versionen in kürzester Zeit. Dies war mit PS 1.7.5.0 nicht der Fall. Da mit dieser Version nach der Veröffentlichung keine kritischen Probleme auftraten, wurde hier die erste Patch-Version für 1.7.5 (1.7.5.1) zwei Monate nach der 1.7.5.0 veröffentlicht. PS 1.7.5.0 hat sich daher als sehr zuverlässig erwiesen, da keine dringend benötigten Patches erforderlich waren.
Was haben wir zwischen den Versionen 1.7.4.0 und 1.7.5.0 zur Verbesserung getan? Wir haben erkannt, wie wichtig es ist, der Community genügend Zeit für das Testen neuer Versionen zu geben, damit Regressionen vor und nicht nach dem öffentlichen Release behoben werden können.  Aus diesem Grund haben wir ab Version 1.7.5.0 damit begonnen, einen verlängerten Betazeitraum von einem vollen Monat (die zweite Phase des Softwaretests, in der eine Auswahl des Zielpublikums das Produkt testet) für die neuen Nebenversionen bereitzustellen. Mit Version 1.7.5.0 nutzten wir diese zusätzliche Zeit, um Feedback und Fehlerberichte von den Mitwirkenden und Partner-Agenturen zu sammeln. Das war der längste Betazeitraum in unserer Geschichte. Die Tatsache, dass kurz nach dem öffentlichen Release keine Patch-Version veröffentlicht werden musste, beweist, dass dieser Zeitraum wesentlich zur Stabilisierung und Konsolidierung dieser neuen Version beigetragen hat.
Während diese Beta den PS-Nutzern über einen Zeitraum von 1 Monat zur Fehlersuche zur Verfügung stand, waren aber auch die Entwickler und das QS-Team schwer mit dem Betatest des Release beschäftigt.
Â
Stabil im Sinne von „ausführlich getestet“
Mit PS 1.7 wurde die Anwendung automatisierter Tests für das PrestaShop-Projekt eingeführt:
- Komponententests zur Überprüfung ausgewählter Codeteile, um sicherzustellen, dass sie sich in Isolation richtig verhalten,
- Integrationstests zur Prüfung, dass die Codebasis als Ganzes richtig funktioniert, sowie
- End-to-End-Tests für die Automatisierung von Browseraktionen, um sicherzustellen, dass die Anwendung aus Sicht des Nutzers wie vorgesehen funktioniert.
Durch diese Tests kann das Entwicklungsteam schnell erkennen, wenn Teile des Systems ihre Arbeit einstellen, und sie werden für jede Pull-Anforderung (Codebeitrag) auf GitHub ausgeführt.
Die Anzahl der Tests steigt mit jeder neuen Version von PrestaShop und das System für deren Ausführung wird vom Entwicklungsteam kontinuierlich verbessert. All das kann auf GitHub nachverfolgt werden (und auch die gesamte Community kann hier mitwirken!).
Aber auch der Prozess für die Qualitätssicherung (QS) ist jetzt sehr exakt und robust.
Wann immer ein Entwickler den Quellcode ändern möchte (um einen Fehler zu beheben oder um ein neues Verhalten hinzuzufügen, das für die Nutzer hilfreich ist), sendet dieser eine Pull-Anforderung auf GitHub.
Diese Pull-Anforderung wird zuerst analysiert, um zu gewährleisten, dass:
- ein korrektes Codeformat vorliegt
- Komponenten-, Integrations- und End-to-End-Tests durch diese neue Codeversion nicht beeinträchtigt werden
- der Code mit der Codebasis zusammengeführt werden kann, ohne dass Probleme auftreten
Hinweis: Es wird nicht für jeden PR die vollständige Reihe an End-to-End-Tests durchgeführt, da das für die gesamte Anwendung sehr viel Zeit in Anspruch nimmt (8 Stunden oder mehr!). Die vollständige Reihe an Tests wird jedoch jede Nacht während des „Nightly Build“-Prozesses ausgeführt, bei dem der Quellcode jede Nacht automatisch erstellt und getestet wird. Entsteht also durch die Änderung ein Fehler, erhalten wir am nächsten Morgen einen Bericht, aus dem wir entnehmen können, worin genau der Fehler besteht, damit dieser behoben werden kann. Nightly Builds und Testberichte finden Sie hier: https://nightly.prestashop.com/
Sind die automatisierten Tests erfolgreich, wird die Pull-Anforderung von einem Kernentwickler überprüft, um sicherzustellen, dass die übermittelte Änderung korrekt und von Nutzen ist Werden Probleme gefunden, kommunizieren Prüfer und Entwickler miteinander, um eine Lösung für diese Probleme zu finden. In manchen Fällen kann der Kernentwickler andere Personen um Hilfe bitten, die für das Problem relevant sind: Das Designteam (wenn die Pull-Anforderung das PrestaShop-Design ändert), das Produktteam (wenn die Pull-Anforderung das PrestaShop-Verhalten ändert) und andere Entwickler oder Community-Mitglieder.
Sobald der Code überprüft und freigegeben wurde (wie z. B. nach der Durchführung von Änderungen), wird die Pull-Anforderung vom QS-Team getestet und geprüft, ob der Code aus Sicht des Nutzers richtig funktioniert UND andere Funktionen nicht beeinträchtigt werden, die zuvor einwandfrei arbeiteten.
In der Zukunft wird der größte Teil dieser Arbeit automatisiert sein, aber für den Moment benötigen wir eine Kombination aus beidem - die automatische und die menschliche Qualitätssicherung. Werden Probleme gefunden, kommunizieren QS-Analyst und Entwickler miteinander, um die Pull-Anforderung zu beheben. Es werden aber auch andere Prüfungen durchgeführt wie beispielsweise die Freigabe neuer Formulierungen. Da die Lokalisierung in PrestaShop eine wichtige Funktion darstellt, müssen bei der Änderung von Texten oder Inhalten in der Anwendung durch eine Pull-Anforderung (was sich auf deren Übersetzung auswirkt) diese auch vom Content Manager genehmigt werden.
Sobald alle Genehmigungen vorhanden sind, kann die Pull-Anforderung mit der Codebasis zusammengeführt werden!
Wie Sie sehen können, fließt viel Arbeit in die Minimierung des Risikos, dass durch Code-Änderungen neue Fehler verursacht werden. Natürlich sind Fehler nicht zu vermeiden, aber beim Auftreten einer Regression wird diese meistens vom QS-Team entdeckt und vor dem Release korrigiert. Das QS-Team prüft die Pull-Anforderungen sehr gründlich und testet spezielle Anwendungsfälle wie mehrere Shops, mehrere Sprachen, Rechts-nach-links-Schreibrichtung usw.
Wir haben einige Rückmeldungen von Mitwirkenden erhalten, die die alte Methode bevorzugten, bei der Pull-Anforderungen mit wenig oder gar keiner Überprüfung zusammengeführt werden. Diese Ära ist für immer vorbei. Wir haben den Weg der stetig steigenden Qualität und Stabilität gewählt und obwohl dieser Prozess anstrengend und zeitaufwändig ist, planen wir, ihn beizubehalten, da er sich als sehr zuverlässig erwiesen hat.
Â
Stabil im Sinne von „auf festem Boden“
Bei PrestaShop 1.7 geht es um die Migration von PrestaShop von einem eigenen Webframework zum Branchenstandard Symfony-Framework Dies ist ein sehr langer Prozess, aber die Vorteile werden enorm sein, einschließlich der Stabilität. Symfony wird verbreitet in PHP-Anwendungen verwendet (PrestaShop wurde mit der Programmiersprache PHP entwickelt). Es wird von einigen der besten PHP-Entwickler der Welt gepflegt, verfügt über einen sehr gründlichen Qualitäts- und Stabilitätsprozess (der unseren eigenen inspiriert hat) und gehört neben Laravel zu den beliebtesten PHP-Web-Frameworks.
Durch die Symfony-Einführung können wir den Wartungsaufwand für ein eigenes Framework loswerden, was viel zu viel Zeit benötigt und die besser mit dem verbracht werden sollte, was PrestaShop am besten kann: Einkaufswagen und Bestellungen verwalten, Preis- und Steuerkalkulation, Rechnungen erstellen usw. Mit der Verwendung eines beliebten und bewährten Open Source-Framework können wir uns auf das Herzstück unseres Business-Code konzentrieren, effizienter arbeiten und gleichzeitig von der Stabilität eines weltweit anerkannten Framework profitieren.
Indem wir Symfony anstelle unseres eigenen Frameworks für PrestaShop verwenden, verlassen wir uns auf dessen Qualität, die allgemein anerkannt ist. Werden in Symfony Fehler gefunden, werden diese vom Symfony-Team behoben. Werden in Symfony Probleme bei der Leistung gefunden, werden diese vom Symfony-Team behoben. Durch die Nutzung dieses Frameworks profitieren wir von all dem Wissen und dem Know-how dieser Mitarbeiter und stärken so PrestaShop den Rücken, anstatt die gleiche Arbeit selbst erledigen zu müssen. Wir folgen hier dem Ansatz „Zwerge auf den Schultern von Riesen“ und „das Rad nicht neu erfinden“, was erfahrungsgemäß sehr gut funktioniert.
Wir könnten auch über unseren Prozess bei Sicherheitsproblemen sprechen, aber da geht es nicht wirklich um Stabilität. Kurz gesagt: Die Sicherheit der PrestaShop-Software ist uns sehr wichtig. Wann immer eine Sicherheitslücke gefunden wird, wird es zur obersten Priorität des gesamten Kernteams (Entwickler, Produkt, QS), sie schnellstmöglich zu beheben und ein Release zu veröffentlichen, das die Lücke behebt.
Wir hoffen, dass dieser Artikel Ihnen ein besseres Verständnis dafür vermittelt hat, was eine stabile Software ist und wie die PrestaShop-Teams in automatisierte Tests und Symfony-Migration investieren, um den Benutzern eine bessere und stabilere Software anzubieten.
Sie können PrestaShop 1.7.5 jetzt herunterladen und auf die neuen Funktionen zugreifen, die ihnen beispielsweise dann viel Zeit einsparen, wenn es um wiederkehrende Aktivitäten bei der Shop-Verwaltung geht. Diese neue Version bietet erhebliche Produktivitäts- und Leistungssteigerungen und ist ein echter Fortschritt in Bezug auf mobile und soziale Netzwerke.