Pregunta

Mi trabajo consiste en una gran cantidad de codificadores de vaquero. Muchos de ellos son junior. Lo que contribuye casualmente a una gran cantidad de problemas de calidad de código.

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).

Lo siento si esta pregunta es demasiado abierta.

¿Fue útil?

Solución

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 el estilo y no escribir su primera prueba de la unidad y de pronto ver la luz.

Puede aplicar en un nivel de gestión, pero esto requiere mucho tiempo para todos los involucrados. Un cierto nivel de esto es necesario al comienzo de todos modos, pero en última instancia, tendrá aplicación automática. La respuesta a esto es la introducción de integración continua.

He encontrado que un servidor de CI es la clave definitiva para cualquier entorno TDD. A menos que los desarrolladores saben que algo malo va a pasar si no escriben las pruebas, que siempre tenga vaqueros que sienten que es por debajo de ellos.

Otros consejos

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

  • Use un TestFramework con una buena documentación. como SimpleTest
  • Si la prueba depende de los contenidos de bases de datos, crear una base de datos de referencia que se descartará y creó al comienzo de una secuencia de comandos.
  • Hacer un script que se ejecuta todas las pruebas y muestra los resultados en un monitor independiente o algo que le hará la prueba visible / fácilmente accesible. (Ejecución de un símbolo del sistema no es una opción)

Yo personalmente no escribo prueba para cada trozo de código en la aplicación.
Centrarse en los objetos de dominio en la aplicación. En mi caso se trata de "precio-cálculo" y "inventario cambios"

Recuerde que ellos están probablemente ya escribir las pruebas, sino que borrar su trabajo después de crear. Ejemplo: Durante el desarrollo de una función que tendrá una página / testscript con un echo o var_dump () el resultado. Después de una validación manual de los resultados podrás modificar los parámetros de la función y comprobar de nuevo.

Con un poco de esfuerzo extra estas pruebas podrían ser automatizados en un unittest. Y lo que no le gusta programador para automatizar cosas?

En cuanto a la cuestión del equipo, así como las ideas universales sobre el desarrollo de software y pruebas, sugeriría de Joel Spolski sitio web y los libros: http : //joelonsoftware.com/ tengo muchas ideas de él.

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top