Une application vient à changer un bon nombre de fois que ce soit pendant son développement que pendant son maintien. Et une petite modification de celle-ci peut avoir d’énormes conséquences. C’est pour cela qu’on a besoin de tests et d’autant plus de tests automatiques.
Non-régression du code
Les tests automatiques ont pour but de s’assurer que notre application fonctionne bien même lorsque l’on ajoute de nouvelles fonctionnalités. En effet, comme nos tests vont se lancer automatiquement, on va pouvoir directement détecter s’il y a un problème. Cela permet de voir si ce que l’on vient d’ajouter n’a pas d’impact sur ce que l’on avait avant.
Gain de temps
Le but des tests automatiques et de reproduire les tests qu’un humain fait pour vérifier que son application fonctionne. Or, la machine est plus rapide que l’homme. Donc le fait d’automatiser ces tests nous fait gagner un temps considérable.
Même si la conception de ces tests peut parfois être longue, il est toujours préférable de les faire. Car plus on va avoir de tests plus le temps de conception sera minime par rapport au temps d’exécution gagné.
Ces tests peuvent aussi être programmés, ce qui va nous donner une plus grande liberté pendant le développement de l’application.
Des tests de meilleure qualité
Quand on fait un test manuellement, on a toujours le risque qu’une erreur humaine vienne perturber son exécution. Donc si le test est automatisé, on réduit la marge d’erreur.
De plus, on va pouvoir multiplier les contextes des tests. On va pouvoir les exécuter avec différents jeux de données qui peuvent très bien être générés aléatoirement. Comme par exemple en PHP avec Faker.
Utilisation des tests automatiques
Ces tests automatiques vont aussi nous permettre de guider notre développement de logiciel. Notamment avec le TDD (Test Driven Developpement) où l’on va développer notre application en écrivant d’abord un test qui ne passe pas et en essayant de le faire passer. Ensuite, il existe aussi le Test First qui consiste à écrire tous nos tests avant de développer notre application.
Conclusion
Les avantages d’avoir des tests automatiques sont donc nombreux. Mais il faut aussi garder à l’esprit que tout ne peut pas être testé automatiquement comme par exemple des tests qui demande trop de dépendance de services. Il faut donc trouver un bon compromis entre les deux pour gagner un maximum d’efficacité.
Retour de ping : Agilité : la culture du changement (part 2) – Julien ANNE