← Ir a portada

PHP o Ruby on Rails y TDD (Test Driven Development)

He aquí una discusión interesante. Hay gente que afirma que puede confiar más en los programas desarrollados en Java que en los desarrollados en PHP o RoR por el simple hecho de que el primero se compila antes de ejecutarse mientras los segundos (o cualquier otro lenguaje de scripting) no.

Siguiendo esa misma idea, los defensores de los lenguajes de scripting afirman que el uso de Test Driven Development (escribir pruebas unitarias, antes de escribir la clase que prueban) equilibra la balanza. Puesto que ahora la clave para validar nuestras aplicaciones antes de ejecutarlas no se encuentra en si compila o no, sino que se encuentra en si pasa todas las pruebas unitarias o no.

El artículo que referencio viene a decir que no se puede confiar en una aplicación que no se desarrolla mediante TDD o que, al menos, no se encuentra probada en su totalidad por pruebas unitarias.

Yo no estoy de acuerdo. Utilizo las pruebas unitarias si, pero sólo lo hago cuando quiero probar una clase en concreto, que tenga cierta complejidad. En el escenario de desarrollo en que yo me muevo la lógica de negocio no suele ser muy compleja (mucho añadir, listar, modificar, eliminar…) con lo que me centro más en dirigir mi desarrollo por las Vistas, más que por las pruebas unitarias.

¿Cuál es vuestra experiencia con las pruebas unitarias?

Apuntes relacionados:

5 Respuestas a “PHP o Ruby on Rails y TDD (Test Driven Development)”

  1. kkwete dice:

    Yo llevo trabajando con TDD y Agile Development desde hace ya casi un año. Nos lo enseño una consultora holandesa, brains4all.com. Venia de los sistemas de desarrollo de proyectos tradicional y debo decir que para mi hay un antes y un después de TDD. Independientemente del lenguaje usado, los test unitarios y las suites de los mismos dan una fiabilidad al código impresionante. Hemos mejorado los tiempos de desarrollo, despues de un año eso sí, y la calidad del código y reducido los fallos de puesta en producción a casi 0.
    Creo que decir si tal lenguaje es mejor o peor por ser compilado o de scripting o por usar TDD o no me parece absurdo. Cada lenguaje tiene sus pros y sus contras. Para cada desarrollo cada lenguaje será mejor o peor tambien dependiendo de las habilidades de los desarrolladores, las necesidades del cliente y un sin fin de “eteces”. En mi empresa trabajamos con Java, PHP y RoR y cada uno tiene su lado bueno que es que exprimimos en cada caso.
    Pero eso si ya nunca mas sin TDD.

  2. Luis Artola dice:

    Desde luego cada vez que un practicante de TDD da su opinión sobre el tema derrocha entusiasmo!!!

    Siempre que leo este tipo de comentarios me pica más y más el gusanillo para desarrollar de manera TDD … no sé si algún día me animaré… :-D

  3. daniel dice:

    Hola Luis disculpa la molestia, te escribo desde Uruguay, recien estoy empezando con Zend Framework y no entiendo bien el concepto de los plugins y helpers (cuando hay que usarlos), sabes de algun tutorial preferente en español que explique esto?
    Estuve buscando material en Google y no encontre gran cosa.

    Saludos.

  4. Luis Artola dice:

    hola daniel,

    ahora mismo la documentación en castellano es más bien poca. A parte de la documentación oficial de Zend, te recomiendo que te des un paseo por zendframework.programania.net y utilices el buscador para encontrar la información que necesitas. Si alguien ha escrito en castellano algo sobre el tema, estará allí :-D

    Un saludo!

  5. chalien dice:

    El uso de TDD o BDD son herramientas muy utiles en la programacion. crean en ti el sentido de crear test que represetan una funcion inexistente dando solemante valor a su definicion y no al contenido. Esto, deja el proceso de desarrollo de esas funciones (solo nombradas asta el momento) com un paso adicional para terminar tus tareas de testing. ademas de esto si se presenta un cambio (q es lo mas normal) solo sera modificar tu codigo y correr los testin que has creado para toda tu logia y checkear q ese cambio no dañara otras cosas

Deja un comentario