1. Livres & vidéos
  2. Les tests logiciels
  3. Organisation et implémentation des tests
Extrait - Les tests logiciels  Processus et outils pour des logiciels de qualité
Extraits du livre
Les tests logiciels Processus et outils pour des logiciels de qualité
1 avis
Revenir à la page d'achat du livre

Organisation et implémentation des tests

Stratégie de test

1. Objectif

Nous avons vu dans le chapitre précédent que tester a pour objectif d’évaluer et améliorer la qualité d’une application.

Il arrive que nous ne puissions pas tester une application dans sa globalité, et ce pour diverses raisons : des entrants incomplets tels qu’un manquement en spécifications et documentation projet, des jalons figés et des budgets serrés.

La stratégie de test permet au chef de projet test de décider ce qu’il faut tester, comment le tester, sur quel environnement et par qui, en prenant en compte le délai fixé et le budget alloué.

La stratégie de test doit trouver le juste équilibre entre le budget alloué à l’activité  de test et la couverture de test la plus adaptée aux risques métier du client.

Elle définit également les rôles et responsabilités de toutes les parties prenantes impliquées dans le projet ainsi que la comitologie et les indicateurs de suivi.

Le test manager est responsable de l’initialisation et de la rédaction de la stratégie de test en s’appuyant sur les documents contractuels, tel que le contrat et le PAQ (plan d’assurance qualité) ainsi que sur les documents de référence, tels que les spécifications fonctionnelles détaillées...

Périmètre de test

L’équipe de test commence par recueillir et analyser l’ensemble des exigences fonctionnelles et non fonctionnelles du projet.

Les exigences fonctionnelles sont généralement décrites dans les spécifications fonctionnelles, conçues par l’équipe des business analysts ou par l’équipe fonctionnelle selon l’appellation choisie par l’entreprise.

Dans ces spécifications, le « fonctionnel » va retranscrire sa compréhension des besoins métier selon un formalisme bien précis. Nous y retrouvons l’ensemble des fonctionnalités, les règles de gestion associées et idéalement les écrans ou le lien vers la maquette de l’application.

Les spécifications fonctionnelles sont l’entrant principal pour l’équipe de test.

Les exigences techniques quant à elles sont identifiées dans les documents de conception technique générale et détaillée, conçus par le binôme fonctionnel/technique. Nous y retrouvons en plus des spécifications fonctionnelles le détail de la solution technique choisie.

Les spécifications techniques serviront d’entrant aux équipes de développement.

La réalisation des développements et des tests devrait démarrer uniquement...

Gestion des risques

Tous les risques liés à un projet sont divisés en deux catégories : les risques du projet et les risques du produit.

Cette distinction est importante, car il s’agit de deux types de risques totalement différents, chacun nécessitant une approche différente pour les vérifier.

1. Risques projet

Un risque projet est tout événement négatif pouvant survenir à tout moment du cycle de vie du projet et qui pourrait avoir un impact sur son déroulement, son planning et sa qualité.

Il s’agit d’événements potentiels, il faut donc être dans une démarche proactive et identifier les risques projet en avance de phase, évaluer leur probabilité de survenance et leur impact, et identifier les actions pour réduire chaque risque, appelées aussi actions de mitigation des risques. Cela implique de réfléchir et de définir des actions préventives et/ou correctives au cas où le risque devait se produire.

La gestion des risques projet c’est aussi faire le suivi des risques tout au long du projet. Cela se fait généralement lors des instances et comités de suivi opérationnel des projets.

Les tests sont un projet dans le projet, avec une planification, des tâches, des ressources et des livrables. La gestion des risques projet liés aux tests est de la responsabilité du chef de projet test. La liste des risques projet liés aux tests et les actions pour les limiter font partie de la stratégie de test et du plan de gouvernance du projet.

Voici des exemples de risques projet liés aux activités de test :

Code du risque

Description du risque

Impact

Actions d’atténuation

R01

Indisponibilité des environnements de test

Délai

Identifier et définir le besoin en environnement en avance de phase dans la stratégie de test. Informer le responsable de la préparation des environnements du besoin et de la date de mise à disposition de l’environnement ou des environnements souhaitée.

R02

Indisponibilité des données...

Estimation des tests

1. Objectifs

De combien de temps as-tu besoin pour tester ?

Quand penses-tu pouvoir terminer la préparation des tests ?

Mets en pause toutes tes tâches et priorises l’estimation  !

De combien de temps as-tu besoin pour faire ton estimation ?

La question du chiffrage est toujours compliquée et source de frustration, parfois de conflits.

La pression autour des estimations est partagée par tous, car chaque estimation est perçue comme un engagement à tenir.

Le manager du projet se base sur les estimations des équipes pour communiquer auprès du client sur le plan de charge et planning du projet.

Les testeurs, face à la demande managériale, sont soucieux de communiquer un chiffrage sous-évalué impliquant ensuite une surcharge de travail et une incapacité de livrer à temps ou au contraire de communiquer un chiffrage surévalué et de recevoir des reproches d’avoir chiffré plus qu’il n’en faut.

Au démarrage du projet l’équipe manque de recul et ne dispose pas d’assez d’informations et d’entrants pour établir une estimation réaliste.

Quoi qu’il en soit, une estimation reste basée sur des hypothèses et ne peut être exacte au premier coup. Un chiffrage initial est prévisionnel et non définitif ; il reste ajustable tout au long du projet.

Il est important d’établir une estimation des tests pour évaluer la charge et les ressources nécessaires pour la réalisation de l’ensemble des tâches prévues.

Même si l’estimation reste prévisionnelle, elle permet d’évaluer la complexité de chaque tâche, d’identifier des risques et d’adapter l’organisation et le dispositif des équipes. L’effort de test sera ainsi bien réparti.

2. Approche par ratio

Si l’équipe de développement a sa propre façon d’estimer l’effort de conception et de codage, qu’en est-il de l’effort de test ?

L’une des approches habituelles, l’approche de l’estimation de test par ratio, est une méthode d’estimation qui consiste à dériver l’effort ou le volume de test à partir...

Environnements de test

Un environnement de test est une plateforme où les applications peuvent être testées de manière sécurisée et contrôlée avant leur déploiement en production. Un environnement de test bien configuré et géré peut aider à identifier et à corriger les problèmes avant qu’ils n’affectent les utilisateurs finaux.

1. Types d’environnements de test

  • Environnement de développement : utilisé par les développeurs pour coder et tester leurs modifications localement. Cet environnement est souvent configuré sur les machines des développeurs et inclut des outils de développement intégrés, des gestionnaires de versions et des bases de données locales.

  • Environnement d’intégration continue : ici, le code de plusieurs développeurs est intégré ou mergé et testé pour détecter des problèmes d’intégration. Des outils d’intégration continue comme Jenkins, GitLab ou Travis sont souvent utilisés pour automatiser ce processus.

  • Environnement de test de qualification ou fonctionnel : utilisé par l’équipe de test pour exécuter des tests fonctionnels qui vérifient que les fonctionnalités de l’application répondent aux exigences spécifiées....

Données de test

1. Introduction

Les données de tests sont un prérequis essentiel pour l’exécution efficace des tests et dans leur complétude.

Les données doivent être pertinentes et viabilisées pour couvrir l’ensemble des conditions auxquelles le système sera confronté.

Il est important d’anticiper la préparation des données de tests avant le démarrage de l’exécution. Pendant la préparation des tests, le testeur identifie les caractéristiques du ou des jeux de données dont il aura besoin pour dérouler chaque test.

Pendant la préparation des tests, il s’agit d’identifier la description des données de tests pour pouvoir les valoriser avant le démarrage de l’exécution.

Il existe plusieurs types de données de tests selon la phase et les types de tests.

2. Principes des données de test

a. Représentativité

Les données de tests doivent être représentatives des données réelles utilisées par les utilisateurs finaux en production afin de garantir que les tests effectués sur un système logiciel reflètent de manière précise et réaliste les conditions réelles d’utilisation par les utilisateurs finaux.

Par exemple, pour tester la gestion d’un utilisateur il est nécessaire de tester avec un nom et prénom réels et non pas avec des noms peu crédibles comme « toto ».

C’est pour cela qu’il est important de maîtriser les processus métier et comprendre les différents cas d’utilisation du système. Cela passe par des ateliers de travail avec les différentes parties prenantes, notamment avec les sachants fonctionnels et métier.

Les jeux de données doivent couvrir les fonctionnalités attendues du système ainsi que les processus métier critiques. C’est pour cela qu’il est important de prioriser les exigences ou les fonctionnalités du système selon la criticité métier et technique.

Les tests vont alors hériter de la priorité de l’exigence qu’ils couvrent. Cela permettra d’ordonnancer les travaux de développement et de tests et ainsi prioriser...

Outils de tests

1. Objectifs

Les outils de tests sont utilisés pour améliorer la gestion et la traçabilité des tests et de leurs résultats tout au long du cycle de vie du développement logiciel. Ils permettent la mise en place d’un cadre organisationnel pour la validation des projets. Les outils de gestion des tests peuvent être de type bureautique ou logiciel.

Le choix de l’outil dépend des besoins de l’équipe projet en matière de fonctionnalités. Celles-ci peuvent être personnalisées pour répondre aux besoins spécifiques de chaque organisation.

L’utilisation d’outils offre des gains immédiats en temps et en qualité grâce à la création d’un référentiel unique de tests pour le projet et parfois grâce à l’automatisation de l’exécution des tests.

Attention à ne pas confondre un outil de gestion des tests avec un outil d’automatisation des tests.

Les outils bureautiques comme Microsoft Excel et Microsoft Word sont utilisés principalement par les développeurs pour tracer leurs tests unitaires.

La plupart des outils de gestion de tests actuellement sur le marché comme HP ALM et Jira Xray permettent :

  • la gestion des exigences ;

  • la gestion des tests ;

  • la gestion des anomalies ;

  • le pilotage des indicateurs...

Critères d’acceptation métier

Les critères d’acceptation métier définissent les conditions qui doivent être remplies pour qu’un système ou un logiciel soit accepté et réceptionné par le client ou l’utilisateur final. Ces critères sont généralement déterminés en collaboration avec les parties prenantes du projet et servent d’indicateurs pour évaluer si le produit répond aux attentes et aux exigences exprimées par le client initialement.

Les critères d’acceptation portent sur la couverture des exigences fonctionnelles et non fonctionnelles du client et aussi sur le taux de qualité attendu notamment sur les fonctionnalités taguées comme étant critiques pour le client.

Lorsque le métier définit ses exigences ou ses user stories, il doit également préciser les critères d’acceptation. Ces critères décrivent les fonctionnalités attendues ainsi que les règles métier essentielles à respecter. Qu’est-ce que cela implique pour les tests ?

L’équipe de test doit veiller à ce que les critères d’acceptation métier soient couverts à 100% par les tests et que tous les tests liés aux exigences héritent de la même priorité et soient...

Rôles et responsabilités

1. Objectifs

Il est important de définir clairement les rôles et responsabilités au sein de l’équipe de test et au sein de toutes les équipes projet d’une manière générale.

Lorsque chaque membre de l’équipe comprend ce qui est attendu de lui, avec des objectifs clairement définis, cela réduit considérablement le sentiment de mal être, de frustration et les situations conflictuelles.

La mise en place et la gestion de la matrice de compétences de l’équipe de test est de la responsabilité du chef de projet test, cela aide à assigner les tâches liées aux activités de tests, selon les compétences individuelles et aussi à identifier le manquement en compétences et l’identification d’un plan de formation adapté.

Les compétences dans une équipe de test peuvent être techniques comme les compétences liées à l’automatisation des tests, à l’analyse des logs ou au langage SQL pour interroger les bases de données via des requêtes. Elles peuvent être fonctionnelles comme la maîtrise d’un domaine ou sous-domaine fonctionnel. Les compétences peuvent être également de testing, comme la maîtrise du processus, des bonnes pratiques et de l’outillage de test. Certains membres peuvent être experts en automatisation, tandis que d’autres peuvent être spécialisés dans les tests manuels fonctionnels.

D’autres membres de l’équipe peuvent être experts et maîtriser un domaine fonctionnel métier, ils seront plus efficaces dans la préparation des tests lié à ce domaine.

La coordination et la collaboration entre les membres devient plus fluide, car chacun sait à qui se référer dans chaque situation et chaque membre est responsable de ses tâches.

2. Organisation d’une équipe de test

L’équipe de test est et doit être une équipe indépendante.

L’équipe de développement peut prendre part aux tests mais uniquement au plus bas niveau comme les tests unitaires et les tests d’intégration...

Suivi des tests

1. Objectif

Le suivi des tests est une activité de gestion de projet qui consiste à contrôler la progression des tests pour s’assurer que les tests sont conformes à ce qui a été spécifié initialement et que l’avancement correspond aux estimations initiales.

Le suivi des tests c’est aussi partager l’état des lieux et donner de la visibilité sur la qualité du projet.

Un bon suivi des tests permet aussi d’identifier les alertes et risques projet liés aux étapes en amont et ainsi améliorer le processus de développement. Lorsque l’on dit que les tests permettent d’améliorer le processus de développement, c’est tout à fait vrai. Lors de suivi des tests, on identifie les manquements et les faiblesses des étapes qui ont été effectuées précédemment que ce soit de conception ou de développement.

2. Indicateurs de suivi de test

Entest management, la mise en place d’indicateurs de test est essentielle pour suivre l’avancement des tests, évaluer leur qualité, leur efficacité et la qualité des livrables.

L’analyse des indicateurs de test permet d’identifier les écarts, les zones de risques, les axes d’amélioration et de mesurer la santé du projet.

Taux de qualité

Il s’agit...

Implémentation des tests

1. Gestion des exigences

La gestion des exigences dans le cadre de l’implémentation des tests consiste à analyser chaque exigence et à la traduire en un ou plusieurs cas de test ainsi qu’à assurer la traçabilité entre les exigences et les cas de test.

Nous distinguons deux niveaux d’exigences :

  • Les exigences client : ce sont celles exprimées par le client dans le cahier des charges et sur lesquelles porte l’engagement final du fournisseur. Elles peuvent être fonctionnelles ou non fonctionnelles.

  • Les exigences produit : elles représentent la traduction des besoins du client par l’équipe fonctionnelle ou les business analysts. Ces exigences sont déclinées en fonctionnalités, puis détaillées dans l’ensemble des livrables du projet, notamment dans les spécifications fonctionnelles et techniques.

Lors des tests, l’équipe de test vérifie les exigences fonctionnelles, c’est-à-dire une fonctionnalité de l’application. La description d’une exigence fonctionnelle est composée de la définition de la fonctionnalité et des règles de gestion associée.

Voici un exemple plus concret :

Exigence client : gestion des comptes utilisateurs ;

Exigence produit 1 : gestion des comptes utilisateurs depuis l’application ;

Exigence produit 2 : gestion des comptes utilisateurs via les fonctionnalités d’import-export.

Les exigences fonctionnelles doivent être vérifiables. À défaut, elles doivent être précisées, notamment lors de la phase de conception fonctionnelle.

Ces exigences explicites peuvent être complétées par des exigences implicites : non formulées explicitement, mais devant être respectées, et permettant d’identifier des tests complémentaires (par exemple, compatibilité des IHM avec les postes de travail des futurs utilisateurs).

Le test consiste donc à vérifier la conformité avec les exigences. La vérification des exigences techniques...