L’Acceptance Test Driven Development (ATDD) si verifica in un ambiente di sviluppo software. Lavorando in collaborazione, il team di programmazione e sviluppo software determina i criteri di accettazione, fornisce esempi di tali criteri e quindi crea test di accettazione basati su tali criteri prima di iniziare lo sviluppo del software. Ciò aiuta l’intero team a comprendere meglio gli obiettivi del prodotto finito, come dovrebbe essere il prodotto finito e come dovrebbe funzionare. Seguendo un flusso di lavoro dettagliato, ATDD è un processo strutturato, che offre al team di sviluppo del software una serie di vantaggi prima, durante e dopo il processo di sviluppo. Inoltre, per garantire il successo, il processo deve includere la squadra giusta e i metodi giusti.
ATDD stabilisce un flusso di lavoro coerente che segue un formato specificato per garantire che tutti i membri del team comprendano ciò che è necessario per far funzionare il prodotto finito come previsto. Questo flusso di lavoro di solito implica prima la definizione dei criteri, molto spesso dal punto di vista dell’utente, e la creazione di esempi concreti. Successivamente, vengono sviluppati ed eseguiti test di accettazione per vedere i risultati dell’errore con il codice corretto basato su questi esempi. Viene quindi sviluppato un codice minimo per eseguire il programma, vengono eseguiti di nuovo più test di accettazione e i risultati vengono convalidati. Il refactoring viene quindi eseguito sulla base dei risultati dei test di accettazione prima che il programma finale venga sviluppato per l’uso.
I vantaggi del metodo ATDD per lo sviluppo del software sono spesso citati tra sviluppatori e programmatori di software, sia per accelerare il processo di sviluppo sia per garantire un solido prodotto finale. Nella fase di pianificazione, aiutare il team di sviluppo a concentrarsi sui compiti giusti è uno dei principali vantaggi. Durante la creazione di esempi e test, l’attenzione viene ulteriormente affinata, mentre si ottiene chiarezza sul processo e sui problemi presentati durante i test. Durante l’intero processo e con il prodotto finale, l’obiettivo è la stabilità e la robustezza del programma software. Questi vantaggi si ottengono solitamente con il prodotto finale se si segue il flusso di lavoro ATDD e il team collabora in modo efficace.
Far funzionare ATDD in modo efficace come intende il metodo, richiede gli ingredienti giusti fin dall’inizio. I team riuniti devono avere collaboratori qualificati, devono collaborare volentieri e devono essere ben formati e disciplinati per portare a termine il processo. Gli esempi creati devono essere automatizzati, efficienti, leggibili, manutenibili, localizzabili e misurabili. Se l’esempio creato non soddisfa ciascuno di questi criteri, il processo di test e collaborazione si impantana, il che può comportare la produzione di bug del software. Inoltre, tutti i progetti devono essere testabili affinché il processo ATDD produca efficacemente un programma software conciso, robusto e stabile.