TDD y ATDD

contenido
  1. Garantía de Calidad equilibrada
  2. automatización de pruebas
  3. TDD y ATDD
  4. conclusión
  5. leer en un lado

Con las herramientas de análisis de código estático como FindBugs menudo, FXCop o CheckStyle pueden utilizar para comprobar el código contra el fallo de la aplicación independiente. excepciones al descubierto obvia nulas referencias de puntero y fragmentos de código no utilizado pueden encontrar así específico. En general, sin embargo, no debe limitarse al análisis de código estático, sino que se complementan las métricas en función de la programación en parejas. Este intercambio de conocimientos también se apoya mucho al equipo y colectiva Código posesión permite. Si cualquier programador en el equipo es capaz de cambiar cualquier otro código, creando una nueva forma de trabajar, porque no hay código Peters ya no ir a la vez, pero es el código de todos los miembros del equipo.

Al igual que con todas las métricas, sin embargo, tener en cuenta que no se trata de medir el desempeño individual de los miembros del equipo o para utilizar, por ejemplo, las métricas de cobertura como un objetivo para el equipo de desarrollo de software. Cem Kaner y plomo Walter P. Bond "Métricas de Software de ingeniería - ¿Qué miden y cómo lo sabemos?" [3] que tal comportamiento a las manipulaciones y burlar los resultados de métricas. Por ejemplo, la unidad de pruebas puede crear de forma selectiva de manera que se consigue la cobertura porcentual. Son entonces por lo general fuertemente ligados a la lógica de la aplicación, por lo que es difícil en retrospectiva para cambiar el código sin romper la prueba. En lugar de ello, los autores proponen invertir en la formación de los desarrolladores y trabajar con ellos directamente en el código.

Lo suficiente no es suficiente

Una vez que una red de pruebas automáticas se coloca junto con la integración continua, es sólo un pequeño paso para desarrollo basado en pruebas (TDD). El ciclo de desarrollo comienza con una pequeña prueba, en su defecto: Ejecuta una prueba no sólo la mayor cantidad de código de producción deberían escribirse de manera que puede ser con éxito completo. Posteriormente, son la redundancia en el código de reducir a la refactorización (Fig. 3). La mayoría de los equipos no se dan cuenta es que esto también está en la automatización de pruebas para el desarrollo de software en el que el código de prueba es limpia, ya que de lo contrario es cara rápidamente el problema de las pruebas mantenibles malas.

Con desarrollo basado en pruebas a largo plazo de mantener, código probado para ser creado (Fig. 3).Con desarrollo basado en pruebas a largo plazo de mantener, código probado para ser creado (Fig. 3).


Este enfoque inicialmente aparece dogmática, sino para aprender basado en pruebas de desarrollo, se ha elegido deliberadamente esta manera. Cuando se produce la seguridad después de algún tiempo en ciertas áreas también pueden tratar de aplicar en incrementos mayores. Sin embargo, debe quedar claro que demasiado grande un paso conlleva el riesgo de estancarse, y la prueba no vendrá rápidamente de nuevo en funcionamiento. Si esto ocurre, el problema debe ser dividido en unidades más pequeñas y se solucionará de esa manera.

Especificación con ejemplos

Una nueva tendencia en el desarrollo de métodos actualmente va hacia el desarrollo impulsado por Acceptancetest (ATDD) y el desarrollo del comportamiento impulsado por (TDC). En su esencia, el TDC es la asociación de TDD, ATDD, diseño de dominio impulsada, de fuera adentro Desarrollo y uso de un lenguaje ubicuo como talleres de especificaciones creadas por instrumentos. En la práctica ATDD por desgracia, a menudo se confunde con TDC.

ATDD está diseñado para ayudar a las funciones correctas para desarrollar (Fig. 4).ATDD está diseñado para ayudar a las funciones correctas para desarrollar (Fig. 4).

En ATDD (ver [4]). Es una medida para implementar los requisitos correctamente como sea posible en el código (Fig. 4). El trabajo comienza temprano, incluso mientras se definen las necesidades reales. Representantes del desarrollo y el equipo de pruebas se reunirán con el cliente e identificar los criterios de aceptación para las funciones futuras (Fig. 5). Aquí, los probadores y programadores ([5] ver.) Un entendimiento común de las necesidades del cliente, con una habitación lo suficientemente grande para diferentes decisiones de diseño se mantiene abierto. Así que los programadores y probadores pueden encontrar una solución al problema del cliente, con el que se puede satisfacer en el largo plazo.

Todo el equipo de los clientes, los programadores y probadores debe ser un entendimiento común de las funciones resultantes tienen (Fig. 5).Todo el equipo de los clientes, los programadores y probadores debe ser un entendimiento común de las funciones resultantes tienen (Fig. 5).


Sobre la base de los criterios de aceptación mencionados anteriormente, el equipo de desarrollo trabajando inicialmente en ejemplos descriptivos que antes de pasar a la función, sin embargo, continuar perfeccionando. Ejemplos empujan de manera sucinta y con precisión lo que se ha logrado a través de las funciones. Se mueven a la altura de los requisitos de negocio y no tienen nada que ver con los detalles de implementación, tales como la posición de los elementos de la GUI.

En paralelo con la ejecución de las funciones del equipo luego trabaja para automatizar los ejemplos. Algunos grupos desarrolladores son aún capaces de integrar la lógica de negocio de los casos de negocios basados ​​en su código de dominio. La literatura habla de fuera adentro Desarrollo: El desarrollo es impulsado desde el exterior hacia el interior. En este caso sólo la cantidad de lógica de código de dominio y la aplicación se ha diseñado y escrito como es absolutamente necesario. En la práctica, hay algunos equipos que han alcanzado un nivel de madurez tal. Las ventajas de este enfoque, sin embargo, no han de ser despedidos de las manos: Puede ser antes de la función de desarrollo que la propuesta de aplicación se ejecutará lo que quieren, entonces la flexibilidad a los cambios en las necesidades a largo plazo.

TDD Total y ATDD forman una simbiosis con la que un alto grado se puede lograr en la automatización de pruebas. Por lo tanto, es posible gracias a una cubierta ATDD solicitud de cerca del 100 por ciento, mientras que con TDD 100 por ciento de cobertura de código es posible. de este modo combinado TDD asegura que el código es correcto, mientras que ATDD asegura que es el código correcto.