Créer une équipe de test : pourquoi c'est important ?

Vous n’avez pas d’équipe de test sur votre projet ? Vous voulez savoir en quoi ça consiste ? Je vais vous donner de bonnes raisons de vouloir en créer une !

Le test logiciel/QA (Assurance Qualité) : qu’est-ce que c’est ?

Le test logiciel est une procédure de vérification d’une application. L’objectif est de détecter tous les comportements anormaux de cette application et de vérifier la conformité entre les exigences exprimées par le client et l’application livrée.

Afin de détecter ces comportements, des tests sont mis en place à différents niveaux. Par exemple, on peut tester un module de connexion seul (tests d’intégration) puis tester le module de connexion une fois implémenté sur un site internet (tests système). Il existe également de nombreux types de test afin de détecter ces anomalies. Sans être trop technique, nous pouvons parler de tests boite blanche (ce qui signifie : tester en ayant connaissance du code, de l’architecture de l’application et du traitement des données qui doit être fait) ou de tests boite noire (cette fois nous savons juste ce que nous devons obtenir, sans savoir comment ça fonctionne dans le code).

Il existe également les tests fonctionnels (qui servent à tester les fonctionnalités devant être réalisées par le système) et des tests non-fonctionnels (tests de performance, tests de charge, tests de stress, tests d’endurance).

On peut également parler de tests liés au changement (test de confirmation, test de non-régression)

Il existe encore plein d’autres techniques que vous aurez l’occasion de découvrir plus en détail dans un prochain article.

Ces procédures et ces techniques de test sont définies par le GASQ. C’est un organisme mondial qui délivre une certification appelée ISTQB (International Software Testing Qualifications Board). Cette certification permet d’établir les bonnes pratiques du test et de définir des normes internationales. D’ailleurs, sachez que chez Attineos, les collaborateurs testeurs/QA ont l’opportunité d’accéder à ces formations !

Exemple de cas de test sur Squash TM

Tester, à quoi ça sert ?

Le test permet de s’assurer que l’application souhaitée répond aux exigences du client. Il s’applique à différents niveaux. Une partie des tests sont effectués par les développeurs (tests unitaires ou tests de composants) mais la majeure partie du travail est réalisée par une équipe dédiée.

Les différents niveaux de test (intégration, système et acceptance) permettent de couvrir le cycle de vie entier d’une application et de s’assurer de la conformité entre les exigences exprimées par le client et l’application livrée. Les tests d'acceptance sont effectués par les utilisateurs finaux, afin de savoir si l'application répond bien à leurs demandes initiales.

Comment ça marche ?

Le travail des testeurs commence dès que les exigences sont rédigées et définitives. Il ne faut pas attendre que le développement soit terminé pour commencer le travail de test.

Dès que les exigences sont exprimées, il est possible d’en ressortir des cas de test et « user stories ». Une « user story » est généralement composée d’une seule phrase exprimant un besoin et la raison de ce besoin (ex : En tant que [qui], je veux [quoi], afin de [pourquoi]). Ces cas de test et/ou « user stories » sont répertoriés dans des matrices qui permettent de tracer tous les tests réalisés et d’avoir des indications sur le niveau de criticité d’une tâche (s’il y a beaucoup d’erreurs, ces tâches peuvent être sensibles à la régression par exemple).

Ces matrices peuvent être préparées et remplies au moyen d’outils de test management. Ces outils permettent d’avoir un suivi des exécutions et des tableaux de bord afin d’avoir un statut sur l’avancée des tests et sur le travail effectué.

D’autre part, les tests de non-régression (vérifier qu’une modification n’impacte pas le fonctionnement précédent) peuvent être gérés par des tests automatisés.

La stratégie de tests automatisés doit être choisie minutieusement afin de ne pas transformer un probable gain de temps en une perte de temps.

Katalon

Quels avantages à avoir une équipe de testeurs ?

Dans le cadre de nos projets chez Attineos, nous avons déjà plusieurs équipes de test positionnées sur le centre de services ou en régie chez nos clients. Si vous souhaitez intégrer du test dans vos projets, sachez qu’il est possible de créer des dispositifs de test dans des équipes déjà existantes.

Avoir une équipe de test au sein de son projet a plusieurs avantages. Le premier permet de libérer du temps aux développeurs qui sont déchargés du travail de test et peuvent se concentrer sur la maintenabilité de leur code ou sur les nouveaux développements.

Le second avantage se traduit, sur le long terme, par un gain d’argent. En effet, détecter les bugs en amont, grâce à une équipe spécialisée et dédiée à cela, permet d’améliorer la qualité du projet, de rassurer les développeurs (qui savent que si un bug leur échappe, les testeurs vont le détecter), d’éviter un grand nombre de bugs de production et par conséquent, éviter une perte financière (voire une baisse de réputation).

Enfin, avoir une équipe dédiée au test permet également d’avoir une certaine traçabilité des bugs apparus et des tests effectués. Savoir qu’une fonctionnalité a été testée de nombreuses fois parce qu’on a trouvé plusieurs bugs peut mettre en lumière le risque de régression de cette fonctionnalité. Ceci peut favoriser, par exemple, la mise en place de tests basés sur les risques afin de s’assurer au maximum que cette tâche est correctement développée.

Exemple de tableau de bord que propose un outil de test management (Squash TM)

En conclusion, on peut dire que, d'une manière générale, avoir une équipe de testeur impliquée dans son projet permet de s'assurer une bonne qualité du produit, une meilleure traçabilité et une bonne répartition des rôles entre les différents participants au projet.

Vous voyez, je vous avais dit que je vous donnerai envie de créer une équipe de test !

Julien Da Silva