05/04/2019

PrestaShop migliora la stabilità della versione 1.7

L'ultima versione di PrestaShop è stata presentata nel dicembre 2018. In realtà, la versione minore più recente del progetto è PrestaShop 1.7.5.0, attualmente disponibile per il download e ampiamente basata sul feedback della nostra community. Questa versione offre nuove funzioni e miglioramenti per il back office e il front office, ad esempio: ottimizzazioni SEO, anteprima dinamica dei risultati di ricerca di Google relativi ai tuoi prodotti, tempi di caricamento delle pagine ottimizzati e molto altro! 

Dal lancio di PrestaShop 1.7.5.0 abbiamo ricevuto molte domande sulla stabilità di questa nuova versione. Claudia Rodriguez, Ambasciatrice PrestaShop in Messico, ha posto la seguente domanda:

Mi sono trovata bene con la versione 1.7.5. Potete fornire delle informazioni che eliminino i dubbi riguardo alla stabilità? 

In questo articolo abbiamo colto l'occasione offerta dalla domanda di Claudia per spiegare il reale significato dell'espressione "stabilità del software" e i team di PrestaShop hanno migliorato i processi di collaudo del software per renderlo più stabile.

 

Stabile significa "senza bug"

In PrestaShop 1.7.5.0 sono stati risolti 114 bug segnalati (fonte: http://build.prestashop.com/news/prestashop-1-7-5-0-available/), vale a dire il doppio dei bug rispetto alla versione minore precedente PrestaShop 1.7.4.0 (fonte: http://build.prestashop.com/news/prestashop-1-7-4-0-available/). A causa dei problemi di qualità riscontrati subito dopo il rilascio pubblico di PS 1.7.4.0 siamo stati inoltre costretti a distribuire 3 versioni patch in rapida successione. Questo non è accaduto con PS 1.7.5.0. In effetti, dal momento che non sono emersi problemi critici dopo il rilascio iniziale, la prima versione patch per 1.7.5 (1.7.5.1) è stata distribuita due mesi dopo la presentazione ufficiale. Non avendo richiesto patch urgenti, PS 1.7.5.0 ha quindi dimostrato di essere molto affidabile.

Quali miglioramenti abbiamo apportato tra la versione 1.7.4.0 e 1.7.5.0? Ci siamo resi conto che era molto importante dare alla community abbastanza tempo per collaudare le nuove versioni, in modo da poter correggere eventuali regressioni prima del rilascio pubblico e non successivamente. Per questo motivo, a partire dalla versione 1.7.5.0, abbiamo iniziato a concedere più tempo, ovvero un intero mese, per il periodo di beta pubblica (la seconda fase di collaudo del software in cui il prodotto viene testato da un campione del pubblico a cui è destinato) per le nuove versioni minori. Nel caso della versione 1.7.5.0, abbiamo utilizzato questo tempo extra per raccogliere feedback e segnalazioni di bug dai contributori e dalle agenzie partner. Questo è in assoluto il nostro periodo di beta più lungo. Il fatto che non sia stato necessario distribuire una versione patch poco dopo il rilascio pubblico prova che questo periodo è stato estremamente utile per stabilizzare e consolidare la nuova versione.

Mentre la beta era a disposizione degli utenti PrestaShop per l'individuazione dei bug, nel corso del mese anche gli sviluppatori e il team di controllo qualità (QA) erano impegnati a collaudare la beta della versione.

 

Stabile significa "ben collaudato"

Stabile significa "ben collaudato".

PS 1.7 ha introdotto l'uso di test automatizzati per il progetto PrestaShop:

  • test di unità verificano il corretto funzionamento di elementi selezionati del codice separatamente,
  • test di integrazione controllano che tutto il codebase, nel complesso, funzioni correttamente,
  • test end-to-end automatizzano le azioni del browser per assicurare che l'applicazione funzioni nel modo previsto dal punto di vista dell'utente.

Questi test permettono al team di sviluppo di rilevare rapidamente quando alcune parti del sistema smettono di funzionare e vengono eseguiti per ogni pull request (contributo relativo al codice) su GitHub.

Il numero dei test aumenta a ogni nuova versione di PrestaShop e il team di sviluppo migliora costantemente il sistema che li esegue. Tutte queste informazioni sono disponibili su GitHub (anche tutta la community può contribuire!).

Inoltre, il processo di controllo qualità ora è molto accurato ed efficace.

Quando uno sviluppatore vuole modificare il codice sorgente (per apportare correzioni o aggiungere un nuovo comportamento che potrebbe essere utile per gli utenti), effettua una pull request su GitHub.

Questa pull request verrà innanzitutto analizzata automaticamente per assicurare che:

  • lo stile del codice sia corretto,
  • i test di unità, di integrazione ed end-to-end non si interrompano con questa nuova versione del codice,
  • il codice possa essere incorporato nel codebase senza creare problemi.

Nota: l'intero pacchetto di test end-to-end non viene eseguito per ogni pull request perché la verifica di tutta l'applicazione richiede molto tempo (8 ore o più!). L'intero pacchetto viene comunque eseguito ogni notte durante il processo della "build notturna" che ci permette di aggiornare e collaudare automaticamente il codice sorgente ogni notte. Pertanto, se la modifica ha causato un problema, la mattina successiva riceveremo un report con la segnalazione dell'errore e sarà così possibile correggerlo. Le build notturne e i report dei test sono disponibili qui: https://nightly.prestashop.com/

Se i test automatizzati vengono superati positivamente, la richiesta pull verrà rivista da uno sviluppatore core per accertarsi che la modifica inviata sia corretta e utile. Se vengono riscontrati dei problemi, il revisore e il contributore che ha proposto la modifica collaboreranno per eliminarli. In alcuni casi, lo sviluppatore core potrebbe chiedere aiuto ad altre persone rilevanti ai fini del problema: il team di design (se la pull request modifica il design di PrestaShop), il team di prodotto (se la pull request modifica il comportamento di PrestaShop), oppure altri sviluppatori o membri della community.

Quando la revisione del codice è stata ultimata e approvata (eventualmente dopo avere apportato alcune modifiche), la pull request viene testata dal team di controllo qualità, che verificherà che il codice inviato si comporti correttamente dal punto di vista dell'utente E che non comprometta altre funzioni correttamente funzionanti in precedenza.

In futuro, la maggior parte di questo lavoro sarà automatizzata, ma attualmente è necessario associare un controllo qualità automatico e umano. Se vengono riscontrati dei problemi, l'analista responsabile del controllo qualità e il contributore interagiscono per correggere la pull request. Vengono effettuate anche altre verifiche, quali l'approvazione di nuove terminologie. Dal momento che la localizzazione è una caratteristica importante di PrestaShop, se una pull request modifica il testo o il contenuto all'interno dell'applicazione, tale modifica dovrà essere approvata dal Content Manager poiché avrà ripercussioni anche sulla traduzione.

Se l'iter di validazione si è concluso positivamente, la pull request potrà essere incorporata nel codebase!

Come si può vedere, è richiesto un notevole impegno per ridurre al minimo il rischio che le modifiche del codice introducano nuovi bug. Naturalmente, i bug sono inevitabili, ma nella maggior parte dei casi il team di controllo qualità rileva quando viene introdotta una regressione e la corregge prima del rilascio. Il team di controllo qualità verifica molto attentamente le pull request, testando le modalità di utilizzo speciali (ad esempio multinegozio, multilingue, lingue con scrittura da destra a sinistra, ecc.).

Abbiamo ricevuto alcuni feedback da contributori che preferivano il "vecchio sistema", ovvero quando si potevano incorporare le pull request senza controlli o con poche revisioni. Quell'epoca appartiene definitivamente al passato. Abbiamo scelto di aumentare sempre di più la qualità e la stabilità, e abbiamo intenzione di mantenere questo processo inalterato perché, nonostante sia impegnativo e richieda parecchio tempo, ha dimostrato di essere molto affidabile.

 

Stabile significa "con una base solida"

Stabile significa "con una base solida"

PrestaShop 1.7 riguarda la migrazione di PrestaShop da un framework web personalizzato al framework Symfony, standard del settore. Si tratta di un processo molto lungo, che tuttavia porterà notevoli vantaggi, inclusa la stabilità. Symfony è ampiamente utilizzato nelle applicazioni PHP (il linguaggio utilizzato per sviluppare PrestaShop), viene mantenuto da alcuni dei migliori sviluppatori PHP nel mondo, dispone di un processo molto minuzioso di controllo della qualità e della stabilità (che ha ispirato il nostro processo) e insieme a Laravel è uno dei due framework web PHP più popolari.

Introducendo Symfony potremo liberarci dal carico di lavoro associato alla manutenzione di un framework personalizzato, che richiede una grande quantità di tempo che potremmo impiegare meglio lavorando sui punti di forza di PrestaShop: gestione dei carrelli e degli ordini, calcolo di prezzi e tasse, fatturazione, ecc. L'utilizzo di un framework open source comprovato e popolare ci permetterà di concentrarci con maggiore efficienza sul nostro core business, usufruendo al tempo stesso della stabilità di un framework riconosciuto a livello mondiale.

Adottando Symfony per PrestaShop al posto del nostro framework possiamo fare affidamento sulla qualità del loro lavoro, che è ampiamente riconosciuta. Quando vengono rilevati dei bug in Symfony, il team Simfony li corregge. Quando vengono riscontrati dei problemi di prestazioni in Symfony, il team Simfony li risolve. Utilizzando questo framework ci avvaliamo di tutte le conoscenze e competenze tecniche di queste persone per potenziare PrestaShop, invece di fare da soli lo stesso lavoro. In questo caso adottiamo l'approccio dei "nani che stanno in piedi sulle spalle dei giganti" e preferiamo "non reinventare la ruota", che ha dimostrato di funzionare egregiamente.

Potremmo parlare anche del nostro processo di gestione dei problemi di sicurezza, ma in realtà non riguarda la stabilità. In poche parole: la sicurezza del software ci sta molto a cuore. Quando viene rilevata una vulnerabilità della sicurezza, la prima priorità di tutto il team Core (sviluppatori, prodotto, controllo qualità) è trovare una soluzione e applicarla il più rapidamente possibile.

Ci auguriamo che questo articolo ti abbia permesso di capire meglio cos'è un software stabile e in che modo il team PrestaShop sta investendo sui test automatici e sulla migrazione a Symfony per offrire agli utenti un software migliore e più stabile.

Puoi scaricare subito PrestaShop 1.7.5 e accedere a tutte le nuove funzioni, ad esempio per risparmiare tempo nelle attività ricorrenti di gestione del negozio. Oltre a offrire miglioramenti significativi sul fronte della produttività e delle prestazioni, questa nuova versione rappresenta un importante passo avanti a livello di dispositivi mobili e social network.

Ogni 2 settimane, la nostra newsletter di e-commerce

Inviando questo modulo, accetti che i dati inseriti vengano utilizzati da PrestaShop S.A per l’invio di newsletter e offerte promozionali. Puoi annullare l’iscrizione in qualsiasi momento utilizzando il link nelle e-mail che ti sono state inviate. Ulteriori informazioni sulla gestione dei tuoi dati e sui tuoi diritti.