La qualità non è una fase del progetto, è una responsabilità continua. La QA (Quality Assurance) comprende processi, pratiche e cultura che garantiscono il corretto funzionamento dei prodotti. Questa guida presenta come implementare un QA efficace sui prodotti digitali.
Che cos'è il controllo qualità
Definizione
Insieme di attività che garantiscono la qualità del software.
Controllo qualità e controllo qualità
Il QA è un processo (prevenzione dei difetti). Il QC è l'ispezione (ricerca dei difetti).
Ambito
Non solo test. Processi, standard, documentazione.
Perché il controllo qualità è importante
Costo dei bug
I bug nella produzione costano 100 volte di più che nello sviluppo.
Esperienza utente
Gli errori frustrano. Gli utenti abbandonano.
Reputazione
Le app buggate ricevono recensioni negative.
Fiducia
Il tempo è più sicuro per cambiare il codice.
Tipi di test
Test unitari
Testare funzioni isolate. Veloci, tanti.
Test di integrazione
Testare i componenti insieme. API, banca.
End-to-End (E2E)
Completa il flusso come utente.
Test manuale
Gli esseri umani esplorano il prodotto.
Test del fumo
Controlla rapidamente se la build funziona.
Test di regressione
Assicurarsi che le modifiche non abbiano interrotto quelle esistenti.
Test delle prestazioni
Comportamento sotto carico.
Test di sicurezza
Vulnerabilità e conformità.
Piramide di prova
Concetto
Molti test unitari, meno integrazione, pochi E2E.
Perché
Le unità sono veloci ed economiche. Gli E2E sono lenti e fragili.
Equilibrio
Ogni tipo ha valore. Non trascurarne nessuno.
Automazione dei test
Perché automatizzare
Ripetibilità, velocità, copertura.
Cosa automatizzare
Casi ripetitivi, critici, stabili.
Strumenti
Jest, Pytest, Cypress, Drammaturgo, Appium.
Manutenzione
I test automatizzati necessitano di cure continue.
Controllo di qualità in Agile
Sposta a sinistra
Qualità dall'inizio, non alla fine.
Test continui
I test vengono eseguiti su ogni commit.
Definizione di Fatto
Include criteri di qualità.
Interfunzionale
QA integrato nel team, non separato.
Processi di controllo qualità
Pianificazione dei test
Cosa testare, come, quando.
Casi di prova
Documentazione dello scenario.
Segnalazione di bug
Descrizione chiara, riproduzione, gravità.
Triage
Priorità dei bug.
Regressione
Ripeti i test dopo le correzioni.
Ambienti di prova
###Svil
Per gli sviluppatori. Instabile.
Messa in scena
Specchio di produzione. Controllo di qualità completo.
###Produzione
Sempre stabile. Test limitati.
Data
Dati di test realistici ma sicuri.
QA mobile
Frammentazione del dispositivo
Molti dispositivi, versioni, dimensioni.
Laboratori dei dispositivi
Prova su dispositivi reali.
Test sul cloud
BrowserStack, laboratorio di test Firebase.
Specifico della piattaforma
iOS e Android hanno delle stranezze.
Test esplorativi
Di cosa si tratta
Test senza script. Investigazione.
Quando usarlo
Trova bug imprevisti.
Euristica
Le tecniche guidano l’esplorazione.
Documentazione
Cattura ciò che scopri.
Metriche del QA
Tasso di fuga dei bug
Bug che arrivano in produzione.
Copertura del test
Codice coperto dai test.
Densità dei difetti
Bug per dimensione del codice.
È ora di rimediare
Quanto tempo per sistemare.
Tasso di superamento del test
Percentuale di test superati.
CI/CD e QA
Integrazione continua
I test vengono eseguiti con ogni unione.
Cancello
Unione bloccata se i test falliscono.
Distribuzione continua
Distribuzione automatica se i test vengono superati.
Monitoraggio
Osservabilità in produzione come QA continua.
##Cultura della qualità
Responsabilità condivisa
La qualità appartiene a tutti, non solo al QA.
Revisione del codice
Codice di revisione tra pari.
Definizione di Fatto
Qualità inclusa.
Autopsia senza colpa
Impara dagli errori, non incolpare.
Documentazione
Piani di test
Strategia di test per funzionalità/rilascio.
Casi di prova
Passaggi per testare gli scenari.
Segnalazioni di bug
Descrizione completa per giocare.
Note sulla versione
Cosa è cambiato, cosa testare.
Errori comuni
QA alla fine
Lascialo fino all'ultimo minuto. Spostati a sinistra.
Solo manuale
I test manuali non sono scalabili.
Ignora feedback
Bug noti non risolti.
Ambienti diversi
Messa in scena della produzione molto diversa.
Conclusione
Il QA è un investimento che impedisce costi molto più elevati. Automatizza ciò che è ripetitivo, testa in anticipo, costruisci una cultura della qualità. I prodotti ben testati sono prodotti affidabili.
##Domande frequenti
1) Il QA è solo responsabilità del tester? No. L'intero team è responsabile della qualità.
2) Quanto automatizzare? Per quanto abbia senso. Test unitari estesi, E2E selettivo.
3) Il QA ritarda le consegne? Forse a breve termine. A lungo termine, evita rilavorazioni.
4) Ho bisogno di un QA dedicato? Dipende dalla dimensione. Piccoli team possono condividere la responsabilità.
5) Come dare priorità ai bug? Gravità x impatto. Prima i bloccanti.
