Je suis en train de développer un nouveau petit projet. Je comprends l'importance de la mise en œuvre de tests automatisés pour améliorer la qualité et la maintenabilité. Mais je me demande si, dans les petites applications, les tests fonctionnels sont suffisants. Est-il vraiment nécessaire d'implémenter des tests unitaires pour toutes mes fonctions ? Les tests fonctionnels ne garantissent-ils pas la qualité des petites applications ?
Réponses
Trop de publicités?Cela dépend vraiment de la taille du projet et du nombre de "pièces mobiles" impliquées ; mais de manière générale, je dirais que les tests unitaires sont au moins aussi importants, sinon plus, que les tests fonctionnels.
J'avais l'intention de faire une analogie avec un système logiciel simple, mais je vais plutôt vous raconter une histoire qui m'est peut-être arrivée, ou peut-être pas. Il ne fait aucun doute que je vais être downvoté dans l'oubli pour cela, que puis-je dire. YOLO.
Bref, je suis en vacances, à l'hôtel, et je veux tailler ma barbe luxueuse et totalement non ironique à l'aide d'une très belle tondeuse à barbe que j'ai apportée avec moi. Sauf que la marionnette qui a conçu la salle de bains a placé la seule prise de courant du côté opposé au miroir ! Et pour ne rien arranger, la prise n'a pas la bonne forme parce que je suis dans un pays étranger bizarre où l'on roule du mauvais côté de la route...
Ne vous inquiétez pas. J'ai un adaptateur de prise de courant de voyage. Sauf que le cordon de la tondeuse ne fait qu'un mètre de long et ne traverse pas la pièce. Mais attendez ! J'ai une rallonge électrique. Maintenant, je peux me pomponner devant le miroir comme un véritable homme . **
Je branche le tout et j'appuie sur le bouton "on". La tondeuse se met à bourdonner, puis s'éteint soudainement, me laissant avec un tas de poils déséquilibrés sur le visage.
Rapidement : quel est le problème ? Est-ce le cas ?
- La prise
- Mon adaptateur de voyage
- Le fusible de la prise du trimmer
- La rallonge
- Le trimmer
- La majesté ou l'horreur de ma barbe qui fait que la tondeuse meurt au premier contact ?
Le présent c'est le problème de ne faire que des tests fonctionnels. Il est certain qu'à force de bricoler et d'intervertir, je finirai par découvrir que la débroussailleuse fonctionne bien et que c'est la rallonge qui pose problème, mais n'aurait-il pas été formidable que je puisse vérifier toutes les pièces et tous les éléments impliqués dans cette opération ? premier en les testant à l'unité, de sorte qu'avant même d'essayer d'allumer le coupe-bordures, je savais que le cordon était douteux ?
**Cette histoire est totalement fausse, je taille ma barbe avec mon rasoir. Et comment !
Les tests fonctionnels peuvent ne pas être petit/unité suffisamment pour saisir les nuances de la mise en œuvre à un niveau suffisamment profond.
S'il est vrai qu'ils couvrent suffisamment de terrain pour vous donner un sentiment de confiance décent, vous pouvez néanmoins souhaiter disposer de tests unitaires pour suivre les bogues , prévenir la régression et s'occuper des (problématiques/rares) cas limites .
En outre, je ne vois pas la nécessité d'introduire une telle distinction - fonctionnel vs unité vs intégration vs quoi d'autre. Vous voulez tests automatisés et c'est tout. Vous devrez encore les mettre en œuvre, très probablement en utilisant les mêmes outils/frameworks pour chaque type de test.