Per iniziare, non penso che questa sia una ripetizione di altre domande sui test unitari . Ciò con cui cerco aiuto è articolare il suo valore a un team di programmatori, analisti, manager e tester. Con i test automatici, non penso di dover fare una distinzione tra test unitari (ad esempio JUnit), BDD (ad esempio JBehave, Fitness) e UI (Selenium, Watir) perché penso che tutti forniscano un valore simile (ma sono libero di scrivi una risposta che non è d'accordo :))
Di seguito è riportato un elenco che ho identificato, cerco risposte che aiutino a espandere o perfezionare:
- Risparmio di tempo / costi : la scrittura di test automatici può richiedere più tempo rispetto ai casi di test scritti. Tuttavia, considerando che i test vengono eseguiti più volte, il lavoro marginale (ad es. Costo / tempo) per eseguire i test automatizzati è inferiore di diversi ordini di grandezza. Che i test automatici siano economici da eseguire facilita la modifica del sistema nel tempo.
- Documentazione : non esiste un modo più vero per sapere come funziona un sistema se non i suoi test. Ogni altra documentazione di solito è obsoleta nel momento in cui è scritta, ma i test (almeno quelli che passano) rivelano come le cose funzionano davvero. Questo vale sia per l'utente finale che per la documentazione API.
- Qualità del codice : la scrittura di prova ti costringe a:
- considerare i clienti perché i test sono client
- rompe le dipendenze in cui rendere testabile il codice spesso significa capire come rendere quel codice non richiede la disponibilità di altri sistemi di grandi dimensioni