Sviluppo basato su test di accettazione (ATDD)

Lo sviluppo basato sui test di accettazione (ATDD) è un processo collaborativo in cui sviluppatori, tester e rappresentanti aziendali si uniscono per elaborare i requisiti, percepire potenziali insidie ​​e ridurre la possibilità di errori prima dell'inizio della codifica. ATDD è scritto dal punto di vista dell'utente e risponde alla domanda "Il codice fa quello che dovrebbe fare?"

Il primo passo in ATDD è riunire tutte le parti coinvolte e tenere un seminario sulle specifiche. Una volta definiti e chiariti i requisiti in officina, i tester possono creare test automatizzati in base ai criteri specificati. I tester del controllo qualità (QA) collaborano con gli sviluppatori per implementare il primo test e automatizzarlo. ATDD semplifica inoltre l'implementazione dei test unitari.

Formato di prova ATDD

I test ATDD di solito aderiscono al seguente formato:

Dato: Una configurazione, uno stato specificato.

E (opzionale): l'installazione continua.

Quando: Trigger, si verifica un'azione o un evento.

Quindi: Verifica. Lo stato è cambiato o viene prodotto un output.

Un esempio che utilizza il formato ATDD:

Dato: Film elencato nel catalogo dell'app di streaming video.

E: L'utente è un abbonato a pagamento.

quando: L'utente seleziona il film da guardare dal catalogo delle app.

Poi: Il film viene riprodotto in streaming per l'utente.

Vantaggi di ATDD

ATDD riunisce tutte le persone coinvolte nello sviluppo per discutere i criteri attorno ai quali è costruita un'app. La chiarezza sui requisiti aiuta a ridurre gli sforzi sprecati e la comprensione di come un'azienda si aspetta che le cose funzionino possono ridurre la ricodifica e gli errori. ATDD può spesso essere utile per gli sviluppatori che utilizzano Agile.

Anche nei casi in cui il test non è automatizzato o i tester hanno poca conoscenza della codifica, è comunque utile chiarire le condizioni e la logica del business. Tutti i team possono trarre vantaggio dalla collaborazione con esperti aziendali e dalla discussione iniziale su come eseguire i test in modo da soddisfare i requisiti necessari. Il risultato finale di ATDD è un'applicazione migliore e più affidabile.

ATDD contro TDD             

Mentre ATDD si concentra sulla collaborazione e sul test delle funzionalità utente, lo sviluppo basato sui test (TDD) segue un approccio più incentrato sullo sviluppatore. TDD si concentra sull'esecuzione e sull'automazione di unit test ed è più facile da implementare. Sia ATDD che TDD mirano a ridurre il codice non necessario e le risorse per sviluppatori, creando requisiti completi e testando continuamente per assicurarsi che un prodotto soddisfi le aspettative degli utenti.