Si no tiene pruebas, ¿cómo sabe que funciona su código?
Editar: la afirmación de que las pruebas no pueden probar que el código funciona no define un término crucial, a saber, funciona . ¿Qué significa que un programa funcione? Si mantiene este término vago, entonces no hay forma de probar o asegurarse de que algún programa funcione. Siempre.
Por otro lado, puede definir trabajos como "comportamientos según una especificación". Ahora no solo puede usar pruebas para mostrar que el código funciona, sino que las pruebas mismas pueden servir como una especificación ejecutable del comportamiento de su código. En otras palabras, un conjunto de pruebas bien escrito define lo que funciona significa.
Esta forma de pensar también te obliga a volver a examinar el significado de un error . Si su código pasa todas las pruebas, entonces no hay errores en el código. Si, a pesar de eso, el sistema no se comporta como debería, entonces su comportamiento no se especifica correctamente. I. e. El error está en la especificación, definida por las pruebas.
Este enfoque para el desarrollo de software desacopla la especificación funcional de un sistema desde su implementación, lo que, según todos los libros de ingeniería de software del mundo, es algo muy bueno. Al mismo tiempo, este enfoque garantiza que su implementación siempre corresponda a la especificación funcional.