Agile testing:

Desarrollo guiado por pruebas (TDD)

Un poco de mí

Sagrario Meneses
Senior Software Engineer

 

        @sagmmd

Principios del desarrollo Agile

1. Pruebas continuas

2. Retroalimentación continua

3. Involucrar a todo el equipo

4. Respuesta rápida

5. Alto nivel de calidad en el software 

INNOCENT

Test-Driven Development

El TDD es un proceso de desarrollo de software que propone la repetición de pequeños fragmentos de código en un ciclo, estableciendo los requerimientos específicos por casos de uso, de esa forma el software únicamente es mejorado para pasar las pruebas creadas para cada caso de uso.

¿Cuándo fue la primera vez que se practicó TDD?

1960

"Un sistema de software se puede diseñar mejor si la prueba se entrelaza con el diseño en lugar de usarse después del diseño. A través de repeticiones sucesivas de este proceso de entrelazar pruebas y modelo todo llega a ser software en sí mismo."

OTAN Alemania 1968

1. Escribir las pruebas

2. Construir lo necesario para pasar esas pruebas.

3. Mejorar el código.

RED

GREEN

REFACTOR

Ventajas en el negocio por practicar TDD

  • Permite la verificación de requerimientos.

  • Detección ágil de errores.

  • Un menor costo de mantenimiento.

Ventajas en el desarrollo por practicar TDD

  • Diseño de arquitectura - Primero 

  • Evitar la sobre - ingeniería.

  • Confianza.

Sugerencias y buenas prácticas

Probar el código como si estuviera ya corriendo en producción.

  • Configuraciones independientes.

  • Fixtures de base de datos.

  • Enfocarse en los valores y resultados necesarios.

  • Revisar las pruebas y practicar el testing con el equipo.

  • NO crear dependencias entre las pruebas.

  • Integración continua -> Automatización de pruebas.

La refactorización es como resolver el cubo de Rubik. Se necesitan muchos pasos pequeños para lograr un objetivo mayor."

No basta con que el código funcione, los programadores que se conforman con esto no son profesionales."

Bibliografía recomendada

"Test-Driven Development By Example" by Kent Beck

"Clean Code" by Robert Cecil Martin

"Refactoring" by Kent Beck and Martin Fowler

¡ G R A C I A S !

 @sagmmd

Agile testing - TDD

By smmd

Agile testing - TDD

  • 179