Ejemplo de TDD con Python

Una de las prácticas que siempre intento “vender” a cualquiera involucrado en el desarrollo de software, es la práctica de Test-Driven Development. Una vez que se practica TDD, no quieren volver atrás. Es una forma de programar con tanta recompensa y gozo asociados, que me siento incómodo si no lo usa cuando escribo software real.

Gracias a un tweet de ayer de @jjfalcon, descubrí este ejemplo, en Youtube, del usuario objarni. El usa Ubuntu, programando en Python, usa pyTDDemon para ver inmediatamente el resultado de los tests.

Implementa algo sencillo: código que dado un string con una URL, identificar el protocolo, el dominio, y el recurso que está contenida en esa dirección. En TDD, se va escribiendo el test, el código que pasa el test, y se va progresando de a poco. No hace falta escribir el código correcto y completo desde el principio. Como en otras tantas actividades, el “baby-step”, el “pequeños pasos” de avance, nos ayuda para ir incrementalmente produciendo el resultado esperado.

Noten el ciclo rojo-verde-refactor, el código mínimo que se agrega en cada tests (a veces, retornando valores puestos a mano, sólo para pasar los tests), refactorizando el test si hay código duplicado, las micro-decisiones de diseño que se van tomando, etc… Excelente trabajo para mostrar en video!

[View:http://youtube.com/watch?v=sD6qzJNQEpE]

[View:http://youtube.com/watch?v=QTrGVf39Unk]

[View:http://youtube.com/watch?v=ATsCl00OyDU]

[View:http://youtube.com/watch?v=YPDjWgYor0Y]

Habría tanto para comentar de TDD. Por ahora, dos recursos. He “tagueado” más videos sobre TDD, en mi delicious:

http://delicious.com/ajlopez/tdd+video

Los enlaces que colecciono sobre TDD:

http://delicious.com/ajlopez/tdd

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10549, 11699, 12538, 3463, 8115. Bookmark the permalink.

4 Responses to Ejemplo de TDD con Python

  1. Muy buen post! Hace un tiempo en Making Good Software leí un post interesante al respecto, donde se habla de la confusión entre TDD y las metodologías “test first”:

    http://www.makinggoodsoftware.com/2009/11/21/tdd-is-not-about-testing/

    Saludos!

  2. Manu says:

    Muy buen artículo. De hecho gracias a este post empecé a leer sobre TDD. Un detalle, el helper que usa en python se llama pytddmon.
    Buscando pytddemon como pusiste no se encuentra nada! Así que porahí convenga corregirlo

    gracias de nuevo!
    Manuel

  3. Manu says:

    usé este post de resource para una presentación que tengo que dar, así que te comento :)
    gracias!

    http://docs.google.com/present/edit?id=0AVEQzbr57LosZGdibmJ2aG5fMTI3ZG1tZm10Z3c&hl=en

  4. Hugo says:

    Sumamente interesantes los videos y el artículo en general.

    Les comparto un enlace con material adicional relacionado con el tema.

    http://camello.hourb.com/desarrollo-guiado-por-pruebas-en-python/

    Saludos!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>