Caratteristiche e differenza tra il testing tradizionale e agile

Caratteristiche e differenza tra il testing tradizionale e agile

Testing tradizionale e testing agile

L’attività di testing è una delle fasi fondamentali appartenenti al ciclo di vita di un software, ed ha come scopo quello di elevarne la qualità e verificare che il comportamento sia il più in linea possibile con quanto richiesto. Il superamento di tutti i test non garantisce che il software, una volta rilasciato, funzionerà come dovrebbe, ma è utile per ridurne la difettosità.

D’altro canto, l’agile testing è una tipologia di testing dinamico, che permette di svolgere le attività di test in maniera regolare durante tutto il processo di sviluppo. Per questo è importante individuare subito l’approccio da applicare: quali test eseguire, come e quando eseguirli.

Una delle principali differenze tra i cicli di vita tradizionali e quelli agili è l’idea di iterazioni molto brevi, ognuna delle quali si traduce in un software funzionante che offre caratteristiche di valore per i business stakeholders. All’inizio del progetto c’è un periodo di pianificazione del rilascio. Questo è seguito da un sequenza di iterazioni. All’inizio di ogni iterazione, c’è un periodo di pianificazione dell’iterazione. Una volta che viene stabilito l’ambito di iterazione, vengono sviluppate le user stories selezionate, integrate con il sistema, e testate. Queste iterazioni sono altamente dinamiche, con lo sviluppo, l’integrazione e le attività di test che avvengono ad ogni iterazione, con la presenza di un notevole parallelismo e sovrapposizione. Le attività di test hanno luogo durante tutta l’iterazione, e non come attività finale.

Tester, sviluppatori e stakeholder aziendali hanno tutti un ruolo nei test, come per i cicli di vita tradizionali. Gli sviluppatori eseguono test unitari mentre sviluppano le caratteristiche delle user stories. I tester testano poi queste caratteristiche. Anche gli stakeholders aziendali testano le storie durante l’implementazione. Possono utilizzare test cases scritti, ma possono anche semplicemente sperimentare e utilizzare la funzionalità per fornire un rapido feedback al team di sviluppo.

In alcuni casi, si verificano periodicamente iterazioni di indurimento o stabilizzazione per risolvere eventuali difetti persistenti e altri problemi tecnici. Tuttavia, la migliore pratica è che nessuna caratteristica è considerata completata fino a quando non è stata integrata e testata con il sistema. Un’altra buona pratica è affrontare i difetti rimasti dalla precedente iterazione all’inizio di quella successiva. Tuttavia, alcuni lamentano che questa pratica porti ad una situazione in cui il lavoro totale da svolgere nell’iterazione corrente è sconosciuto, e sarà quindi più difficile stimare in quanto tempo le caratteristiche rimanenti possono essere implementate. Alla fine della sequenza di iterazioni, ci possono essere una serie di attività di rilascio per preparare il software alla consegna, anche se in alcuni casi questa avviene alla fine di ogni iterazione.

Quando viene utilizzato il risk-based testing come strategia di test, si verifica un’analisi del rischio di alto livello durante la pianificazione del rilascio, con i tester che spesso guidano l’analisi. Tuttavia, i rischi specifici associati ad ogni iterazione sono identificati e valutati nella pianificazione dell’iterazione. Questa analisi dei rischi influenza la sequenza di sviluppo, nonché la priorità e la profondità dei test delle caratteristiche. Influenza anche la stima del test effort richiesto per ogni caratteristica.

In alcune pratiche Agile (ad esempio, Extreme Programming ), si usa il pairing. Questo può coinvolgere i tester lavorando insieme a due a due per testare una caratteristica, oppure un tester che lavora in collaborazione con uno sviluppatore per creare e testare una funzione. L’automazione dei test a tutti i livelli di testing avviene in molti team Agile, e questo può significare che i tester passano il tempo a creare, eseguire, monitorare e mantenere i test e i risultati automatizzati.

Un principio fondamentale del metodo Agile è che il cambiamento può avvenire nel corso del progetto. Pertanto, è preferibile produrre una documentazione leggera dei prodotti di lavoro. Le modifiche alle caratteristiche esistenti hanno implicazioni nel testing, in particolare nei test di regressione. L’uso di test automatizzati è un modo per gestire la quantità di test effort associato al cambiamento. Tuttavia, è importante che il tasso di cambiamento non superi la capacità del team di gestire i rischi associati a tali cambiamenti.

Caratteristiche e differenza tra il testing tradizionale e agile

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *