El desarrollo basado en pruebas de aceptación (ATDD) se produce en un entorno de desarrollo de software. Trabajando en colaboración, el equipo de programación y desarrollo de software determina los criterios de aceptación, proporciona ejemplos de esos criterios y luego crea pruebas de aceptación basadas en esos criterios antes de comenzar el desarrollo de software. Hacerlo ayuda a todo el equipo a comprender mejor los objetivos del producto terminado, cómo debe verse ese producto terminado y cómo debe funcionar. Siguiendo un flujo de trabajo detallado, ATDD es un proceso estructurado, que brinda al equipo de desarrollo de software una serie de beneficios antes, durante y después del proceso de desarrollo. Además, para garantizar el éxito, el proceso debe incluir el equipo adecuado y los métodos adecuados.
ATDD establece un flujo de trabajo consistente que sigue un formato específico para garantizar que todos los miembros del equipo comprendan lo que se requiere para que el producto terminado funcione como se esperaba. Este flujo de trabajo generalmente implica establecer primero los criterios, la mayoría de las veces desde la perspectiva del usuario, y crear ejemplos concretos. A partir de entonces, se desarrollan y ejecutan pruebas de aceptación para ver los resultados de la falla con el código correcto basado en estos ejemplos. A continuación, se desarrolla un código mínimo para ejecutar el programa, se vuelven a ejecutar más pruebas de aceptación y se validan los resultados. Luego, la refactorización se lleva a cabo en función de los resultados de las pruebas de aceptación antes de que se desarrolle el programa final para su uso.
Los desarrolladores y programadores de software suelen citar los beneficios del método ATDD para el desarrollo de software, tanto para acelerar el proceso de desarrollo como para garantizar un producto final sólido. En la etapa de planificación, ayudar al equipo de desarrollo a concentrarse en las tareas correctas es un beneficio importante. Durante la creación de ejemplos y pruebas, el enfoque se refina aún más, mientras se logra claridad en el proceso y los problemas presentados durante las pruebas. Durante todo el proceso y con el producto final, el objetivo es la estabilidad y robustez del software. Estos beneficios generalmente se logran con el producto final si se sigue el flujo de trabajo de ATDD y el equipo colabora de manera efectiva.
Hacer que ATDD funcione de manera efectiva como pretende el método, requiere los ingredientes correctos desde el principio. Los equipos reunidos deben contar con colaboradores calificados, deben colaborar voluntariamente y deben estar bien capacitados y disciplinados para llevar el proceso hasta su finalización. Los ejemplos creados deben ser automatizados, eficientes, legibles, mantenibles, localizables y medibles. Si el ejemplo creado no cumple con cada uno de estos criterios, se atasca el proceso de prueba y colaboración, lo que puede resultar en la producción de errores de software. Además, todos los diseños deben ser probables para que el proceso ATDD produzca de manera efectiva un programa de software conciso, robusto y estable.