Tuesday, December 1, 2015

Résumé de l'activité Formation TDD

Le 25 novembre 2015, il y a eu  l'activité  «TDD (Test Driven Development)» ou plus précisément «Les bases de DGT (Développement Guidé par les Tests)».  L'activité a été réalisée dans les locaux de SherWeb.

Le but principal de l'activité fut de présenter, le plus simplement possible, comment effectuer un Développement Guidé par les Tests.

La présentation a été subdivisée en 6 sections :

1. Activité 1. La qualité dans un développement logiciel.

2. Définition de DGT.

3. DGT et l'eXtreme Programming.

4. Activité 2 L'application de DGT

5. Activité 3 Rétroaction sur DGT

6 Une Conclusion

Dans l'activité 1, nous avons constaté que tous les participants font face à des bogues. Ceci ne fut pas une surprise, mais soulève une question: comment éviter les bogues ? Cette question resta pratiquement sans réponse, mais quelques-uns ont répondu timidement «Avec les tests».

Nous avons poursuivi la présentation par l'énoncé de la "définition classique de DGT", qui fut présentée selon le cycle suivant :

1. Rouge: Écriture d'un test qui échoue.

2. Vert: Écriture d'un code afin que le test passe.

3. Réusinage: Remanier le code afin qu'il soit de qualité sans briser les tests.

Cette étape nous a permis d'établir un lexique commun et faciliter la compréhension des points subséquents de la présentation.  Par la suite, nous avons discuté de XP (eXtreme Programming) qui a permis l'introduction du DGT, ainsi qu'énoncé que l'instigateur du DGT a également participé à la création du manifeste Agile.

L'activité 2 était le cœur de la présentation. La première question qui se pose est de savoir par où commencer pour appliquer le DGT? Puis comme pour tout développement logiciel, répondre aux questions: quoi faire? et comment le faire?

D'abord, une phase d'analyse (rapide) est nécessaire pour trouver les classes et leurs responsabilités requises. Ensuite, on applique le DGT.

Nous avons présenté un exemple très simple en utilisant une classe Contact, contenant les informations d'une personne, et une autre classe nommée Contacts, servant à la gestion d'une liste de contacts.

Nous avons débuté par une revue des premières étapes de création d'un projet Java en Eclipse (ajout de packages et classes). Puis poursuivi par l'intégration d'une classe de tests pour chaque classe de développements. Une classe TestExemple a été ajoutée au projet pour introduire les asserts : assertEquals, assertFalse et assertTrue (qui sont des méthodes de l'API  JUnit). Tel que stipulé dans le cycle de DGT, nous avons commencé par l'implémentation de tests qui échouent,  pour passer ensuite à la correction des assertions afin que les tests passent. 

L'exécution de tests avec Eclipse et JUnit a été illustrée, en démontrant comment faire passer la barre rouge (échec des tests), à la barre verte (réussite des tests). Ce qui consiste à présenter la mécanique de base pour effectuer un test et la démarche à suivre afin qu'il passe.


Nous avons poursuivi par un aperçu de la couverture des tests avec l'outil EclEmma, soit: comment le lancer, comment obtenir le pourcentage de couverture et comment interpréter la couverture des chemins d'exécution.

Ensuite, de façon interactive, nous avons débuté l'écriture de tests dans la classe TestContact, afin de vérifier le bon fonctionnement du constructeur de la classe Contact. Pour ensuite, programmer le constructeur de la classe afin que les tests passent.


Enfin, nous avons réalisé l'activité 3, qui fut de lancer une discussion sur les trois points suivants :

1. Quelle est votre réaction sur DGT (TDD)?

2. Restera-t-il des bogues si DGT (TDD) est appliqué aux développements?

3. Y aurait-il des obstacles à prévoir si le DGT (TDD) était à implanter dans votre équipe?


Pour conclure, la présentation sur le DGT se termina par l'énoncé des points suivants  :

1. Le plus difficile est de commencer.

2. Il faut le pratiquer pour se convertir.

3. La pratique va augmenter la qualité des logiciels.

Merci à tous pour votre participation active et contribution à la communauté Agile de Sherbrooke!

Ruben Gonzalez-Rubio et Eugène Morin
G enie electrique et g enie informatique
Groupe Xit
Université de Sherbrooke
ruben.gonzalez-rubio@usherbrooke.ca
eugene.morin@usherbrooke.ca

No comments:

Post a Comment