Test-driven-development.com es un recurso bastante bueno.
Algunas mejores prácticas básicas . Fuente
- Separe la configuración común y la lógica de desmontaje en servicios de soporte de prueba utilizados por los casos de prueba apropiados.
- Mantenga cada oráculo de prueba enfocado solo en los resultados necesarios para validar su prueba.
- Diseñe pruebas relacionadas con el tiempo para permitir la tolerancia a la ejecución en sistemas operativos que no sean en tiempo real. La práctica común de permitir un margen de 5-10 por ciento para la ejecución tardía reduce el número potencial de falsos negativos en la ejecución de la prueba.
- Trate su código de prueba con el mismo respeto que su código de producción. También debe funcionar correctamente para casos positivos y negativos, durar mucho tiempo y ser legible y mantenible.
- Reúnase con su equipo y revise sus pruebas y prácticas de prueba para compartir técnicas efectivas y detectar malos hábitos. Puede ser útil revisar esta sección durante su discusión.
Cosas a evitar. Fuente
- Usando gsub () en R, ¿cómo deshacerse de las etiquetas HTML, por ejemplo, , en ' abc defg '?
- ¿Cuánto cuesta una aplicación web?
- ¿Me pueden aconsejar algunas guías, plataforma web para pruebas, tutoriales sobre exploits, xss, inyecciones sql (php / javascript)?
- ¿Debo aprender SpringFramework o PlayFramework?
- Desarrollé el sitio web de Preguntas y Respuestas, ¿qué debo hacer para ponerlo en línea y trabajar eficientemente como quora?
- Tener casos de prueba depende del estado del sistema manipulado de los casos de prueba ejecutados previamente.
- Dependencias entre casos de prueba. Un conjunto de pruebas donde los casos de prueba dependen unos de otros es frágil y complejo. La orden de ejecución no debe presumirse. La refactorización básica de los casos de prueba iniciales o la estructura de la UUT provoca una espiral de impactos cada vez más generalizados en las pruebas asociadas.
- Pruebas interdependientes. Las pruebas interdependientes pueden causar falsos negativos en cascada. Una falla en un caso de prueba temprano rompe un caso de prueba posterior incluso si no existe una falla real en la UUT, lo que aumenta el análisis de defectos y los esfuerzos de depuración.
- Prueba de tiempo de ejecución o comportamiento de ejecución precisa.
- Construir “oráculos que todo lo saben”. Un oráculo que inspecciona más de lo necesario es más costoso y quebradizo con el tiempo. Este error muy común es peligroso porque causa un tiempo sutil pero penetrante en todo el complejo proyecto.
- Prueba de detalles de implementación.
- Pruebas de funcionamiento lento
Trucos y recursos
- Guía para novatos sobre TDD
- Marcado de funciones para TDD
- Desarrollo basado en funciones
- Desarrollo impulsado por banderas de características