Skip to main content

6 - le processus de recette d'un projet

Enjeux des tests

Les tests visent à vérifier que le logiciel répond aux exigences et à réduire les risques liés à sa mise en production.

Le niveau de test résulte d’un arbitrage entre :

    Les exigences de qualité et de garantie Les contraintes client La criticité de l’application, notamment en matière de sécurité Le délai de mise sur le marché (time-to-market) Le respect de la date de livraison Les risques de pénalités de retard et de perte de crédibilité

    L’exhaustivité des tests est impossible : il faut donc définir un périmètre, des priorités et une stratégie de test.

    Types et objectifs des tests

    Tests unitaires

    Les tests unitaires vérifient individuellement les composants ou modules développés.

      Ils sont réalisés pendant ou juste après le codage. Ils sont adaptés à une approche ascendante, module par module. Ils peuvent être automatisés. Idéalement, leur conception est confiée à un développeur différent de celui ayant développé le composant.

      Tests d’intégration technique

      Les tests d’intégration technique vérifient le bon fonctionnement des composants lorsqu’ils sont assemblés.

      Ils portent notamment sur :

        Les interfaces entre modules Les échanges de données La cohérence technique de l’ensemble Les dépendances entre composants

        Ils sont généralement conçus et réalisés par un développeur ou un chef de projet technique.

        Tests fonctionnels / recette

        La recette fonctionnelle valide la conformité du logiciel aux besoins métier, au cahier des charges et aux spécifications fonctionnelles.

        Elle vérifie notamment :

          Les informations gérées Les règles de gestion Les processus opérationnels Les restitutions et reportings L’ergonomie et l’utilisabilité

          La recette est généralement conçue par un utilisateur, un analyste ou un chef de projet fonctionnel, puis exécutée par des utilisateurs.

          Recette d’intégration fonctionnelle

          La recette d’intégration fonctionnelle valide le paramétrage et l’enchaînement des processus métier dans une solution intégrée.

          Elle concerne notamment :

            Le paramétrage spécifique réalisé pour le client L’intégration entre les processus métier Les développements spécifiques non couverts par la recette standard de la solution

            Elle est généralement conçue par le chef de projet fonctionnel et réalisée par un utilisateur clé ou un chef de projet fonctionnel.

            Tests de performance

            Les tests de performance évaluent le comportement du système sous différentes contraintes.

            Ils portent sur :

              Le temps de réponse Le nombre d’accès simultanés La durée des traitements Le volume de données manipulées L’endurance du système La stabilité sous charge La disponibilité du débit pour les utilisateurs

              Ils peuvent nécessiter des outils de simulation d’utilisateurs et des scénarios techniques.

              Tests de sécurité et de compatibilité

              Les tests techniques spécifiques peuvent couvrir :

                Les risques d’intrusion La compatibilité avec les navigateurs et leurs versions L’intégrité du poste de travail Le comportement en cas de défaillance applicative Le fonctionnement en mode dégradé Les variations du nombre de connexions Les extensions de navigateur ou outils côté serveur

                Tests en environnement opérationnel

                Les tests en environnement opérationnel interviennent lors de la qualification.

                Ils permettent de vérifier le comportement du logiciel dans des conditions proches ou identiques à la production.

                Cycles de développement et validation

                Étapes principales d’un projet

                  Schéma directeur Étude préalable ou étude d’opportunité Étude détaillée Étude technique Réalisation
                    Programmation Préparation des jeux d’essai Tests unitaires Tests d’intégration Recette client Mise en œuvre
                      Paramétrage Reprise des données Formation Qualification
                        Tests en environnement opérationnel

                        Modèle en V

                        Le modèle en V associe chaque phase de conception à une phase de validation ou de vérification.

                        Phase de conception Phase de contrôle associée Étude de faisabilité Validation Définition des besoins Validation Conception générale Vérification Conception détaillée Vérification Codage Tests unitaires Intégration Tests d’intégration Implémentation Recette

                        Approche itérative

                        Dans une approche itérative, les phases suivantes sont répétées plusieurs fois :

                          Analyse des besoins Conception Programmation et tests unitaires Tests d’intégration Livraison d’une version opérationnelle et recette

                          Chaque itération produit une version testable du logiciel.

                          Qualité logicielle

                          Fiabilité

                          La fiabilité correspond au respect des exigences fonctionnelles définies dans le cahier des charges et les spécifications.

                          Elle couvre :

                            Les données à gérer Les règles de gestion Les processus opérationnels Les reportings

                            Performance

                            La performance mesure la capacité du logiciel à fournir le niveau de service attendu.

                            Critères principaux :

                              Temps de réponse Nombre d’utilisateurs simultanés Durée des traitements Volume de données Endurance

                              Utilisabilité

                              L’utilisabilité concerne la facilité d’utilisation du logiciel.

                              Elle inclut principalement :

                                L’ergonomie La clarté des interfaces La cohérence des parcours utilisateur L’adaptation aux usages réels

                                Processus de test

                                Le processus de test se déroule en six étapes :

                                  Organiser et planifier l’activité Élaborer les tests et les jeux d’essai Effectuer les tests Analyser et historiser les résultats Définir les corrections à réaliser Corriger et livrer une nouvelle version

                                  Stratégie de test

                                  La stratégie de test définit la méthodologie appliquée pendant les phases de test, selon le cycle de vie et l’avancement du projet.

                                  Elle précise notamment :

                                    Le périmètre fonctionnel et technique à tester Les cycles de test Les priorités Les modules critiques Les ressources nécessaires Les outils utilisés Les critères d’entrée et de sortie des tests

                                    Approche descendante

                                    Les tests descendants partent des processus utilisateur et vérifient progressivement les composants impliqués.

                                    Cette approche est particulièrement adaptée à la recette fonctionnelle.

                                    Approche ascendante

                                    Les tests ascendants commencent par les modules les plus élémentaires, puis remontent progressivement vers les fonctions globales.

                                    Cette approche est particulièrement adaptée aux tests unitaires et aux tests d’intégration technique.

                                    Préparation des tests

                                    Environnement de test

                                    L’environnement de test doit être préparé avant l’exécution des tests.

                                    Il comprend :

                                      Les serveurs Les postes de travail Les bases de données de test Les bases de préproduction Les outils de test Les outils de montée en charge Les automates de tests fonctionnels

                                      Planification

                                      Le processus de test doit prévoir :

                                        Les cycles de test Le périmètre de chaque cycle Les ressources humaines nécessaires Le planning Les outils de suivi des anomalies et corrections Les modalités de reporting

                                        Cas de test

                                        Selon la norme IEEE 829, un test est un ensemble de cas de test lié à un objectif.

                                        Un cas de test définit :

                                          L’état de l’objet à tester avant l’exécution Les actions à effectuer ou les données à saisir Les valeurs ou observations attendues L’état attendu après exécution Éventuellement, une procédure d’exécution détaillant la séquence des actions

                                          Plan de recette

                                          Le plan de recette organise les tests fonctionnels à effectuer à partir des spécifications fonctionnelles détaillées.

                                          Il permet de :

                                            Répertorier les cas de test prévus Associer chaque test à une exigence ou une spécification Définir les prérequis et jeux d’essai Décrire les actions à réaliser Définir les résultats attendus Suivre l’exécution des tests Tracer les anomalies détectées

                                            Un plan de recette comporte généralement les informations suivantes :

                                            Élément Rôle Identifiant du test Référence unique du cas de test Module Fonctionnalité ou composant concerné Cas de test Situation à vérifier Référence de spécification Exigence couverte par le test Pré-requis / jeu d’essai Données et conditions nécessaires Actions Manipulations à réaliser Résultat attendu Comportement conforme attendu Résultat observé Comportement réellement constaté Statut État du test ou de l’anomalie

                                            Jeux d’essai

                                            Les jeux d’essai correspondent aux données préparées pour exécuter les tests.

                                            Ils doivent permettre de vérifier :

                                              Les cas nominaux Les cas limites Les règles de gestion Les cas d’erreur Les contrôles de format Les transformations de données Les critères de sélection Les restitutions et fichiers produits

                                              Les jeux d’essai doivent être cohérents avec les exigences fonctionnelles et les données attendues en production.

                                              Gestion des anomalies

                                              Une anomalie est un écart entre le résultat observé et le résultat attendu.

                                              La gestion des anomalies comprend :

                                                La description de l’anomalie relevée pendant le test La transmission à l’équipe de développement Le suivi de la correction La vérification après livraison d’une nouvelle version L’historisation des résultats

                                                Chaque anomalie doit être rattachée à un cas de test et contenir au minimum :

                                                  Un identifiant Le cas de test concerné La version testée Le résultat observé La date de détection L’auteur de la détection Le niveau de criticité Le statut L’historique des actions et corrections

                                                  Niveaux de criticité

                                                  Les anomalies peuvent être catégorisées selon leur impact :

                                                  Niveau Signification Bloquante Empêche l’utilisation du logiciel ou bloque un processus critique Majeure Altère fortement une fonctionnalité importante sans bloquer totalement le système Mineure Défaut ayant un impact limité sur le fonctionnement Cosmétique Défaut de présentation ou d’ergonomie sans impact fonctionnel significatif

                                                  Suivi et pilotage

                                                  Le pilotage des tests consiste à comparer l’avancement réel avec l’avancement prévu.

                                                  Les principaux indicateurs sont :

                                                    Nombre de tests prévus Nombre de tests réalisés Nombre de tests réussis Nombre de tests échoués Nombre de tests bloqués Nombre d’anomalies détectées Répartition des anomalies par criticité Nombre d’anomalies corrigées Nombre d’anomalies à retester Charge estimée de correction État d’avancement par module ou processus

                                                    Correction et nouvelle version

                                                    Après analyse des anomalies :

                                                      Les anomalies critiques sont traitées en priorité. La charge de correction est évaluée afin de planifier le cycle suivant. Les corrections sont réalisées selon les priorités et les disponibilités de l’équipe. Une nouvelle version est livrée. Les anomalies corrigées sont retestées. Une note de version (release note) ou un compte-rendu de recette est produit ou mis à jour.

                                                      Organisation et responsabilités

                                                      Type de test Conception Réalisation Tests unitaires Développeur, idéalement distinct du réalisateur du développement Développeur Tests d’intégration technique Développeur ou chef de projet Développeur ou chef de projet Tests de performance Chef de projet technique et chef de projet fonctionnel Chef de projet technique Tests fonctionnels / recette Utilisateur ou analyste indépendant du développement Utilisateur Recette d’intégration fonctionnelle Chef de projet fonctionnel Utilisateur clé ou chef de projet fonctionnel

                                                      Outils de test et collaboration

                                                      Lorsque plusieurs utilisateurs et développeurs participent à la recette, il faut mettre en place :

                                                        Un workflow de création, mise à jour et validation des fiches d’anomalies Un outil de suivi des anomalies (bug tracking) Un historique des versions et corrections Un reporting d’avancement partagé Une gestion claire des statuts et responsabilités

                                                        Les outils de suivi doivent faciliter :

                                                          La centralisation des anomalies L’affectation aux personnes responsables La priorisation Le suivi des corrections Le retest La production d’indicateurs de pilotage