Si vous n'avez pas de tests, comment savez-vous que votre code fonctionne?
Edit: l'affirmation selon laquelle les tests ne peuvent pas prouver que le code fonctionne ne définit pas un terme crucial, à savoir les travaux . Qu'est-ce que cela signifie pour un programme de fonctionner? Si vous gardez ce terme vague, il n'y a aucun moyen de prouver ou d'être sûr que n'importe quel programme fonctionne. Déjà.
D'autre part, vous pouvez définir les œuvres comme "se comporte selon une spécification". Maintenant, vous pouvez non seulement utiliser des tests pour montrer que le code fonctionne, mais les tests eux-mêmes peuvent servir de spécification exécutable du comportement de votre code. En d'autres termes, une suite de tests bien écrite définit ce qui fonctionne .
Cette façon de penser vous oblige également à réexaminer la signification d'un bug . Si votre code passe tous les tests, il n'y a pas de bogues dans le code. Si, malgré cela, le système ne se comporte pas comme il se doit, alors son comportement n'est pas correctement spécifié. C'est à dire. le bug est dans la spécification, définie par des tests.
Cette approche du développement logiciel dissocie la spécification fonctionnelle d'un système de sa mise en œuvre, ce qui, selon tous les livres de génie logiciel dans le monde, est une très bonne chose. Dans le même temps, cette approche garantit que votre implémentation correspond toujours à la spécification fonctionnelle.