Pourquoi investir dans les tests unitaires … s’il y a des tests systèmes?

C’est la rentrée … fini les vacances il est temps de reprendre ce blog!Pour remettre les choses en place au boulot une petite formation sur les techniques de test et en passant un rappel sur les tests unitaires les tests systèmes:

  • un test unitaire permet de tester le code, un test système les fonctionnalités offertes.
  • un test unitaire se fait  sur un environnement « mocké » généralement et un test système sur un environnement proche de la production.

Ceci étant dit quelqu’un me demande et pourquoi ne pas investir principalement sur les tests systèmes plutôt que de développer pléthore de tests unitaires qui prennent du temps. L’idée proposée n’est pas de supprimer les tests unitaires mais de les limiter …Voici ma réponse:

  1. l’absence de tests unitaires pénalise les activités de tests d’intégration et de tests systèmes. Le testeur passera son temps à « debugger », faire des aller retours avec le développeur, faire générer des versions plus adéquates et le temps perdu grèvera les tests systèmes de haut niveau (cas d’utilisation, robustesse, scénario complexe). Le « debug » de code est plus rapide lors des tests unitaires en phase de développement. Pour un cycle en V, on court à la catastrophe car le volume de code livré à la validation transformera la phase des tests systèmes en un parcours du combattant pour debugger et mettre au point l’application. De plus les testeurs seront démotivés et fatigués.
  2. Une couverture de code élevée permet d’améliorer la stabilité et la maturité du logiciel. En effet il est illusoire de penser que le test d’endurance ou de robustesse à lui seul va garantir ces caractéristiques. La combinatoire est souvent trop importante pour espérer être exhaustif dans ce domaine. Mais un code testé unitairement permet de contrôler par exemple les exceptions, toutes les branches etc. et donc moins de mauvaises surprises.
  3. Les tests unitaires permettent également de modifier le code de façon sereine en particulier lors de correction d’anomalies et lors la maintenance corrective et évolutive.

Comments are closed.