¿Por qué debería practicar el desarrollo basado en pruebas y cómo debería empezar?

StackOverflow https://stackoverflow.com/questions/4303

  •  08-06-2019
  •  | 
  •  

Pregunta

Mucha gente habla de escribir pruebas para su código antes de comenzar a escribirlo.Esta práctica se conoce generalmente como Test Driven Development o TDD para abreviar.¿Qué beneficios obtengo al escribir software de esta manera?¿Cómo empiezo con esta práctica?

¿Fue útil?

Solución

Hay muchos beneficios:

  • Obtienes comentarios inmediatos sobre si tu código está funcionando, para que puedas encontrar errores más rápido.
  • Al ver que la prueba pasa de rojo a verde, sabrá que tiene una prueba de regresión funcional y un código funcional.
  • Obtiene confianza para refactorizar el código existente, lo que significa que puede limpiar el código sin preocuparse de lo que pueda romperse.
  • Al final, tiene un conjunto de pruebas de regresión que se pueden ejecutar durante las compilaciones automatizadas para brindarle una mayor confianza en que su base de código es sólida.

La mejor manera de empezar es simplemente empezar.Hay un gran libro de kent beck todo sobre desarrollo basado en pruebas.Simplemente comience con el código nuevo, no se preocupe por el código antiguo...Siempre que sienta que necesita refactorizar algún código, escriba una prueba para la funcionalidad existente, luego refactorícela y asegúrese de que las pruebas permanezcan verdes.Además, lea este gran artículo.

Otros consejos

La parte de beneficios tiene recientemente ha sido cubierto, en cuanto a por dónde empezar... en un sistema de pequeña empresa donde no hay demasiadas incógnitas, por lo que los riesgos son bajos.Si aún no conoce un marco de prueba (como NUnit), comience por aprenderlo.De lo contrario, comience escribiendo su primera prueba :)

Beneficios

  1. Descubres cómo compartimentar tu código.
  2. Descubres exactamente qué quieres que haga tu código
  3. Ya sabes cómo se supone que debe actuar y, en el futuro, si la refactorización rompe algo
  4. Te acostumbra a asegurarte de que tu código siempre sepa lo que se supone que debe hacer.

Empezando

Hazlo.Escriba un caso de prueba para lo que desea hacer y luego escriba el código que debería pasar la prueba.Si pasas la prueba, genial, puedes pasar a escribir casos en los que tu código siempre fallará (2+2 no debe ser igual a 5, por ejemplo).

Una vez que pasen todas las pruebas, escriba su lógica empresarial real para hacer lo que quiera.

Si está empezando desde cero, asegúrese de encontrar un buen conjunto de pruebas que sea fácil de usar.Me gusta PHP, por lo que PHPUnit o SimpleTest funcionan bien.Casi todos los lenguajes populares tienen algún conjunto de pruebas xUnit disponible para ayudar a crear y automatizar las pruebas.

En mi opinión, lo mejor es que te permite ver claramente si tu código hace lo que se supone que debe hacer.Esto puede parecer obvio, pero es muy fácil desviarse de tus objetivos originales, como descubrí en el pasado :p

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