Immagina che il software più importante della tua azienda si rompa improvvisamente. Che cosa succederebbe? Gli ordini potrebbero andare persi, le scadenze potrebbero non essere rispettate, ma i clienti si lamenterebbero sicuramente.
Questo scenario da incubo è evitabile: implementando un processo di test continuo e rigoroso, che rileva i problemi prima che causino il caos. Tuttavia, implementare un processo simile nella tua organizzazione è più facile a dirsi che a farsi.
Questo articolo illustra tutto ciò che devi considerare quando inizi a eseguire test nella tua azienda e come puoi trarre vantaggio dai test sul lungo periodo.
Best practice per i test per i team di prodotto
La prima parte di questo articolo illustra la procedura per iniziare a implementare il test nel flusso di lavoro.
Implementare una cultura del test nel team
Per introdurre correttamente i test nel tuo team è necessario che tutti condividano un approccio comune e che considerino la qualità non come un peso, ma come un investimento. Si tratta di un processo che, come ogni altro cambiamento culturale, richiede tempo e coerenza.
Un elemento che può contribuire a creare questa cultura sono le riunioni regolari per discutere di difetti, del loro impatto, della loro origine e di cosa è stato necessario per risolverli. In questo modo, puoi far capire perché è meglio prevenire questi difetti fin dall'inizio.
Avere nel team una persona dedicata che supervisiona e guida l'impegno può aumentare notevolmente le probabilità di successo. Qualcuno che definisce linee guida per il team o per l'intera organizzazione, raccoglie le best practice e le condivide, nonché promuove l'impegno a tutti i livelli.
Un altro strumento utile può essere ruotare il ruolo di assistenza del prodotto. Ricevere informazioni di prima mano e non filtrate dai tuoi clienti e conoscere i problemi quotidiani che devono affrontare con il tuo prodotto può essere un'esperienza preziosa per product manager, designer e sviluppatori.
L'obiettivo è che tutti i membri del team comprendano che la qualità è una funzionalità, importante quanto qualsiasi altra funzionalità che crei per il tuo prodotto. Una volta che tutti hanno adottato questo approccio, è naturale capire che anche i test sono una funzionalità. Perché i test garantiscono la qualità del prodotto spedito.
Una procedura di test passo passo
Una volta raggiunto l'allineamento tra i diversi team coinvolti nello sviluppo del prodotto, puoi formalizzare ulteriormente l'esistenza e l'utilizzo dei test.
Includi i test nella "definizione di completamento"
Aggiungendo i test come requisito della funzionalità, dichiari che una funzionalità non è pronta per essere distribuita finché non viene testata correttamente e automaticamente.
Esegui test regolarmente
Una volta implementati, i test automatici possono essere una protezione in ogni fase del processo di sviluppo. Non richiedono alcun intervento umano e possono essere eseguiti in ogni passaggio critico della pipeline di sviluppo. Ad esempio:
- A ogni commit.
- In ogni richiesta di pull.
- Dopo ogni rilascio completo o modifica dell'ambiente.
Se utilizzi servizi di terze parti nel tuo ambiente di produzione, può anche essere utile eseguire i test in produzione per assicurarti che le API di terze parti si comportino come previsto.
Definire e raccogliere le metriche
Definire un insieme di metriche è importante per misurare l'efficacia dei test e l'impatto dei flussi di lavoro di test sulla tua attività. Ecco alcuni esempi di metriche che puoi utilizzare:
- Release al mese: un numero maggiore di release al mese può indicare un processo di sviluppo più agile. I test automatici svolgono un ruolo fondamentale in questo senso, poiché garantiscono che le release possano procedere in tutta sicurezza.
- Segnalazioni di bug: una tendenza in calo delle segnalazioni di bug può essere un segno positivo che i tuoi test (e le tue procedure di sviluppo) sono efficaci.
- Copertura del test: anche se non è mai una metrica esatta, la copertura può essere un buon indicatore della profondità con cui stai testando i casi d'uso critici.
Tieni presente che queste metriche sono influenzate anche da altri fattori che potrebbero alterarle. Ad esempio, il numero di release potrebbe diminuire durante le festività, mentre i report di bug potrebbero aumentare. Pertanto, non fare affidamento solo su alcuni e assicurati di mapparli con gli altri dati a disposizione del tuo team.
Se implementi questi passaggi con il tuo team, la salute del tuo prodotto ne trarrà sicuramente vantaggio a lungo termine. Ma c'è ancora molto che puoi fare.
Best practice per i test per gli amministratori di sistema
I team di prodotto non possono lavorare in autonomia. Si basano sull'hardware, sugli strumenti e sull'infrastruttura gestiti dagli amministratori di sistema. Sebbene gli amministratori di sistema solitamente non contribuiscano direttamente allo sviluppo del prodotto, possono comunque influenzare positivamente il flusso di lavoro di sviluppo. Ad esempio, gestendo attivamente la versione del browser utilizzata da determinati gruppi di utenti dell'azienda.
Questa seconda parte dell'articolo spiega come funziona, utilizzando i canali e i criteri di Chrome Enterprise.
Canali di rilascio di Chrome
Per impostazione predefinita, Chrome si aggiorna automaticamente per garantire a ogni utente la versione più recente, stabile e sicura di Chrome, incluse tutte le funzionalità più recenti, ovvero la versione di Chrome rilasciata sul canale stabile.
Se sei un'azienda che sviluppa un prodotto basato sul web, ti consigliamo di utilizzare un browser prima del canale stabile per dare ai tuoi team di prodotto il tempo di adattare il prodotto alle modifiche della piattaforma web.
Per questo caso d'uso, Chrome offre un totale di quattro canali di rilascio, destinati a diversi gruppi di utenti.
Nel caso di Chrome, puoi utilizzare diversi canali di rilascio per anticipare le modifiche future del browser e testare le ultime funzionalità prima che diventino disponibili a livello generale:
- Canale stabile: è quello utilizzato dalla maggior parte degli utenti. Il canale stabile si aggiorna automaticamente quando viene rilasciata una nuova release di Chrome, cosa che avviene ogni mese.
- Canale beta: questa versione diventerà stabile tra quattro-sei settimane, dandoti la possibilità di visualizzare l'anteprima e testare una release stabile imminente e prepararti al meglio.
- Canale Dev: questo canale riceve una nuova versione di Chrome una volta alla settimana e include tutte le correzioni più recenti che verranno eventualmente trasferite alla versione beta. Come suggerisce il nome del canale, è in fase di sviluppo e potrebbe quindi non essere disponibile in modo imprevisto, ma include anche le funzionalità più recenti, a volte molto prima che vengano integrate nella versione stabile. Questo rende il canale per sviluppatori un ottimo strumento per la prototipazione e lo sviluppo all'avanguardia.
- Canale Canary: il canale più sperimentale, che contiene tutte le funzionalità più recenti, ma senza molti test. Pubblicate almeno una volta al giorno.
Se vuoi saperne di più sui canali di Chrome, guarda la corrispondente puntata di Chrome Concepts.
Utilizzo dei canali in un'organizzazione esemplare
La struttura dei team di prodotto varia da un'organizzazione all'altra, in quanto non esiste un approccio unico per lo sviluppo software. Ad esempio, ipotizziamo un team con i seguenti ruoli: gestione del prodotto, UX e UI, ingegneria, operations e assistenza.
Per un'organizzazione come questa, puoi prendere in considerazione la seguente suddivisione dei canali:
- Gestione prodotto: in genere, i gestori dei prodotti possono utilizzare il canale stabile per usare la stessa versione della maggior parte degli utenti. A volte potrebbero utilizzare il canale beta o dev se stanno lavorando a una funzionalità che richiede un'API non ancora lanciata.
- Ingegneria e UX: alcuni membri di questi team possono utilizzare il canale dev per accedere alle funzionalità più recenti, come le Transizioni di visualizzazione, anche prima che diventino stabili.
- Operazioni: potrebbe essere in versione beta per prevedere i problemi che interesseranno gli utenti in seguito.
- Assistenza: può rimanere sul canale stabile per assicurarsi di interagire con il prodotto utilizzando lo stesso browser della maggior parte dei clienti.
Utilizzare i criteri aziendali per gestire i canali
Anziché fornire linee guida e lasciare la decisione su quale canale utilizzare, Chrome offre anche strumenti aziendali e di amministrazione per gestire attivamente il canale che ogni utente finisce per utilizzare. Questo è utile perché consente di aumentare immediatamente la piattaforma di test da pochi utenti a un insieme deterministico di utenti, il che aiuta a identificare i problemi il prima possibile e in modo tracciabile.
Se vuoi utilizzare questo livello di controllo, ecco la configurazione che consigliamo:
- Dipendenti (utenti dell'app): per ridurre al minimo il rischio di interruzioni, la maggior parte degli impiegati dovrebbe utilizzare il canale stabile, che è stato completamente testato dal team di test di Chrome. Inoltre, una piccola percentuale di utenti (dal 5 al 10%) può utilizzare il canale beta. Questo canale riceve una versione di anteprima della versione stabile di 4-6 settimane e può aiutare gli amministratori a scoprire potenziali problemi con una release, dando più tempo per risolverli prima che la release venga implementata per tutti gli altri utenti.
- Dipartimento IT: i membri del reparto IT, inclusi gli amministratori di sistema, possono utilizzare il canale beta o dev per usufruire di un'anteprima di 4-6 o 9-12 settimane delle funzionalità che verranno incluse nella versione stabile di Chrome.
Canali di rilascio a lungo termine
Lo sviluppo del prodotto potrebbe non procedere così rapidamente come previsto e la cadenza di rilascio di un mese di Chrome potrebbe essere troppo elevata. Per questo caso d'uso, Chrome fornisce un canale stabile esteso che consente di ricevere aggiornamenti delle funzionalità meno frequentemente, ma continua a ricevere correzioni di sicurezza. Questo canale viene aggiornato ogni otto settimane.
Il seguente diagramma mostra come i diversi traguardi vengono raggiunti nei diversi canali di rilascio di Chrome:
- Sia le versioni stabili che quelle stabili estese vengono rilasciate nelle prime quattro settimane, dopodiché le due versioni divergono.
- Non esiste un canale beta esteso; viene invece utilizzato il ciclo beta standard di quattro settimane per stabilizzare sia la versione stabile sia quella stabile estesa. Le aziende che scelgono di attivare la versione stabile estesa di otto settimane devono continuare a utilizzare il canale beta come fanno attualmente per identificare in modo proattivo i problemi che potrebbero influire sui loro ambienti.
Conclusione
I test sono una parte fondamentale delle aziende di sviluppo software per garantire la qualità dei loro prodotti e anche un passaggio importante per gli amministratori di sistema, per consentire ai dipendenti di un'organizzazione di accedere a software di alta qualità ed evitare di interrompere i processi aziendali.
Per implementare correttamente un flusso di lavoro di test all'interno della tua organizzazione, è importante che tutti condividano la mentalità comune che la qualità e, di conseguenza, i test sono una funzionalità.
In questo articolo abbiamo esaminato diversi modi per integrare le best practice di test nella tua organizzazione. Per un'analisi approfondita degli strumenti di test esistenti, consulta il nostro articolo Strumenti di Chrome per test automatici e senza problemi.
Per indicazioni pratiche sui test, dall'inizio alla fine, consulta anche il nostro recente corso Learn Testing e le best practice per l'automazione dei test su web.dev.