El desarrollo impulsado por pruebas de aceptación (ATDD) es un proceso de colaboración en el que los desarrolladores, evaluadores y representantes comerciales se unen para resolver los requisitos, percibir posibles problemas y reducir la posibilidad de errores antes de que comience la codificación. ATDD está escrito desde la perspectiva del usuario y responde a la pregunta "¿El código está haciendo lo que se supone que debe hacer?"
El primer paso en ATDD es reunir a todas las partes involucradas y realizar un taller de especificaciones. Una vez que los requisitos se definen y aclaran en el taller, los probadores pueden crear pruebas automatizadas a partir de los criterios especificados. Los probadores de garantía de calidad (QA) trabajan con los desarrolladores para implementar la primera prueba y automatizarla. ATDD también facilita la implementación de las pruebas unitarias.
Formato de prueba ATDD
Las pruebas ATDD generalmente se adhieren al siguiente formato:
Dado: Una configuración, estado especificado.
Y también debes (opcional): Continuación de la configuración.
Cuando: Desencadenador, ocurre una acción o un evento.
Entonces: Verificación. El estado ha cambiado o se produce una salida.
Un ejemplo usando el formato ATDD:
Dado: Película incluida en el catálogo de la aplicación de transmisión de video.
Y también debes: El usuario es un suscriptor de pago.
Cuando te: El usuario selecciona la película para ver del catálogo de aplicaciones.
Entonces: La película se transmite para el usuario.
Beneficios de ATDD
ATDD reúne a todos los involucrados en el desarrollo para discutir los criterios en torno a los cuales se construye una aplicación. La claridad en los requisitos ayuda a reducir los esfuerzos desperdiciados y comprender cómo una empresa espera que funcionen las cosas puede reducir la recodificación y los errores. ATDD a menudo puede ser beneficioso para los desarrolladores que utilizan Agile.
Incluso en los casos en que las pruebas no están automatizadas o los evaluadores tienen poco conocimiento de codificación, todavía es valioso aclarar las condiciones y la lógica del negocio. Todos los equipos pueden beneficiarse de la colaboración con expertos en negocios y de una discusión temprana sobre cómo realizar las pruebas para que se cumplan los requisitos necesarios. El resultado final de ATDD es una aplicación mejor y más confiable.
ATDD frente a TDD
Mientras que ATDD se concentra en la colaboración y las pruebas para la funcionalidad del usuario, el desarrollo impulsado por pruebas (TDD) sigue un enfoque más centrado en el desarrollador. TDD se centra en ejecutar y automatizar pruebas unitarias y es más fácil de implementar. Tanto ATDD como TDD tienen como objetivo reducir el código innecesario y los recursos del desarrollador, al tiempo que crean requisitos integrales y realizan pruebas continuamente para asegurarse de que un producto cumpla con las expectativas del usuario.