Le cycle de développement d'une application en C#, que ce soit pour du web, bureau ou encore mobile, passe par de nombreux stades. Lors de la conception, des algorithmes sont écrits et doivent être testés. Cependant, il est possible d'être très efficace à la fois pour écrire et découvrir ces algorithmes que pour tester qu'ils fonctionnent bien.
Pour atteindre cet objectif, il faut adjoindre au processus de développement une méthodologie de tests. Les tests automatisés sont codés de telle sorte qu'ils vont vérifier le fonctionnement d'un algorithme sans qu'une intervention humaine soit nécessaire. Pour qu'un test soit efficace, il est nécessaire qu'il couvre efficacement le code qu'il teste, et cela n'est possible qu'en mettant la production du test en premier lieu !
Dans ce cours, nous découvrirons les méthodologies et outils de test afin de pouvoir appliquer ces pratiques avec le langage C#. Nous commencerons par les tests unitaires, de plus bas niveau, en appliquant la méthode TDD (Test Driven Development) qui permet de découvrir l'algorithme par le biais des tests, tout en le sécurisant. Cela permettra de voir comment mettre en place des tests sur un projet et écrire plusieurs tests de façon efficace. Une fois les bases acquises, nous irons un cran plus loin en améliorant la qualité de nos tests grâce à des outils supplémentaires, permettant de simuler par exemple des ressources externes (comme une base de données) ou encore rendre un test plus "parlant". Nous utiliserons un outil pour analyser si notre couverture de tests est optimale et que nos tests sont pertinents.
Une fois les fondamentaux acquis, nous irons un cran plus loin en découvrant le principe de test d'intégration, qui vise à lancer partiellement le système pour voir s'il s'intègre correctement avec les autres éléments, comme les serveurs web ou encore les bases de données. Finalement, il sera temps de voir les tests e2e (end-to-end) permettant de lancer le système de façon globale et de simuler des interactions utilisateurs de bout en bout.
La route est longue, mais une fois les concepts acquis à la fin de ce cours, utiliser une méthodologie de test dans votre travail quotidien vous rendra plus efficace et plus serein, car le code essentiel sera garanti par des tests automatisés.