JUnit: Résumé du chapitre 2

Cet article est un résumé du chapitre 2 du livre JUnit, mise en oeuvre pour automatiser les tests en Java, écrit par Benoît Ganthaume et publié aux éditions ENI.

                              

Le point de départ de la création d’un logiciel est l’identification du besoin client (comprendre ici l’utilisateur et non l’acheteur), le résultat final est le produit. Les 5 phases du développement comportant inévitablement des erreurs émanant des différents acteurs impliqués, le test répond à un double objectif : ne pas les reproduire et valider chaque étape de production. Il donne un feedback sur la qualité via une boucle de rétroaction.

Le concept de qualité est influencé par notre perception, ses critères varient en fonction du point de vue de chaque acteur (client, direction, équipe de développement). La notion de logiciel « juste assez bon » implique des compromis entre les parties du projet, ainsi qu’une gestion des risques orientée client : les défauts l’impactant fortement sont à corriger en priorité.

Les tests manuels nécessitent une personne pour exécuter et contrôler le comportement de l’application. Leur suivi permet d’établir des indicateurs de qualités. Leurs avantages sont la mise en situation réelle, la validation in situ, le faible coût de mise en place et la flexibilité inhérente au facteur humain. A contrario, certaines erreurs sont difficiles à valider, leurs exécutions sont couteuses et les résultats nécessitent du temps. Enfin, le contrôle humain engendre des risques d’erreurs.

Les tests automatiques sont gérés par un programme qui les exécute automatiquement ou sur demande. L’automatisation relève de l’intégration continue, et génère des rapports de tests automatiques.  Couteux à mettre en place, moins souples que les tests manuels, leurs coûts et délais d’exécution restent faibles, constants et réguliers, facilitant leurs réexécution.

Le choix entre ces types de tests implique un équilibre en fonction du contexte de l’application et de sa complexité.

L’automatisation accentue la vélocité du développement, l’équipe garde une vision continue de l’impact de son travail. Le retour sur investissement est élevé, les couts et les temps de correction sont réduits. C’est un facteur clef de compétitivité s’ils sont entretenus et améliorés en permanence.

Les tests automatiques doivent êtres rapides, indépendants les uns des autres, répétables, auto-validant, et écrit avant le code.

Leave a Reply

Your email address will not be published. Required fields are marked *