Las pruebas no aseguran la corrección de nuestro programa. Las pruebas descubren errores. Una prueba tiene éxito cuando falla y demuestra la presencia de un error.
En palabras de Bruce Eckel (Thinking in Java):
You can write all the prose, or create all the diagrams you want, describing how a class should behave and what it looks like, but nothing is as real as a set of tests. The former is a wish list, but the tests are a contract that is enforced by the compiler and the running program. It's hard to imagine a more concrete description of a class than the tests
Cuando escriba las pruebas invierta su escala de valores: Alégrese cuando una prueba descubre un error. Es peor que el error esté ahí y no sea descubierto.
Casiano Rodríguez León