
De laatste versie van PrestaShop werd gelanceerd in december 2018. PrestaShop 1.7.5.0 is de meest recente kleine release van het PrestaShop-project. Deze versie kan worden gedownload en is grotendeels gebaseerd op feedback van onze gemeenschap. Ze is uitgerust met nieuwe functies en verbeteringen voor zowel backoffice als frontoffice: SEO-optimalisaties, dynamische preview van de Google-zoekresultaten voor uw product, geoptimaliseerde laadtijden en nog veel meer! Lees ons artikel over deze versie!
Sinds we PrestaShop 1.7.5.0 hebben gelanceerd, hebben we heel wat vragen ontvangen over de stabiliteit van deze nieuwe versie. Claudia Rodriguez, PrestaShop-ambassadeur in Mexico, stelde ons de volgende vraag:
Ik was tevreden over versie 1.7.5. Hebt u informatie om twijfels omtrent de stabiliteit weg te nemen?
We hebben van Claudia’s vraag geprofiteerd om in dit artikel de ware definitie van “softwarestabiliteit” te verduidelijken en om extra informatie te geven over de testmethoden die het PrestaShop-team heeft geïmplementeerd om de stabiliteit te verhogen.
Stabiel en "zonder bugs".
PrestaShop v1.7.5.0 lost 114 gerapporteerde bugs op (bron: http://build.prestashop.com/news/prestashop-1-7-5-0-available/). Dit is twee keer zoveel als de vorige kleine versie, PrestaShop 1.7.4.0 (bron: http://build.prestashop.com/news/prestashop-1-7-4-0-available/). De kwaliteitsproblemen die zich kort na de publieke release van PS 1.7.4.0 voordeden, verplichtten ons ertoe snel na elkaar 3 patchversies te releasen. Dit is niet gebeurd met PS 1.7.5.0. Aangezien er geen kritieke problemen werden gedetecteerd na de eerste release, werd de eerste patchversie van 1.7.5 (1.7.5.1) twee maanden na 1.7.5.0 gereleased. Versie PS 1.7.5.0 had geen dringende patches nodig. Ze heeft haar betrouwbaarheid bewezen.
Wat hebben we gedaan om 1.7.4.0 en 1.7.5.0 te verbeteren? We wisten maar al te goed dat we de gemeenschap voldoende tijd moesten geven om de nieuwe versies te testen om eventuele regressies vóór en niet na de publieke release te kunnen oplossen. Daarom voorzien we sinds 1.7.5.0 een publieke betaperiode (een tweede softwaretestfase waarin het product wordt uitgeprobeerd door het doelpubliek) van een maand voor nieuwe kleine versies. In het geval van 1.7.5.0 hebben we deze extra tijd gebruikt om feedback en bugrapporten van bijdragers en partnerbureaus te verzamelen. Dit is onze langste betaperiode ooit. Het feit dat we na de publieke release niet onmiddellijk een patchversie moesten releasen, bewijst dat deze periode de stabiliteit en consolidatie van deze nieuwe versie ten goede komt.
Deze beta werd niet alleen beschikbaar gesteld voor PS-gebruikers voor de opsporing van bugs maar werd voor de release ook een maand lang getest door de ontwikkelaars en het QA-team.
Stabiel in de zin van "goed getest"
PS 1.7 heeft het gebruik van geautomatiseerde tests ingevoerd voor het PrestaShop-project:
- Unittests controleren de geselecteerde stukken code om ervoor te zorgen dat ze zich ook afzonderlijk correct gedragen,
- integratietests gaan na of de codebase, als geheel, correct werkt en
- end-to-end tests automatiseren browseracties om te garanderen dat de applicatie vanuit het standpunt van de gebruiker, naar behoren werkt.
Dankzij deze tests detecteert het ontwikkelteam snel wanneer er bepaalde onderdelen van het systeem stoppen met werken. De tests worden uitgevoerd voor elk pull request (codebijdrage) op GitHub.
Het aantal tests neemt toe met elke nieuwe versie van PrestaShop, en het ontwikkelteam werkt voortdurend aan de verbetering van het systeem dat ze uitvoert. U kunt dit allemaal bekijken op GitHub (en de hele gemeenschap kan een bijdrage leveren!).
Ook het kwaliteitsborgingsproces (QA) is nu zeer accuraat en solide.
Wanneer een ontwikkelaar de broncode wil wijzigen (om iets te herstellen of om een nieuw gedrag toe te voegen dat nuttig kan zijn voor de gebruikers), kan hij/zij een pull request indienen op GitHub.
Dit pull request zal eerst automatisch worden geanalyseerd om ervoor te zorgen dat:
- de codestijl correct is
- de unit-, integratie- en end-to-end tests compatibel zijn met deze nieuwe versie van de code
- de code zonder problemen kan worden samengevoegd in de codebase
Opmerking: De volledige suite van end-to-end tests wordt niet voor alle PR’s uitgevoerd omdat het nogal lang kan duren (8 uur of meer!) om de hele applicatie te testen. De volledige suite wordt wel elke avond uitgevoerd tijdens de nachtelijke build. De broncode wordt dan automatisch gebouwd en getest. Als er iets niet werkt, ontvangen we de volgende ochtend een rapport zodat we precies weten wat er niet werkt, en het gebrek kunnen herstellen. Raadpleeg hier de nachtelijke builds en testrapporten: https://nightly.prestashop.com/
Als de geautomatiseerde tests succesvol worden doorstaan, wordt het pull request beoordeeld door een hoofdontwikkelaar om ervoor te zorgen dat de voorliggende wijziging correct en nuttig is. Als er zich problemen voordoen, wordt er een gesprek gestart tussen de beoordelaar en de bijdrager om ze op te lossen. In sommige gevallen kan de hoofdontwikkelaar andere betrokkenen om hulp vragen: het Design-team (als het pull request het ontwerp van PrestaShop wijzigt), het Product-team (als het pull request het gedrag van PrestaShop wijzigt), andere ontwikkelaars of gemeenschapsleden.
Wanneer de codebeoordeling werd uitgevoerd en goedgekeurd (eventueel na meerdere wijzigingen), wordt het pull request getest door het QA-team dat zal nagaan of de voorgelegde code zich correct gedraagt vanuit het standpunt van de gebruiker EN geen andere, correct werkende functies verstoort.
In de toekomst zullen deze werkzaamheden grotendeels worden geautomatiseerd maar op dit moment moeten we nog steeds met automatische en manuele QA werken. Als er problemen worden gedetecteerd, wordt er een gesprek gestart tussen de QA-analist en de bijdrager om het pull request te behandelen. Er worden nog andere controles uitgevoerd, waaronder de goedkeuring van nieuwe bewoordingen. Aangezien lokalisatie een belangrijke functie van PrestaShop is, moeten pull requests die de teksten of inhouden van de applicatie wijzigen (en dus een gevolg hebben voor de vertalingen), eveneens worden goedgekeurd door de Content Manager.
Als dit alles is goedgekeurd, kan het pull request worden samengevoegd in de codebase!
Zoals u ziet, stellen we alles in het werk om het risico op nieuwe bugs ten gevolge van codewijzigingen te beperken. Bugs zijn onvermijdelijk maar de meeste regressies worden voor de release door het QA-team gedetecteerd en gecorrigeerd. Het QA-team controleert de pull requests zeer zorgvuldig en test speciale gebruikssituaties als de multishopfunctionaliteit, productbeschrijvingen in meerdere talen, ondersteuning van van-rechts-naar-links-talen...
We hebben feedback ontvangen van bijdragers die de "oude manier” verkiezen. Vroeger werden pull requests samengevoegd met weinig of geen controle. Dat tijdperk ligt echter voorgoed achter ons. We hebben de weg van steeds betere kwaliteit en steeds meer stabiliteit gekozen. Dit proces is zwaar en tijdrovend maar heeft zijn betrouwbaarheid bewezen.
Stabiel in de zin van “met een solide basis"
PrestaShop 1.7 is het resultaat van de PrestaShop-migratie van een webframework op maat naar het industriële Symfony-standaardframework. Dit is een zeer lang proces maar de voordelen, waaronder stabiliteit, zijn enorm. Symfony wordt veel gebruikt in PHP-applicaties (PHP is de ontwikkeltaal die wordt gebruikt voor PrestaShop), wordt onderhouden door enkele van de beste PHP-ontwikkelaars ter wereld, werkt volgens een zeer strikt kwaliteit- en stabiliteitsproces (dat het onze heeft geïnspireerd) en behoort, samen met Laravel, tot de twee meest populaire PHP-webframeworks.
Dankzij de invoering van Symfony worden we gespaard van de tijdrovende onderhoudswerkzaamheden die een framework op maat vereisen. Zo hebben we meer tijd over voor de andere functies van PrestaShop: het beheer van de winkelwagens, de bewerking van bestellingen, de berekening van tarieven en belastingen, de generatie van facturen enz. Dankzij het gebruik van een beproefd en populair open source framework kunnen we ons efficiënter op onze core business code richten, en kunnen we van de stabiliteit van een wereldwijd erkend framework genieten.
Als u Symfony gebruikt om PrestaShop te ondersteunen in plaats van uw eigen framework, kunt u van hun algemeen erkende kwaliteit genieten. Wanneer er bugs worden gedetecteerd in Symfony, worden ze door het Symfony-team hersteld. Wanneer er prestatieproblemen worden gedetecteerd in Symfony, worden ze door het Symfony-team hersteld. Wie dit framework gebruikt, kan van al deze kennis en expertise gebruikmaken om PrestaShop een boost te geven en hoeft hetzelfde werk niet opnieuw zelf uit te voeren. Wij zijn als “dwergen op de schouders van reuzen” die “het wiel niet opnieuw hoeven uit te vinden”. De efficiëntie van deze werkwijze is bewezen.
We zouden het ook kunnen hebben over ons beheer van veiligheidskwesties, maar dat heeft niet echt iets te maken met stabiliteit. In het kort: we geven veel om de veiligheid van de PrestaShop-software. Als er een beveiligingsgat wordt ontdekt, hebben het herstel en de release de hoogste prioriteit. Het hele Core-team gaat aan de slag (ontwikkelaars, product, QA).
We hopen dat dit artikel u meer inzicht geeft in de definitie van stabiele software, en in de investeringen van de PrestaShop-teams in automatische testprocedures en Symfony-migratie om onze gebruikers betere en stabielere software aan te kunnen bieden.
U kunt PrestaShop 1.7.5 nu downloaden en alle nieuwe functies bekijken om tijdrovende, terugkerende winkelbeheeractiviteiten te vermijden. De nieuwe versie houdt belangrijke verbeteringen in van de productiviteit en de prestaties, en is een belangrijke stap voorwaarts ten aanzien van mobiele en sociale netwerken.