Test unitaire succinct Pourquoi le test unitaire?

Ceci est un extrait de l'eBook Unit Testing Succinctly de Marc Clifton, gracieusement fourni par Syncfusion..

La méthodologie habituelle utilisée par les logiciels est la suivante: elle améliore la convivialité et la qualité, réduit le temps de développement et de test, et met le produit sur le marché plus rapidement et avec moins de bugs. Ce sont des objectifs ambitieux, mais je n'ai pas encore vu de méthodologie permettant de fournir le Graal du développement logiciel.

En fin de compte, la première raison d'écrire des tests unitaires est de prouver l'exactitude, et cela ne se produit que si vous écrivez des tests unitaires. bien. Les tests unitaires à eux seuls n'amélioreront pas directement la convivialité ou la qualité de votre produit. Vous pouvez toujours gâcher l'application, qu'elle soit prouvée correcte ou non, et il n'est certainement pas garanti de réduire le temps de développement et de test (voir plus tard) et de mettre votre produit sur le marché plus rapidement..

Soyons clairs et concrets dès le départ: les tests unitaires peuvent être utilisés pour vérifier l’exactitude, et effet secondaire cela se produit en ce qui concerne votre processus de développement doit être équilibré avec l'effort d'écrire et de maintenir des tests unitaires utiles.


Mesurer l'exactitude

Des tests unitaires bien écrits vous donneront une mesurable degré de confiance que la myriade de méthodes constituant votre application se comportera correctement. Le moyen le plus simple de réaliser objectivement cette mesure est un test de couverture: quel pourcentage des méthodes de votre application utilise-t-il des tests unitaires? Bien que cette question n’indique pas directement si une méthode doit être considérée comme une unité (voir plus loin), ou si les tests ont un sens, c’est quand même une mesure que vous pouvez prendre à tout moment et qui peut être utilisée comme référence pour l’exactitude ton application.

Le test unitaire est un processus itératif - il y aura toujours des bugs qui ne seront pas détectés lors du test unitaire. Toutefois, le nombre de bogues signalés au fil du temps et le nombre de problèmes non résolus par rapport aux problèmes résolus fournissent des informations utiles sur la santé de votre application. Bien qu'il soit impossible de dire: «Avec le test unitaire, le nombre de bogues a été réduit de 50%», il est possible de mesurer le nombre de bogues dans votre application en raison d'une couverture de test unitaire incomplète. Lorsque vous écrivez des tests unitaires pour vérifier le problème et le correctif, vous pouvez également mesurer le nombre de tests unitaires que vous avez écrits par rapport aux bogues signalés par rapport au nombre total de tests unitaires..

Tous ces points de repère apportent une certaine objectivité à votre processus de développement. Par conséquent, l'un des avantages des tests unitaires est qu'ils fournissent à tous, des développeurs aux responsables, des informations objectives pouvant être intégrées au processus de développement afin d'améliorer ce processus..


Répétition, répétition, répétition

Un autre avantage est la répétabilité, également appelée test de régression. À mesure que l’application mûrit, nous voulons nous assurer que les, travail le code n'est pas cassé. En écrivant des tests unitaires contre des méthodes telles qu'elles sont écrites et en ajoutant des tests unitaires pour les bogues au fur et à mesure qu'ils sont signalés, ils peuvent tous être automatiquement réanalysés lorsqu'un nouveau code est ajouté ou que du code existant est modifié. Les tests unitaires deviennent un outil de réduction de temps considérable lorsqu'il s'agit de vérifier si une application se comporte toujours correctement après un changement de code mineur ou significatif. Bien que les tests unitaires ne remplacent pas les tests de convivialité, de performance, de charge, etc., ils permettent de réduire le temps perdu à la question commune: «Cela fonctionnait auparavant; pourquoi ne le fait-il pas maintenant?


Couverture de code

Il est facile de vérifier qu'une méthode fonctionne correctement lorsque tous les processus de la méthode s'exécutent de manière linéaire. Cependant, une fois que vous ajoutez un si déclaration ou un commutateur déclaration, vous créez complexité cyclomatique, C'est une façon élégante de dire que votre code a maintenant plusieurs chemins d'exécution. Les tests unitaires les plus utiles sont ceux qui testent chaque branche de code cela se produit dans votre méthode. Écrire ces types de tests unitaires peut être fastidieux, mais en vaut la peine, car ils garantissent au moins que chaque branche de code a été exécutée, ce qui n'est pas le cas lors des tests d'acceptation, des tests d'utilisabilité ou autres tests d'assurance qualité. département (si vous en avez un) effectue.

Tout au long de cette série, nous allons examiner différentes stratégies et astuces pour réaliser des tests unitaires efficaces..