Développement piloté par les tests et introduction à Cucumber

Table des matières
Développement piloté par les tests (TDD)
Le développement piloté par les tests (TDD) est une méthode de développement qui met l’accent sur l’écriture de tests avant la mise en œuvre des fonctionnalités. Il s’agit d’un processus itératif qui se concentre sur la création de tests, leur exécution, puis la mise en œuvre de la fonctionnalité de manière à ce que les tests réussissent.
Le TDD suit les étapes suivantes :
- Rédiger un test : la première étape consiste à rédiger un test qui décrit la fonctionnalité souhaitée à mettre en œuvre. Ce test devrait échouer car la fonctionnalité n’est pas encore implémentée.
- Exécuter le test : le test sera exécuté pour vérifier s’il échoue, ce qui est le résultat attendu.
- Mise en œuvre de la fonctionnalité : sur la base du test, la fonctionnalité est mise en œuvre de manière à ce que le test soit réussi. Cela signifie qu’il faut écrire un code suffisant pour répondre aux exigences du test.
- Exécuter à nouveau le test : après la mise en œuvre, le test est exécuté à nouveau. S’il réussit, cela signifie que la fonctionnalité a été mise en œuvre correctement.
- Refonte : une fois le test réussi, la refonte du code peut être effectuée. Il s’agit d’améliorer la qualité et la lisibilité du code sans affecter le bon fonctionnement des tests.
Les avantages du développement piloté par les tests sont les suivants :
- Meilleure qualité du code : La méthode TDD permet d’obtenir une bonne couverture des tests, ce qui se traduit par une meilleure qualité du code. Chaque modification du code est vérifiée par des tests, ce qui permet de s’assurer qu’elle n’entraîne pas d’effets secondaires indésirables.
- Une plus grande confiance : le TDD apporte une plus grande confiance dans l’exactitude de la fonctionnalité mise en œuvre. Si les tests réussissent, vous pouvez être sûr que le code fonctionne comme prévu.
- Retour d’information rapide : le TDD permet un retour d’information immédiat lorsque les tests réussissent ou échouent. Cela permet de détecter et de corriger rapidement les erreurs.
- Amélioration de la capacité de conception : le TDD favorise une bonne conception du code car il vous permet de réfléchir à la testabilité et à la facilité d’utilisation de votre code lorsque vous le créez.
- Documentation : les tests de la méthode TDD servent également de documentation, car ils décrivent les exigences fonctionnelles requises et les résultats escomptés.
Le développement piloté par les tests (TDD) est une méthode utile pour les développeurs car elle améliore la qualité du code, augmente la confiance dans l’exactitude de la mise en œuvre et permet un retour d’information rapide. Le TDD vous oblige à réfléchir à la testabilité et à la conception dès les premières étapes du développement, ce qui permet d’obtenir des logiciels de meilleure qualité et plus robustes.
Concombre
Cucumber est un outil de test d’acceptation open-source qui vous permet d’écrire des scénarios de test dans un langage simple et facile à comprendre appelé Gherkin. Les scripts Cucumber sont écrits dans un format facile à lire non seulement pour les développeurs, mais aussi pour d’autres personnes intéressées telles que les responsables, les testeurs ou les clients.
Cucumber soutient une approche de développement axée sur le comportement (BDD) qui met l’accent sur la communication et la collaboration entre les différents membres de l’équipe afin de parvenir à une meilleure compréhension des exigences et au bon fonctionnement du logiciel.
Les principales caractéristiques du concombre sont les suivantes
- Syntaxe Gherkin : Cucumber utilise la syntaxe Gherkin, qui est simple et facile à lire. Les scénarios sont rédigés sous la forme d’étapes, qui sont exprimées par des mots-clés tels que « donné », « quand », « alors » et autres, qui permettent de définir clairement le comportement attendu du logiciel.
- Automatisation des tests : Cucumber vous permet d’automatiser des tests écrits en syntaxe Gherkin à l’aide de langages de programmation tels que Java, Ruby, C# et autres. Cela vous permet de connecter des tests à des logiciels existants et d’automatiser leur exécution.
- Facilité de collaboration : Cucumber facilite la collaboration entre les membres d’une équipe car le langage Gherkin est compris par tous. Les scénarios peuvent être utilisés comme une représentation commune des exigences afin de s’assurer que tout le monde a la même compréhension de ce que le logiciel est censé faire.
- Rapports : Cucumber offre de nombreuses possibilités de rapports qui vous permettent de suivre et de gérer les résultats de vos tests. Vous pouvez générer des rapports clairs qui indiquent les scénarios de réussite et d’échec, ainsi que les détails de chaque étape.
Cucumber est un excellent outil pour les tests d’acceptation et soutient l’approche BDD du développement de logiciels. Son langage Gherkin, simple et clair, permet une meilleure communication entre les membres de l’équipe et une meilleure compréhension des exigences. L’automatisation des tests dans Cucumber augmente l’efficacité des tests et la génération de rapports vous permet de suivre les résultats et de gérer les scénarios de test.
Dans Cucumber, nous avons deux types de fichiers – un fichier de fonction et un fichier de définition d’étape.
Fichier de caractéristiques – Un fichier de caractéristiques définit certains comportements de l’application en texte clair. Il peut être rédigé par un responsable de l’assurance qualité, un analyste commercial, un client ou même toute partie prenante non technique. Les fichiers de fonctions de Cucumber sont écrits sous la forme Given-When-Then. Exemple d’un ensemble de fonctions :
Fonctionnalité : vérifier l’addition dans la calculatrice Google
Afin de vérifier que la calculatrice de Google fonctionne correctement
En tant qu’utilisateur de google
Je devrais pouvoir obtenir un résultat d’addition correct
Scénario : ajout
Étant donné que j’ouvre google.com
Lorsque j’ entre 2+2 dans la boîte de texte de recherche
Je devrais alors obtenir le résultat 4
Fichier de définition des étapes – Dans le fichier de définition des étapes, nous écrivons le code qui met en œuvre les étapes écrites dans les instructions Given-When-Then du fichier de fonctions. Nous pouvons utiliser différents outils et langages pour mettre en œuvre les étapes, par exemple Watir avec Ruby ou Selenium avec Java, etc.
Dans le prochain article, nous configurerons Cucumber avec Selenium en Java – Cucumber avec Selenium et écrirons un exemple de script de test qui mettra en œuvre l’ensemble des fonctionnalités de la calculatrice de Google.