La strategia per scegliere tra test manuali e automatizzati è determinata da molti fattori, tra cui costi, obiettivi, stabilità delle funzionalità e risorse lavorative disponibili.
Storia della questione: All'inizio dell'automazione, si pensava che l'obiettivo dovesse essere coprire il 100% dei test con l'automazione. In seguito è diventato chiaro che non tutte le verifiche dovrebbero essere automatizzate: alcune attività sono più facili, più veloci e più economiche da eseguire manualmente.
Problema: L'automazione è utile solo quando gli stessi scenari vengono eseguiti frequentemente e ripetutamente. Verifiche una tantum, che cambiano rapidamente o soggettive (visive, UX) sono molto più facili da eseguire manualmente. Cercare di “automatizzare tutto” gonfia rapidamente il budget e riduce i benefici.
Soluzione: Innanzitutto, è desiderabile automatizzare ciò che:
Il testing manuale è rilevante per:
Caratteristiche chiave:
È possibile ottenere benefici automatizzando tutti i test in un progetto?
No, perché molti test cambieranno prima di ammortizzare gli sforzi investiti e il mantenimento dell'automazione costerà di più rispetto all'esecuzione manuale degli stessi test.
Il test manuale può essere obbligatorio al rilascio in produzione?
Sì, perché alcune attività (soprattutto quelle legate a UI/UX e regressioni visive) sono difficili o impossibili da automatizzare in modo adeguato.
È vantaggioso automatizzare i test di attività “una tantum”/esplorative?
No, l'automazione richiede tempo e risorse che non si ripagheranno in caso di test una tantum o raramente utilizzati.
Il team ha deciso di automatizzare tutti i test manuali, compresi i controlli di cross-browser su dispositivi non standard e il controllo visivo dei layout. Di conseguenza, sono state spese centinaia di ore nei mesi successivi per mantenere test non aggiornati.
Pro:
Contro:
Il team insieme al manager ha formato un elenco di scenari critici per il business (registrazione, verifica dei pagamenti), che sono stati stabilmente automatizzati; tutto il resto viene testato manualmente o parzialmente (utilizzando testing esplorativo).
Pro:
Contro: