Équipe de test
Dans la plupart des organisations, les testeurs sont répartis dans plusieurs équipes et il est difficile de partager un objectif commun. Les tests diffèrent d’une équipe à l’autre et l’on obtient des spécialistes sur un seul produit, par exemple un bon testeur du produit « paye ». Il devient difficile de normaliser un processus et des pratiques de test à l’échelle de l'organisation.
La création d’une équipe de test peut résoudre grandement ces problématiques. Voyez l’équipe de test comme un centre d’excellence en la matière, qui permettra une meilleure visibilité et un partage des connaissances entre les équipes.
Ce centre d’excellence est une équipe composée d’experts qui sont chargés d’effectuer une vigie sur les dernières tendances, les technologies et outils afin de maximiser la valeur des tests logiciels au sein de l’organisation. L’équipe de test devient un service pour toute l’organisation où les ressources en test sont partagées entre les équipes de réalisation. Chaque testeur utilise le même coffre à outils pour réaliser des tests de qualité. Ce coffre contient entre autres : des processus normalisés, des outils et des guides, une infrastructure pour les tests, des gabarits de livrables réutilisables, des normes, du matériel de formation, des listes de vérification, des tableaux de bord avec leurs métriques sur la qualité des produits et la qualité des tests.
Bénéfices de l’équipe de test
Tout comme le comptable et le vérificateur comptable ou l’entrepreneur en construction et l’inspecteur en bâtiment; l’équipe de test assure une indépendance entre le réalisateur et le vérificateur. Elle sépare l’équipe qui développe un produit par rapport à celui qui vérifie le produit. Une équipe de test offre également de nombreux avantages qui contribuent à l'amélioration de la qualité des logiciels, à la réduction des coûts, et à l'optimisation des processus de développement. Voici quelques-uns des principaux avantages :
L’équipe de test permet :
- D’agir comme un centre d’innovation et de la qualité des tests.
- D’allouer, selon les projets, un bon ratio testeur vs développeur (1 testeur pour 3 développeurs)
- D’avoir, au fil du temps, des testeurs qui ont acquis des connaissances sur l’ensemble des produits de l’organisation.
- D’assurer que les phases de test ne sont pas négligées pour respecter les délais et les coûts, puisque l’équipe de test ne relève pas du chargé de projet.
- De réduire la pression qu’un chargé de projet peut exercer sur les testeurs.
- D’obliger l’équipe de projet à collaborer avec le testeur lors de l’analyse et de l’implémentation du code puisque le livrable d’analyse fonctionnelle est essentiel à l’activité de test.
- D’identifier et de corriger plus tôt dans le cycle de développement les non-conformités et anomalies en réduisant ainsi le nombre de bogues en production.
- De former les équipes sur les nouvelles technologies, techniques, processus et outils.
- D’être responsable de l’embauche et de l’intégration des testeurs en fonction des besoins de l’organisation.
- De centraliser l’automatisation des tests.
- De centraliser les connaissances, les licences, les règles de fonctionnement que l’on ne peut diffuser à tous et à chacun car une uniformité est importante dans l’automatisation.
- De partager son expertise, notamment en matière d’automatisation des tests, de performances, de sécurité et de gestion des données de test.
- De permettre la création et la maintenance d’une documentation uniforme en facilitant la réutilisation des scripts de test et des cas de test.
- De faciliter l'expérimentation avec de nouvelles méthodes et technologies pour améliorer continuellement les pratiques de test.
- De favoriser une meilleure gestion des tests inter-systèmes puisque l’équipe de test a une vue d’ensemble des produits logiciel et de leurs interrelations.
- De fournir des ressources additionnelles lorsqu’une surcharge de travail survient durant l’exécution des tests.
- D’avoir des ressources dédiées aux tests.
- De développer une expertise en test au sein de l’organisation.
Rôles et responsabilités de l’équipe de test
Gestionnaire de test (Test Manager)
Il gère l’équipe de test et les éléments pour la planification des tests :
- Gère l’aspect ressource, budget, cédule et les communications avec le client et les parties-prenantes.
- Participe aux rencontres de coordination et présente les résultats de test.
- Valide que les tests sont conçus, exécutés et documentés de façon productive.
- S’assure que les techniques de test sont établies et développées dans son équipe
- Maintient le lien avec les équipes de réalisation.
- Approuve la mise en production du produit.
Spécialiste de test (Test Designer)
- Prépare la stratégie et les plans de test en vue d’organiser et de faire un suivi efficace des tests sous sa responsabilité.
- Approuve les tests unitaires (approuve la livraison du produit).
- Identifie tous les cas de test nécessaires pour éprouver l’application.
- Récupère les cas de test pertinents connus dans les anciens cahiers d’essais.
- Coordonne la rédaction des cas de test et le développement des scripts de test nécessaires pour l’automatisation.
- Effectue le suivi des anomalies détectées et s’assure que les tests non concluants sont reconduits.
- Mesure les résultats et la progression des essais.
Analyste de test (Test Analyst)
- Rédige les cas de tests (procédures de test + preuves de tests unitaires).
- S’assure que toutes les exigences logicielles sont satisfaites.
- Développe le calendrier de test et la preuve de tests unitaires.
- Exécute les cas de tests.
- Documente les résultats (rapport de test).
- Alimente la base de données des anomalies.
Testeur (Tester)
- Se concentre principalement sur l’exécution des cas de test définis par l’analyste de test ou le développeur de test.
- Documente les résultats (rapport de test).
- Alimente la base de données des anomalies.
Développeur de test (Test Scripter)
- Met en place l’environnement de test requis pour l’exécution des tests.
- Développe les tests automatisés tel que demandé par l’analyste de test.
- Développe, convertit et assure la disponibilité des données d’entrée pour les tests.
- Exécute les tests automatisés.
Documentaliste (Technical Writer)
- Développe la documentation utilisateur de l’application.
- Développe le matériel de formation.
- Supporte l’équipe de test au besoin en devenant un testeur
À noter que le rôle de gestionnaire de test et de spécialiste de test peut être attribués à une seule personne. Il en est de même pour l’analyste de test et le testeur. En support à l’équipe de test, les analystes fonctionnels peuvent aider à documenter , voire devenir un membre de l’équipe de test pour aider à l’exécution des cas de test manuels et automatisés.
Conclusion
L’équipe de test ne se limite pas à la simple détection de bogues : elle joue un rôle clé dans l'amélioration continue des systèmes informatiques et des produits logiciels ainsi que dans l'optimisation des processus de test et de développement. Elle permet de garantir l'objectivité et l'efficacité des évaluations.
Dans un prochain article, j’aborderai les différentes phases de test et les bonnes pratiques d’exécution lors d’une période de test.
Pour aller plus loin :
Qualité : bases et bonnes pratiques des tests logiciels
Qualité : planifier et exécuter vos activités de tests logiciels
Tests logiciels : implanter une équipe dans l'organisation
Tests logiciels : appliquer les bonnes pratiques en mode agile
Assurance qualité : créer des tableaux de bord sur la qualité et les tests logiciels
Photo de Marvin Meyer sur Unsplash