lunes, 12 de marzo de 2012

Acepptance Test Driven Development (ATDD)


ATDD

Introducción: ¿Qué es ATDD?.

Acepptance Test Driven Development o Pruebas de aceptación del software o desarrollo, son un conjunto de pruebas funcionales basadas en metodologías ágiles que se realizan sobre el sistema completo, todos los programas tienen errores y la ATDD  los descubre.

El objetivo principal de estas pruebas es encontrar el mayor numero de errores y defectos.
Se escribe una prueba y se verifica que las pruebas fallen, luego se implementa el código que haga que la prueba pase correctamente y seguidamente se refactoriza el código escrito. El propósito del desarrollo guiado por pruebas es lograr un código limpio y robusto que funcione. La idea es que los requerimientos sean traducidos a pruebas, de este modo, cuando las pruebas pasen se garantizará que los requerimientos se hayan implementado correctamente.

Estas pruebas no se realizan durante el desarrollo, sino que se realizan sobre el producto terminado e integrado o sobre una versión del producto o una iteración funcional pactada previamente con el cliente.
La experiencia muestra que aún después del más cuidadoso proceso de pruebas por parte del desarrollador, quedan una serie de errores que sólo aparecen cuando el cliente comienza a usarlo.

Una prueba de aceptación puede ir desde un informal caso de prueba hasta la ejecución sistemática de una serie de pruebas bien planificadas. De hecho, las pruebas de aceptación pueden tener lugar a lo largo de semanas o meses, descubriendo así errores escondidos que pueden ir degradando el funcionamiento del sistema.


Pruebas de Aceptación.

Se emplean dos técnicas para las pruebas de aceptación:

1. La prueba alfa:
Se lleva a cabo por un cliente en el lugar de desarrollo. Se usa el software de forma natural con el desarrollador como observador. Para que tengan validez, se debe primero crear un ambiente con las mismas condiciones que se encontrarán en las instalaciones del cliente. Una vez logrado esto, se procede a realizar las pruebas y a documentar los resultados.

2. La prueba beta:
Se lleva a cabo por los usuarios finales del software en los lugares de trabajo de los clientes. A diferencia de la prueba alfa, el desarrollador no esta presente normalmente. Así, la prueba beta es una aplicación "en vivo" del software en un entorno que no puede ser controlado por el desarrollador. El cliente registra todos los problemas que encuentra durante la prueba beta e informa al desarrollador.
Como resultado de los problemas informados durante la prueba beta, el desarrollador del software lleva a cabo modificaciones y así prepara una versión del producto de software.


Descripción del proceso.

Las pruebas de aceptación tienen como fin validar que el sistema cumple los requisitos básicos de funcionamiento esperado y permitir que el usuario determine la aceptación del sistema. Por este motivo, estas pruebas son realizadas por el usuario final que, durante este periodo de tiempo, debe plantear todas las deficiencias o errores que encuentre antes de dar por aprobado el sistema definitivamente.
Los directores de los usuarios revisan los criterios de aceptación, especificados previamente en el plan de pruebas del sistema, y dirigen las pruebas de aceptación final que llevan a cabo los usuarios expertos. A su vez, éstos últimos deben elaborar un informe que los directores analizan y evalúan para determinar la aceptación o rechazo del sistema.
Se analizan los criterios de aceptación establecidos por el usuario y recogidos en las verificaciones del plan de pruebas, por si fuera necesario incorporar algún caso de prueba adicional, y se comunica el plan de pruebas de aceptación una vez actualizado a los usuarios implicados.

Después se llevan a cabo las pruebas de aceptación final del sistema para asegurar que todos los componentes responden a los criterios de aceptación especificados.

Si es un software complejo y esta compuesto por varios módulos que se unen al final para lograr el producto, se probaran primero por separado y luego se diseñara un caso de prueba de integración para probar el software como un todo, el equipo de desarrollo deberá entregar con el expediente del producto un documento donde exponga como los datos manejados de un modulo afectan a otros. En caso de productos menos complejos esto no es necesario.      

Se registra la realización de las pruebas, incluyendo un informe que recoja la desviación de los requisitos establecidos y los problemas que quedan sin resolver, para que mediante retroalimentación se puedan subsanar.
Por último se evalúan los resultados de las pruebas, analizando las incidencias recibidas y comprobando que se han llevado a cabo todos los casos de pruebas establecidos en el plan de pruebas. Dicha evaluación consiste en:

  • Comparar los resultados obtenidos con los esperados.
  • Identificar el origen de cada problema y determinar qué acciones o medidas correctoras es preciso llevar a cabo para resolverlo de forma satisfactoria.
  • Indicar qué pruebas se debe volver a realizar, o si será necesario contemplar nuevos casos de prueba.

Una vez realizadas las medidas correctoras necesarias, y comprobado que su comportamiento es adecuado, se documenta el resultado global de la evaluación de las pruebas de aceptación que incluye la aprobación del sistema por parte del usuario final.



Preguntas


1. ¿Qué dos nombres adoptan las técnicas de pruebas de aceptación?


a) Alfa y Beta 
b) Cliente y final
c) Depuración y refactorización
d) Beta y gamma
2. ¿Cual es el objetivo principal de ATTD?


a) Cumplir los objetivos del cliente en el menor tiempo posible.
b) Desarrollar un producto se calidad basándose en un documento como referente.
c) El objetivo principal de estas pruebas es desarrollar un producto iterativamente y que el cliente lo pruebe en su lugar de trabajo indicando se está conorme o no.       
d) El objetivo principal de estas pruebas es encontrar el mayor numero de errores y defectos.
3. Cual de las siguientes afirmaciones es cierta:


a) El desarrollador está presente como observador en las pruebas alfa.
b) El desarrollador está presente como observador en las pruebas beta.
c) El desarrollador está presente como observador en las pruebas alfa y beta.
d) Ninguna de las anteriores es correcta.
4.  Las pruebas de aceptación NO se realizan:

a) Con el producto terminado.
b) Durante el desarrollo.
c) En una iteración funcional pactada previamente con el cliente 
d) Ninguna de las anteriores es correcta.
5.  Si tenemos un software complejo que está compuesto por varios módulos...


a) no se probarán por separado, habrá que esperar a que todos los módulos estén terminados y unidos como un todo.
b) se probaran primero por separado y luego se diseñara un caso de prueba de integración para probar el software como un todo.
c) es indiferente si lo probamos por separado o si esperamos a que estén unidos
como un todo.
d) Ninguna de las anteriores es correcta.
6. Las pruebas de aceptación son desarrolladas por:

a) el cliente.  
b) el desarrollador.
c) los dos anteriores.
d) ninguno de los anteriores.

7. La evaluación de los resultados de las pruebas consiste en:


a) Comparar los resultados obtenidos con los esperados.
b) Identificar el origen de cada problema y determinar qué acciones o medidas correctoras es preciso llevar a cabo para resolverlo de forma satisfactoria.
c) Indicar qué pruebas se debe volver a realizar, o si será necesario contemplar nuevos         casos de prueba.
d) Todas las anteriores son ciertas.

8. ¿Qué es ATDD?

a) Una metodología ágil.
b) Pruebas de aceptación del hardware.
c) Pruebas de aceptación del software
d) Es una metodología ágil basada en las pruebas de aceptación del software.


No hay comentarios:

Publicar un comentario