La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

TDD en Python Javier Andrés Mansilla - Except Test Driven Development.

Presentaciones similares


Presentación del tema: "TDD en Python Javier Andrés Mansilla - Except Test Driven Development."— Transcripción de la presentación:

1 TDD en Python Javier Andrés Mansilla - javier@except.com.arjavier@except.com.ar Except Test Driven Development

2 Resumen de la charla Introducción PyUnit Procedimiento general TDD a través de un ejemplo Conceptos importantes Conclusiones

3 Introducción Porqué testear? ✔ Los programadores somos humanos, y cometemos errores Porqué testear unidades mínimas? ✔ Garantizar el correcto funcionamiento de un soft (como un todo), es tarea muy difícil, casi imposible ✔ Solución: construir el programa como la unión de unidades mínimas (atómicas) de las cuales es inmediato asegurar corrección

4 Introducción (cont.) Software testing vs. TDD ✔ Software testing is a process used to help identify the correctness, completeness and quality of developed computer software. With that in mind, testing can never completely establish the correctness of computer software. 1 ✔ It is good to emphasize the fact that TDD is not a method of testing, but a method of designing software. 2 1 http://en.wikipedia.org/wiki/Software_testing http://en.wikipedia.org/wiki/Software_testing 2 http://en.wikipedia.org/wiki/Test_driven_development http://en.wikipedia.org/wiki/Test_driven_development

5 Introducción (cont.) Con TDD podemos asegurar: ✔ que se genera sólo la porción de código necesaria para satisfacer el objetivo ✔ que todo el código está testeado (cubierto por tests) ✔ rápida retroalimentación sobre la corrección del programa (por ejemplo, al momento de refactorizar código)

6 Es un framework de testeo para Python Deriva de JUnit, Smalltalk-Unit Provee: ✔ Automatización ✔ Código compartido para inicialización/finalización ✔ Agrupación en colecciones PyUnit

7 Procedimiento general ● Preparar el entorno para el/las prueba/s ● Crear el caso de prueba ● Chequear el resultado de la corrida de ese caso de prueba ● Si hubo falla/s, generar/corregir el código necesario para satisfacer el caso de prueba ● Si no, agregar más casos de prueba

8 Gráficamente...

9 TDD by example

10 self.assert_

11 self.assert_ (cont.) A lo que teníamos...... le agregamos:

12 self.assertEqual

13 self.assertEqual (cont.) A lo que teníamos...... le agregamos:

14 Adecuando el entorno

15 Redefiniendo código A lo que teníamos...... le agregamos:

16 self.assertRaises

17 self.assertRaises (cont.) Sigue siendo válido el código que teníamos:

18 Un poquito de robustez

19 Versión final de __init__

20 Agregando nuevas clases

21 Versión inicial de depositar

22 Agregando casos de prueba

23 Segunda versión de depositar

24 Método especial: setUp

25 Otro caso de prueba más...

26 Versión final de depositar A lo que teníamos...... le agregamos:

27 Duplicación de código

28 Superclase: OperacionCaja

29 Heredando...

30 test suite & test runner

31 Consideraciones finales TDD es una herramienta fundamental para desarrollo ágil. TDD es especialmente útil cuando se debe resolver un problema que no está totalmente definido, o cuando el cliente no sabe exactamente lo que quiere. Por ende, su utilización es ideal en ambientes de desarrollo iterativo.

32 Preguntas? La última versión de esta presentación está disponible en: http://www.except.com.ar


Descargar ppt "TDD en Python Javier Andrés Mansilla - Except Test Driven Development."

Presentaciones similares


Anuncios Google