Test Agile - Metodologie
Agile è una metodologia di sviluppo iterativa, in cui l'intero team di progetto partecipa a tutte le attività. I requisiti evolvono con il progredire delle iterazioni, attraverso la collaborazione tra il cliente e i team auto-organizzati. Poiché la codifica e il test vengono eseguiti in modo interattivo e incrementale, durante il corso dello sviluppo, il prodotto finale sarà di qualità e garantirà i requisiti del cliente.
Ogni iterazione si traduce in un incremento del prodotto funzionante integrato e viene fornita per il test di accettazione dell'utente. Il feedback dei clienti così ottenuto sarebbe un input per le iterazioni successive / successive.
Integrazione continua, qualità continua
L'integrazione continua è la chiave per il successo dello sviluppo agile. Integrare frequentemente, almeno quotidianamente in modo da essere pronti per un rilascio come e quando richiesto. Il testing in Agile diventa una componente essenziale di tutte le fasi dello sviluppo, garantendo una qualità continua del prodotto. Il feedback costante di tutte le persone coinvolte nel progetto si aggiunge alla qualità del prodotto.
In Agile, la comunicazione è data la massima importanza e le richieste dei clienti vengono ricevute come e quando necessario. Ciò dà la soddisfazione al cliente che tutti gli input siano considerati e che il prodotto di qualità lavorativo sia disponibile durante lo sviluppo.
Metodologie agili
Esistono diverse metodologie Agile che supportano lo sviluppo agile. Le metodologie Agile includono:
Mischia
Scrum è un metodo di sviluppo Agile che enfatizza un approccio incentrato sul team. Sostiene la partecipazione dell'intero team a tutte le attività di sviluppo del progetto.
XP
eXtreme Programming è incentrato sul cliente e si concentra sui requisiti in continua evoluzione. Con rilasci frequenti e feedback dei clienti, il prodotto finale sarà di qualità soddisfacendo i requisiti del cliente che vengono resi più chiari durante il processo.
Cristallo
Crystal si basa su noleggio, consegna ciclica e conclusione.
Il chartering prevede la formazione di un team di sviluppo, l'esecuzione di un'analisi preliminare di fattibilità, l'arrivo a un piano iniziale e alla metodologia di sviluppo.
La consegna ciclica con due o più cicli di consegna si concentra sulla fase di sviluppo e sulla consegna del prodotto integrato finale.
Durante il riepilogo, vengono eseguite la distribuzione nell'ambiente utente, le revisioni e le riflessioni post-distribuzione.
FDD
Feature Driven Development (FDD) implica la progettazione e la creazione di feature. La differenza tra FDD e altre metodologie di sviluppo agile è che le funzionalità vengono sviluppate separatamente in fasi specifiche e brevi.
DSDM
Il metodo di sviluppo software dinamico (DSDM) si basa su RAD (Rapid Application Development) ed è allineato al Framework Agile. DSDM si concentra sulla consegna frequente del prodotto, coinvolgendo attivamente gli utenti e consentendo ai team di prendere decisioni rapide.
Sviluppo software snello
Nello sviluppo di software snello, l'obiettivo è eliminare gli sprechi e dare valore al cliente. Ciò si traduce in un rapido sviluppo e in un prodotto di valore.
I rifiuti includono lavori parzialmente eseguiti, lavori irrilevanti, caratteristiche non utilizzate dal cliente, difetti, ecc. Che si aggiungono ai ritardi nella consegna.
Il Lean Principles sono -
- Eliminate lo spreco
- Amplifica l'apprendimento
- Ritardo di impegno
- Potenzia il team
- Consegna veloce
- Costruisci integrità
- Vedi il tutto
Kanban
Kanban si concentra sulla gestione del lavoro con un'enfasi sulla consegna just-in-time (JIT), senza sovraccaricare i membri del team. Le attività vengono visualizzate per tutti i partecipanti e per i membri del team per estrarre il lavoro da una coda.
Kanban si basa su -
- Kanban Board (visuale e persistente durante lo sviluppo)
- Limite di work-in-progress (WIP)
- Tempi di consegna
Metodologie di test agili
Le pratiche di test sono ben definite per ogni progetto, Agile o meno, per fornire prodotti di qualità. I principi di test tradizionali sono usati abbastanza spesso nei test agili. Uno di questi è Early Testing che si concentra su:
Scrittura di casi di test per esprimere il comportamento del sistema.
Prevenzione, rilevamento e rimozione precoci dei difetti.
Garantire che i giusti tipi di test vengano eseguiti al momento giusto e come parte del giusto livello di test.
In tutte le Metodologie Agile di cui abbiamo discusso, l'Agile Testing è di per sé una Metodologia. In tutti gli approcci, i casi di test vengono scritti prima della codifica.
In questo tutorial, ci concentreremo su Scrum come metodologia di test Agile.
Le altre metodologie di test Agile comunemente utilizzate sono:
Test-Driven Development (TDD) - Test-Driven Development (TDD) si basa sulla codifica guidata da test.
Acceptance Test-Driven Development (ATDD) - L'Acceptance Test-Driven Development (ATDD) si basa sulla comunicazione tra clienti, sviluppatori e tester ed è guidato da criteri di accettazione e casi di test di accettazione predefiniti.
Behavior-Driven Development (BDD) - I test in Behavior-Driven Development (BDD) si basano sul comportamento previsto del software sviluppato.
Ciclo di vita dei test agili
In Scrum, le attività di test includono:
Contribuire alle storie degli utenti in base al comportamento previsto del sistema rappresentato come casi di test
Pianificazione dei rilasci basata sul lavoro di test e sui difetti
Sprint Planning basato su User Story e Difetti
Esecuzione dello sprint con test continui
Test di regressione dopo il completamento dello Sprint
Segnalazione dei risultati dei test
Test di automazione
Il test è iterativo e basato sugli sprint, come illustrato nel diagramma riportato di seguito: