2009-05-16 15 views
5

Mi lugar de trabajo se compone de muchos codificadores de vaqueros. Muchos de ellos son junior. Lo cual, casualmente, contribuye a muchos problemas de calidad del código.Presentamos Test Driven Development en PHP

Busco sugerencias sobre cómo disminuir mejor a mi equipo en el uso de TDD (podemos comenzar con pruebas unitarias, y pasar a las pruebas de regresión y pruebas posteriores más automatizada).

En última instancia, quiero que aprendamos más rápidamente de nuestros errores, y producir mejor código y se reproducen mejores desarrolladores.

Estoy esperando que hay algunas sugerencias prácticas sobre cómo introducir TDD a un equipo. Específicamente, qué herramientas son las mejores para elegir en la pila LAMP (php).

Disculpe si esta pregunta es demasiado abierta.

Respuesta

3

Después de pasar por este proceso cuatro veces, he encontrado que la eventual introducción de TDD fallará sin un cierto nivel de cumplimiento. Los programadores no quieren cambiar de estilo y no escribirán su primera prueba unitaria y repentinamente verán la luz.

Puede aplicar en un nivel de gestión, pero esto requiere mucho tiempo para todos los involucrados. Algún nivel de esto es necesario al principio de todos modos, pero en última instancia necesitarás una aplicación automática.La respuesta a esto es introducir la integración continua.

He encontrado que un servidor CI es la clave definitiva para cualquier entorno TDD. A menos que los desarrolladores sepan que algo malo sucederá si no escriben las pruebas, siempre habrá vaqueros que sientan que están por debajo de ellos.

0

En cuanto a la pregunta del equipo, así como las ideas universales sobre el desarrollo y las pruebas de software, sugeriría el sitio web y los libros de Joel Spolski: http://joelonsoftware.com/ Obtuve muchas opiniones suyas.

0

SimpleTest - excelente documentación y explicaciones de las pruebas para php

0

Otra forma de iniciar TDD es tratar de utilizar framework PHP. Sin marco, es difícil implementar la prueba unitaria de manera efectiva.

+0

No te sigo? – troelskn

2

pruebas de escritura Hacer fácil y los resultados visibles .

  • Use un TestFramework con buena documentación. como SimpleTest
  • Si la prueba depende del contenido de la base de datos, cree una base de datos de referencia que se descartará y creará al comienzo de una secuencia de comandos.
  • Haga un script que ejecute todas las pruebas y muestre los resultados en un monitor independiente o algo que haga que la prueba sea visible/de fácil acceso. (Ejecutar un símbolo del sistema no es una opción)

Personalmente, no escribo la prueba para cada fragmento de código en la aplicación.
Enfóquese en los objetos de dominio de la aplicación. En mi caso se trata de "precio-cálculo" y "inventario" cambios

Recuérdales que están probablemente ya escribir las pruebas, sino que borrar su trabajo después de crear. Ejemplo: Durante el desarrollo de una función, tendrá una página/testcript con un eco o var_dump() el resultado. Después de una validación manual del resultado, modificará los parámetros de la función y volverá a verificar.

Con un poco de esfuerzo adicional estas pruebas podrían automatizarse en un UnitTest. ¿Y a qué programador no le gusta automatizar cosas?

+0

gracias NebyGemini – chadl

Cuestiones relacionadas