La plupart des développeurs de logiciels sont d'accord sur le fait que vous ne devez pas vous fier au code pour fonctionner correctement, sauf si vous le testez. Si vous ne le testez pas, il peut y avoir des bogues cachés qui ne feront que vous obliger à travailler plus sur la route.
Je comprends comment tester mon code normal, mais comment dois-je tester mon code de test pour m'assurer qu'il peut effectivement détecter et signaler des erreurs lorsqu'elles sont présentes? Personnellement, j'ai été assez stupide pour écrire des cas de test erronés qui passeraient alors qu'ils n'auraient pas dû, ce qui a déjoué le but de mes tests de rédaction. Heureusement, j'ai trouvé et corrigé les erreurs dans le temps, mais selon le mantra des tests, il semble qu'aucune suite de tests ne serait complète sans avoir son propre ensemble de tests pour s'assurer que cela fonctionne.
Il me semble que la meilleure façon de le faire serait de m'assurer que le test échoue pour le code bogué. * Si je passe alternativement 2 minutes à ajouter des bogues au code et à m'assurer qu'il échoue, je devrais avoir un degré de confiance acceptable que les tests «fonctionnent». Cela m'amène à ma deuxième question: quels sont les bons moyens d'introduire des bogues pour s'assurer qu'ils sont détectés par les cas de test? Si je commente simplement des instructions au hasard, assurez-vous que la mauvaise branche d'un if-else
est exécutée en annulant sa condition et modifiez l'ordre d'exécution du code avec des effets secondaires, etc., jusqu'à ce que je sois convaincu que mes tests attraperont le plusbugs communs? Comment les développeurs professionnels valident-ils que leurs tests font réellement ce qu'ils sont censés faire? Supposent-ils simplement que les tests fonctionnent, ou prennent-ils aussi le temps de les tester? Si oui, comment testent-ils les tests?
Je ne suggère pas aux gens de passer autant de temps à tester leurs tests, puis à tester les tests pour leurs tests qu'ils n'écrivent jamais réellement le vrai code, mais j'ai fait suffisamment de choses stupides pour que je pense pouvoir en bénéficier un peu. de «méta-tests», et était curieux de savoir la meilleure façon de procéder. :RÉ
* Je pourrais vérifier si le test réussit lors du test de code `` sans bogue '', mais utiliser le code comme spécification pour le test semble assez à l'envers ...