Skip to content

glo2003/UTournament

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atelier sur la hiérarchie de tests logiciels et l'intégration continue avec UTournament

Cet atelier est une initiation aux bonnes pratiques des principaux tests logiciels à l'aide de la base de code UTournament. Cette base de code est une interface de programmation (API) pour la gestion de tournois. Programmée avec le framework Spark en Java, cette API permet de créer un tournoi à partir d'une liste de participants, de gérer la progression d'un tournoi et de supprimer un tournoi. UTournament contient des tests des 4 principales catégories de tests logiciels: unitaire, intégration, système (ou bout-en-bout) et acceptation.

Les tests des trois premières catégories sont programmés en utilisant le framework JUnit alors que les tests d'acceptation sont programmés avec l'outil Cucumber. Chaque catégorie de tests a sa portée spécifique (nombre de composantes vérifiées par le test). Les tests d'acceptation ont la particularité de valider une exigence du point de vue du client/utilisateur. Certains tests de UTournament utilisent aussi la bonne pratique de mocking où des doubles d'objet sont intégrés aux tests plutôt que des objets véritables. Le framework de tests Mockito est utilisé pour le mocking dans UTournament. Cette façon de faire permet d'isoler les composantes testées du reste du logiciel. Ainsi, les tests sont plus simples et investiguer les raisons de l'échec d'un test est plus facile, permettant de régler le bogue logiciel plus rapidement.

Pour réaliser cet atelier, voici la démarche suggérée (un premier bloc porte sur les tests, un deuxième bloc porte sur l'intégration continue):

  1. Clonez la base de code dans votre environnement de programmation, par exemple IntelliJ ou VSCode. Une fois le code obtenu, exécutez la commande d'exécution JUnit Test ou Maven Test. Ceci lancera l'exécution des 61 tests de la base de code qui devraient tous réussir.
  2. Consultez les diapositives du matériel d'accompagnement de l'atelier. On y détaille des informations sur la hiérarchie de tests. En parallèle, explorez la base de code. Repérez les différents tests et familiarisez-vous avec la structure du code.
  3. Portez une attention particulière au nommage des tests de la base de code ainsi qu'à leur structure, qui respecte la bonne pratique des 3A (arrange, act et assert). Cette façon d'écrire les tests en simplifie grandement la lecture et la réécriture au besoin. Tout comme le code, les tests doivent respecter les principes du Clean code. Vous trouverez des commentaires explicatifs, comme les sections arrange, act, assert. De tels commentaires sont là à titre pédagogique. On ne doit pas en trouver dans votre code.
  4. Pour les tests d'acceptation, consultez le fichier feature qui décrit les tests avec le langage gherkin, ainsi que le fichier de code d'intégration qui constitue le glue code qui permet d'exécuter les tests d'acceptation.
  5. Pour valider vos apprentissages, essayez d'écrire vos propres tests dans la base de code.

La pratique d'intégration continue est une automatisation des étapes d'intégration du code pour créer une version opérationnelle du logiciel ainsi que l'exécution automatisée des tests de la base de code. Cette bonne pratique augmente la fréquence à laquelle les tests sont exécutés dans un projet et permet de ne pas inclure du code qui fait échouer les tests. Le code gagne en stabilité. De plus, l'intégration de nouveau code n'est plus une activité qui peut générer de nombreux bogues et retarder significativement un projet. L'intégration continue ajoute donc une boucle de rétroaction dans un projet puisque les développeurs savent rapidement si leur code est de qualité. D'autres outils peuvent être ajoutés à la boucle de rétroaction d'intégration continue, comme des outils de vérification de formatage (linting).

  1. Configurez l'intégration continue pour la base de code de UTournament. Vous pouvez le faire localement à l'aide de githooks. Ainsi, chaque enregistrement de code (commit) initiera automatiquement l'exécution des tests. Vous pouvez aussi configurer un flux d'intégration continue en utilisant les Github actions. Pour ce faire, vous devez créer votre propre dépôt Github avec la base de code de UTournament. Dans ce dépôt, vous devez ensuite ajouter une fichier de format yml dans le répertoire .github/workflows/. Veuillez consulter ces instructions pour générer et tester du code Java dans un flux d'intégration de code Java avec Maven. Github pourra vous proposer un fichier yml déjà configuré pour cette tâche.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published