Glossario · Fondamenti del testing
Shift-left testing
Detto anche: shift left, shift-left, approccio shift-left, test shift-left
Definizione
Anticipare test e attività di qualità nel ciclo di consegna del software, così i difetti vengono prevenuti o intercettati quando correggerli costa meno.
Shift-left testing significa fare il lavoro sulla qualità prima: a sinistra di una linea temporale che va dai requisiti al rilascio. Invece di una fase di test dopo la fine dello sviluppo, tester e sviluppatori revisionano i requisiti, concordano i criteri di accettazione, scrivono test automatici insieme al codice e li eseguono a ogni commit. Un difetto trovato durante la revisione dei requisiti costa una conversazione; lo stesso difetto trovato in produzione costa un incidente.
Come si presenta nella pratica
- Refinement. Un tester chiede “cosa succede se il coupon è scaduto?” prima che esista una riga di codice, e la risposta diventa un criterio di accettazione.
- Progettazione. La testabilità si discute fin dall’inizio: test ID stabili, endpoint API per popolare i dati, feature flag.
- Sviluppo. Gli unit test e i test API vengono scritti insieme alla funzionalità, non settimane dopo. Analisi statica e linting girano nell’editor e sulle pull request.
- CI. Ogni pull request esegue le suite veloci e un fallimento blocca il merge.
Shift left e shift right
Lo shift-right testing è l’idea complementare: imparare dalla produzione tramite monitoraggio, canary release, feature flag, controlli sintetici ed esperimenti A/B. Alcuni problemi, come i pattern di traffico reali o i disservizi di terze parti, emergono solo in produzione. I team maturi fanno entrambe le cose. Spostarsi a sinistra non è un motivo per smettere di osservare cosa succede dopo il rilascio.
Errori comuni
- Cambiare nome senza cambiare nulla. Se i tester ricevono ancora una build finita e una scadenza, non si è spostato niente. La prova è se le conversazioni sulla qualità avvengono prima che il codice venga scritto.
- Far fare tutti i test agli sviluppatori da soli. Lo shift-left distribuisce il testing su tutto il team; non elimina il bisogno di competenze di testing. Spesso i tester si spostano verso coaching, test design e sviluppo di strumenti.
- Spostare solo l’automazione. Eseguire prima i test UI aiuta, ma i guadagni maggiori di solito arrivano dal chiarire i requisiti e dallo spostare i controlli verso il livello unit e API.