La QA (Quality Assurance) est un terme utilisé pour parler de tout processus visant à vérifier la qualité d’un produit ou d’un autre processus. En d’autres termes, la QA est là pour s’assurer de la conformité d’un produit aux exigences.
Dans le monde de l’informatique, on parle souvent de tests de qualification logiciel. Le test de qualification logiciel a pour but de confirmer que le logiciel respecte les spécifications qui ont été définies. Les spécifications sont des documents visant à définir de manière précise chaque fonctionnalité attendue du logiciel final.
C’est une équipe composée de testeurs qui s’occupera de réaliser les tests adéquats sur le logiciel afin de vérifier le niveau de qualité global, la conformité aux exigences, de rechercher des bugs. Elle a pour but de vérifier la complétude des fonctionnalités, de réduire le niveau de risque et d’apporter de l’Information sur la qualité du logiciel aux différentes parties prenantes du projet.
L’équipe de test a donc une place centrale dans un projet. On peut la situer généralement entre l’équipe Métier et l’équipe de Développement.
Pourquoi est-il utile de faire des tests ?
Tester permet l’identification et l’élimination des défauts dans les exigences et réduit le risque de développement de fonctionnalités incorrectes Les testeurs peuvent augmenter la compréhension des exigences du côté des développeurs et donc augmenter la probabilité que le logiciel réponde aux besoins et exigences.
Nous pouvons voir, notamment au travers de ces graphiques, que les coûts d’un projet de développement viennent à 67% de la maintenance. Et quelle est l’origine principale entraînant de la maintenance ? Les erreurs liées aux exigences et spécifications. Donc, en instaurant des tests de qualité logiciel, on réduit considérablement les bugs liés aux exigences, et donc, on réduit les coûts du projet de développement !
CQFD !
Cependant, pour que les tests jouent pleinement leur rôle et soient correctement réalisés, il faut certains pré-requis, à commencer par :
- Une équipe de bons testeurs
- Une équipe de test indépendante
Je m’explique. Pour être un bon testeur, on doit être :
- Soit naturellement doué 😎
- Soit expérimenté => utilisation de logiciels (ERP, CRM…), connaissances techniques (analyse des besoins, conception logiciels, support technique…), expériences dans le test
- Soit formé et certifié Et dans l’idéal, les 3 en même temps !
Et pour tester correctement un logiciel, certaines compétences sont nécessaires :
- Métier
- Techniques
- Test
- Relationnelles
- Curiosité et attentif aux détails
- Management
Concernant le point sur l’indépendance de l’équipe de test : plus l’équipe de test sera indépendante, plus elle sera efficace. !
Abordons maintenant les grandes lignes d’un projet QA
Mener à bien un projet QA commence par l’établissement de certains documents, qui vont nous permettre de cadrer les activités de test. Du plus haut niveau vers le plus fin, on retrouve :
- La politique de test : Qui est un document à l’échelle de l’organisation décrivant les principes, approches et objectifs majeurs de l’organisation concernant l’activité de test. C’est donc un document qui décrit « pourquoi » on fait des tests,
- En dessous on retrouve la stratégie de test : elle s’appuie sur la politique de test, l’approfondit et la contextualise. Également à l’échelle de l’organisation, elle s’applique à tous les projets de test. Elle détaille les approches et les techniques de test pouvant être utilisées, mais aussi les objectifs, les responsabilités, les tâches principales, les pratiques…
- Enfin on retrouve le plan de test qui applique la stratégie de test à l’échelle d’un projet de test. Il détaille l’organisation du test (étendue, environnement de test, approche, phases, planning, ressources, critères d’entrée et de sortie…).
Une fois que ces documents sont en place, on peut passer aux choses sérieuses ! Un projet de test se déroule en plusieurs phases :
Planification
Planifier, c’est définir les objectifs de tests, l’approche de test, les activités de test, le calendrier des tests, définir les métriques, établir le plan de test.
Préparation
La phase de préparation se divise en 3 sous-phases :
Analyser => Identifier les caractéristiques testables et définir les conditions de test associées. C’est déterminer le « Quoi » tester (analyse des specs, de l’implémentation du code, évaluation des ambiguïtés, incohérences, contradictions, préparer la conception)
Concevoir => Déterminer le « Comment » tester. On va concevoir et prioriser les cas de test, identifier les données de test nécessaires, concevoir l’environnement de test et identifier les outils nécessaires. Etablir la traçabilité entre les bases de test, les conditions, les cas de test et les procédures de test
Implémenter=> Répondre à la question « Est-ce que tout est en place pour exécuter les tests ». On va préparer la campagne de test (Ecrire et prioriser les procédures de test, organiser les procédures en suites, créer les scripts automatisés, positionner les suites dans un calendrier d’exécution). C’est aussi préparer les environnements (données de test), vérifier la disponibilité des données et des cas de test.
Exécution
La phase d’exécution consiste à identifier les versions à tester, exécuter les tests, consigner les résultats de l’exécution, comparer les résultats obtenus et attendus, analyser les anomalies, établir leurs causes probables, signaler les anomalies, effectuer les tests de confirmation et les tests de régressions.
Clôture
Enfin, dans la phase de clôture, on va rassembler les données des activités de tests, consolider les résultats d’exécution, clore les rapports d’incidents, créer des demandes d’évolution pour les anomalies non résolues, établir le rapport de synthèse, finaliser et archiver les livrables, remonter les éléments aux parties prenantes. Et dans un principe d’amélioration continue, on va effectuer les retours d’expérience, analyser les leçons apprises, déterminer les changements nécessaires pour le futur et améliorer la maturité des tests.
Envie d’en savoir plus ? Jetez un oeil à notre dernier Tutotrompe : https://youtu.be/W2DAJe_cXKQ !