
La dernière version de PrestaShop a été lancée en décembre 2018. En effet, PrestaShop 1.7.5.0 est la dernière version du projet PrestaShop, disponible au téléchargement et largement basée sur les retours de notre communauté. Cette version apporte de nouvelles fonctionnalités et améliorations pour le Back Office et le Front Office : optimisations SEO, prévisualisation dynamique des résultats de recherche Google pour votre produit, optimisation du temps de chargement des pages et bien plus encore!
Depuis le lancement de PrestaShop 1.7.5.0, nous avons reçu beaucoup de questions sur la stabilité de cette nouvelle version. Claudia Rodriguez, ambassadrice de PrestaShop au Mexique, a posé la question suivante :
La version 1.7.5 a bien fonctionné pour moi. Avez-vous des informations pour éliminer les doutes concernant sa stabilité?
À travers cet article, nous avons profité de la question de Claudia pour clarifier la véritable définition de la «stabilité logicielle» et expliquer en quoi les équipes de PrestaShop ont amélioré les processus de test des logiciels pour les rendre plus stables.
1. Stable comme "pas de bug".
PrestaShop v1.7.5.0 résout 114 bogues signalés (source: http://build.prestashop.com/news/prestashop-1-7-5-0-available/). C'est deux fois plus que la version mineure précédente PrestaShop 1.7.4.0 (source: http://build.prestashop.com/news/prestashop-1-7-4-0-available/). De plus, les problèmes de qualité rencontrés peu après la publication de PS 1.7.4.0 nous ont obligés à publier 3 versions de correctifs rapidement. Cela ne s'est pas produit avec PS 1.7.5.0. En fait, aucun problème critique n’ayant été détecté après la publication initiale, la première version du correctif pour 1.7.5 (1.7.5.1) a été publiée deux mois après la version 1.7.5.0. Par conséquent, PS 1.7.5.0 s’est avéré très fiable car il n’avait pas besoin de correctifs urgents.
Qu'avons-nous fait pour apporter des améliorations entre la version 1.7.4.0 et 1.7.5.0? Nous nous sommes rendu compte qu'il était extrêmement important de donner à la communauté suffisamment de temps pour tester les nouvelles versions, de sorte que toute régression puisse être corrigée avant, et non après la publication. C'est pourquoi, à partir de la version 1.7.5.0, nous avons commencé à proposer une nouvelle version bêta publique (la deuxième phase de test du logiciel au cours de laquelle un échantillon du public visé teste le produit) pour de nouvelles versions mineures. Avec la version 1.7.5.0, nous avons utilisé ce temps supplémentaire pour recueillir les commentaires et les rapports de bogues des contributeurs et des agences partenaires. C'est la plus longue période de bêta que nous ayons jamais faite. Le fait que nous n'ayons pas eu besoin de publier une version de correctif rapidement après la publication publique prouve que cette période a beaucoup aidé à stabiliser et à consolider cette nouvelle version.
Alors que cette version bêta était disponible pour que les utilisateurs de PrestaShop puissent trouver des bogues, les développeurs et l'équipe d'assurance qualité ont également passé un mois à tester la version bêta de la version.
2. Stable comme "bien testé".
PS 1.7 a introduit l'utilisation de tests automatisés pour le projet PrestaShop: les
- les tests unitaires vérifient les codes sélectionnés pour s'assurer qu'ils se comportent correctement de manière isolée.
- les tests d'intégration vérifient le bon fonctionnement de la base de code dans son ensemble.
- tests "end-to-end" automatisant les actions du navigateur pour s'assurer que, du point de vue de l'utilisateur, l'application fonctionne comme prévu.
Ces tests permettent à l'équipe de développement de détecter rapidement quand certaines parties du système cessent de fonctionner et sont exécutés pour chaque Pull Request (contribution au code) sur GitHub.
Le nombre de tests augmente avec chaque nouvelle version de PrestaShop et l'équipe de développement améliore continuellement le système qui les exécute. Tout cela est visible sur GitHub (et toute la communauté peut aussi y contribuer!).
En outre, le processus QA est maintenant très précis et robuste.
Lorsqu'un développeur souhaite modifier le code source (pour corriger quelque chose ou pour ajouter une nouvelle fonctionnalité utile aux utilisateurs), il effectue une Pull Request sur GitHub.
Cette Pull Request sera d'abord automatiquement analysée pour vérifier que :
- le code est correct
- les tests d'unité, d'intégration et de bout en bout ne rompent pas avec cette nouvelle version du code
- le code peut être fusionné dans code source sans créer de problème.
note : la suite complète des tests end-to-ends n’est pas exécuté pour chaque Pull Request car il faut beaucoup de temps pour couvrir l'ensemble de application (8 heures voir plus!). Cependant, la suite complète est exécutée toutes les nuits pendant le processus de «nightly build», où nous construisons et testons automatiquement le code source chaque nuit. Donc, si quelque chose est cassé par une modification, nous aurons un rapport le lendemain matin nous indiquant ce qui a été brisé pour le réparer. Les nightly build et les rapports de test sont disponibles ici: https://nightly.prestashop.com/
Si les tests automatisés réussissent, la Pull Request sera examinée par un développeur coeur afin de s'assurer que la modification soumise est correcte et utile. Si des problèmes sont détectés, une discussion commence entre le réviseur et le contributeur pour les résoudre. Dans certains cas, le développeur principal peut demander l'aide d'autres personnes en rapport avec le problème : l'équipe Design (si la Pull Request modifie le design de PrestaShop), l'équipe Produit (si la Pull Request modifie le comportement de PrestaShop) ou d'autres développeurs ou communautés. membres.
Lorsque la révision du code est terminée et approuvée (peut-être après quelques modifications), la Pull Request est ensuite testée par l'équipe QA, qui vérifie que le code soumis se comporte correctement du point de vue de l'utilisateur et qu'il ne casse pas d'autres fonctionnalités qui fonctionnaient bien auparavant.
À l’avenir, la majeure partie de ce travail sera automatisée, mais pour le moment, nous avons besoin de la combinaison d’une QA automatique et QA humaine. D'autres vérifications sont également effectuées, telles que l'approbation de nouveaux libellés, par exemple. La localisation étant une caractéristique importante de PrestaShop, si une Pull Request modifie des textes ou du contenu de l'application (cela aura un impact sur sa traduction), elle doit également être approuvée par le Content Manager.
Si tout cela est approuvé, la Pull Request peut être fusionnée dans le code !
Comme vous pouvez le constater, beaucoup de travail est consacré à réduire les risques que les modifications de code introduisent de nouveaux bogues. Bien sûr, les bugs sont inévitables, mais la plupart du temps, lorsqu'une régression est introduite, elle est détectée par l'équipe QA et corrigée avant la publication. L’équipe QA vérifie de manière très approfondie les demandes d’extraction, en testant des cas d’utilisation spécifiques tels que les langues multi-boutique, multilingue, langues RTL (right to left)...
Nous avons reçu des commentaires de contributeurs qui préféraient la "méthode ancienne", où les Pull Requests serait fusionné avec peu ou pas d'examen. Ceci est terminé. Nous avons choisi la voie de la qualité et de la stabilité, et même si ce processus est lourd et prend beaucoup de temps, nous prévoyons de le garder tel quel, car il s’est avéré très fiable.
3. Stable comme "sur un terrain solide"
PrestaShop 1.7 concerne la migration de PrestaShop d'un framework Web personnalisé vers le framework Symfony, un standard de l'industrie. C'est un très long processus, mais les avantages seront énormes, stabilité comprise. Symfony est largement utilisé dans les applications PHP (PHP est le langage utilisé par les développeurs PrestaShop), il est géré par les meilleurs développeurs PHP du monde, possède un processus de qualité et de stabilité très poussé (qui a inspiré le nôtre) et il est un des 2 plus populaires Framework PHP web, aux côtés de Laravel.
L’introduction de Symfony nous permet d’éliminer la charge de travail de maintenance d’un framework personnalisé, qui prend beaucoup de temps et qui pourrait être mieux dépensé pour travailler sur ce que PrestaShop fait de mieux: gérer un panier, gérer des commandes, calculer des prix et des taxes, générer des factures , etc. L'utilisation d'un framework open source éprouvé et populaire nous permet de nous concentrer sur notre code métier central avec une efficacité accrue, tout en bénéficiant de la stabilité d'un framework reconnu à l'échelle mondiale.
En utilisant Symfony pour alimenter PrestaShop au lieu de notre propre framework, nous nous appuyons sur la qualité de leur travail, qui est largement reconnu. Lorsque des bogues sont trouvés dans Symfony, ils sont corrigés par l'équipe Symfony. Lorsque des problèmes de performances sont détectés dans Symfony, ils sont résolus par l'équipe Symfony. En utilisant ce cadre, nous bénéficions de toutes les connaissances et de l'expertise de ces personnes pour dynamiser PrestaShop, au lieu de faire le même travail nous-mêmes.
Nous pourrions également parler de notre processus de gestion des problèmes de sécurité, mais ce n’est pas vraiment une question de stabilité. En bref : la sécurité du logiciel PrestaShop nous tient à cœur. Chaque fois qu'une faille de sécurité est détectée, la priorité numéro 1 de l'ensemble de l'équipe (développeurs, produit, assurance qualité) est de la réparer et de la publier le plus rapidement possible.
Conclusion
Nous espérons que cet article vous a permis de mieux comprendre ce qu'est un logiciel stable et comment les équipes de PrestaShop investissent dans les tests automatiques et la migration Symfony afin d'offrir à nos utilisateurs un logiciel plus performant et plus stable.
Vous pouvez télécharger PrestaShop 1.7.5 maintenant et accéder à toutes les nouvelles fonctionnalités, comme gagner du temps dans les activités de gestion de votre boutique. Cette nouvelle version présente des améliorations significatives en termes de productivité et de performances et constitue un réel progrès sur mobiles et sur les réseaux sociaux.