Résumé Test Logiciel
Résumé Test Logiciel
Résumé Test Logiciel
Les tests logiciels sont un moyen d'évaluer la qualité du logiciel et de réduire le risque de
défaillance de ce logiciel en cours de fonctionnement
● Mise en évidence des défauts d’un logiciel
● Donner un niveau de confiance
● Indication sur la qualité du logiciel
● Prouver qu’un logiciel est correcte
● Corriger les défauts
● Prouver la conformité fonctionnelle
● Prévenir des défauts
● Diagnostiquer les fautes
1) Tests et débogage
● L'exécution de tests peut mettre en évidence des défaillances causées par des
défauts dans le logiciel.
● Le débogage est l'activité de développement qui trouve, analyse et corrige de tels
défauts. Le débogage intervient après qu'une erreur a été détectée, que ce soit par
les tests ou par d'autres moyens.
Les résultats inattendus ne sont pas tous des défaillances. Des faux positifs peuvent se
produire qui sont des situations où un test signale un défaut alors qu'en réalité, il n'y en a
pas. Les faux négatifs sont des situations où un test ne détecte pas un défaut réellement
présent dans le logiciel.
3) 7 principes sur les tests :
● Les tests montrent la présence de défauts, pas leur absence : le test ne peut
jamais garantir l'absence totale de défauts dans un logiciel.
● Tester tôt économise du temps et de l’argent : Identifier et corriger les défauts tôt
dans le cycle de vie du développement logiciel
● Regroupement des défauts : une fois qu'un défaut est découvert dans une partie
du logiciel, il est judicieux de rechercher d'autres défauts similaires dans la même
zone.
● Paradoxe du pesticide : l'importance de la diversification des techniques de test
● Les tests dépendent du contexte : Les tests doivent être adaptés au contexte
spécifique du projet et aux exigences de l'application.
● L’absence d’erreurs est une illusion : ce principe met en garde contre l'idée
erronée que l'absence de défauts dans un logiciel signifie que le logiciel est sans
erreur.
4) Processus du test :
➢ Planification des tests : Définir les objectifs du test et l'approche retenue pour
atteindre les objectifs du test.
➢ Pilotage et contrôle des tests : Le pilotage → la comparaison régulière de
l’avancement réel par rapport au plan de test à l'aide des métriques de pilotage
définies dans le plan de test. Le contrôle des tests → prendre les mesures
nécessaires pour satisfaire aux objectifs du plan de test (qui peut être mis à jour au fil
du temps).
➢ Analyse de tests : Identifier les caractéristiques testables et les conditions de test
associées.
➢ Conception des tests : Développer les cas de test, prioriser, concevoir
l'environnement et établir la traçabilité.
➢ Implémentation des tests : Développer les procédures de test, créer des suites de
tests, préparer l'environnement et les données de test.
➢ Exécution des tests : Exécuter les tests selon le calendrier, enregistrer les résultats
et analyser les anomalies.
➢ Clôture des tests
● Collaboration plutôt que confrontation : Mettre l'accent sur des objectifs communs
pour une meilleure qualité des systèmes.
● Communication neutre et axée sur les faits : Transmettre les résultats des tests
de manière impartiale, sans blâmer les individus, et s'assurer d'une compréhension
mutuelle.
● Compréhension mutuelle des points de vue : Reconnaître les objectifs différents
des testeurs et des développeurs, mais travailler ensemble pour atteindre un niveau
de qualité élevé.
● États d'esprit des testeurs et des développeurs : Les testeurs devraient être
curieux, critiques et attentifs aux détails, tandis que les développeurs doivent être
concentrés sur la conception et la construction, tout en étant ouverts à l'identification
des défauts dans leur propre code.
Un modèle de cycle de vie de développement logiciel décrit les types d'activités réalisées
à chaque étape d'un projet de développement logiciel, et la façon dont les activités sont
reliées entre elles logiquement et chronologiquement.
► Pour chaque activité de développement, il y a une activité de test correspondante.
► Chaque niveau de test a des objectifs de test spécifiques à ce niveau.
Quel que soit le modèle de cycle de développement logiciel choisi, les activités de test
devraient commencer dès les premières étapes du cycle de vie, en respectant le principe de
« Tester tôt ».
Les différents modèles de cycle de développement nécessitent des approches de tests
différentes.
2. Le développement incrémental :
Le développement incrémental implique la définition des exigences, la conception, le
développement et le test d'un système par morceaux, ce qui signifie que les fonctionnalités
du logiciel augmentent de façon incrémentale. La taille de ces incréments de fonctionnalités
varie.
3. Le développement itératif :
Le développement itératif se déroule lorsque des groupes de caractéristiques sont
spécifiés, conçus, développés et testés ensemble dans une série de cycles, souvent
d'une durée fixe. Les itérations peuvent impliquer des changements sur les caractéristiques
développées dans les itérations précédentes, ainsi que des changements sur le périmètre
du projet.
● Système basé sur des itérations. Un incrément est réalisé à la fin de chaque itération
● Chaque itération intègre toutes les activités: exigences, conception, construction et
tests unitaires, fonctionnels, d‟intégrations et d‟acceptation.
Le modèle en V :
Liste des produits d'activités qui peuvent être examinés par des tests statiques :
► Les spécifications, y compris les exigences métier, les exigences fonctionnelles et les
exigences de sécurité
► Les épics, User Stories, et critères d’acceptation
► Les spécifications d'architecture et de conception
► Le code
► Le testware, y compris les plans de test, les cas de test, les procédures de test et les
scripts de test automatisés
► Les guides utilisateur
► Les pages Web
► Les contrats, les plans de projet, les calendriers et les budgets
► Les modèles, tels que les diagrammes d'activité, qui peuvent être utilisés pour les tests
basés sur des modèles
Le processus de revue
Le processus de revue en développement de logiciels est une vérification statique où des
participants analysent des éléments comme le code ou les spécifications pour identifier des
défauts ou des écarts. Ce processus peut aller d'informel à formel et comprend
généralement les étapes suivantes :
Planification : Définir l'objectif, le périmètre qui comprend le but de la revue, les documents
ou parties de documents à revoir et les caractéristiques de qualité à évaluer , et sélectionner
les participants ainsi que les critères d’entrée et de sortie.
Lancement de la revue : Distribuer les documents à examiner et clarifier les objectifs et le
processus.
Revue individuelle : Les participants examinent le produit et notent les problèmes.
Communication et analyse des problèmes : Discuter des défauts identifiés, leur attribuer
un statut et décider des actions à prendre.
Correction et rapport : Corriger les défauts trouvés, communiquer les modifications, et
vérifier la satisfaction des critères de sortie.
Facilitateur (ou Modérateur) : Clé pour le bon déroulement des réunions de revue, il gère
la communication et peut servir de médiateur entre les participants. Son rôle est crucial pour
le succès de la revue.
Réviseurs : Experts ou parties prenantes sélectionnés pour identifier les défauts dans le
produit examiné. Ils apportent diverses perspectives basées sur leur expertise.
Scribe (ou Rapporteur) : Documente les défauts, les questions ouvertes, et les décisions
prises pendant la revue. Il joue un rôle essentiel dans le suivi des résultats de la revue.
Types de revues :
Revue Informelle
● Objectif : Identifier les défauts potentiels et générer des idées.
● Processus : Sans formalités documentées, sans réunion obligatoire.
● Participants : Effectuée par des collègues ou pairs.
● Documentation : Les résultats peuvent être notés, l'utilisation de checklists est
facultative.
Relecture Technique
● Objectifs : Trouver des défauts, envisager des alternatives, et évaluer la conformité
avec moins de formalité que les inspections..
● Processus : La préparation individuelle est optionnelle, et la réunion est souvent
dirigée par l'auteur.
● Rôles : La présence d'un scribe est requise, l'utilisation de checklists est optionnelle.
Revue Technique
● Objectifs : Obtenir un consensus, détecter des défauts, et évaluer la qualité.
● Processus : Nécessite une préparation individuelle, la réunion de revue est
facultative et idéalement menée par un facilitateur.
● Rôles : La participation de pairs et d'experts est nécessaire, avec documentation des
défauts.
Inspection
● Objectifs : Détecter et prévenir les défauts, évaluer la qualité, et favoriser
l'apprentissage avec la méthode la plus formelle.
● Processus : Suit un protocole défini très structuré avec des critères d'entrée et de
sortie, nécessite une préparation et implique des rôles définis.
● Rôles : Des rôles spécifiques sont clairement définis.Conduit par un facilitateur
formé, avec un scribe désigné, et l'auteur ne peut pas tenir certains rôles.
Chaque technique offre un angle différent pour évaluer un produit, de l'approche libre à des
méthodes plus ciblées et structurées.
Analyse statique avec des outils: (Effectué sans exécuter le code par les
développeurs )
Le choix des techniques de test à utiliser dépend d'un certain nombre de facteurs, dont :
● le Type de composant ou de système,
● Complexité du composant ou des systèmes,
● Normes réglementaires,
● Exigences client ou contractuelles,
● Niveaux de risque, Types de risques,
● Objectifs du test, Documentation disponible,
● Connaissances et compétences des testeurs,
● Outils disponibles, Temps et budget
● Modèle de cycle de vie du développement logiciel, Utilisation prévue du logiciel
Traçabilité :
→ Quoi ? : C'est la relation entre les spécifications, les exigences, les conditions de test, les
cas de test et les incidents.
→ Pourquoi ? : La traçabilité donne une visibilité sur le progrès et la couverture des tests.
Elle est importante pour comprendre l'impact des changements d'exigences sur les tests
existants.
→ Comment ? : On établit la traçabilité en référençant les exigences et les spécifications.
Des tables de liaison sont créées pour relier les références des exigences aux conditions de
test correspondantes.
Cas de test :
● Composition d‟un cas de test
○ Ensemble de valeurs d'entrée
○ Pré-conditions d'exécution
○ Résultats attendus
○ Post-conditions d'exécution
● Résultats Attendus
○ Les sorties
○ Les modifications d'état
○ Les modifications de données
○ Autres conséquences et impacts du test
Chapitre (5) : Gestion des Tests
1. Organisation des tests : Indépendance des tests
Concept d'indépendance : L'indépendance dans les tests fait référence à la séparation
entre la personne qui écrit le code et celle qui le teste. Cette séparation aide à minimiser les
biais cognitifs qui pourraient affecter la capacité du testeur à identifier les erreurs, car
l'auteur et le testeur ont des perspectives différentes.
Niveaux d'indépendance :
Aucun testeur indépendant : Les développeurs testent leur propre code. Ce niveau
présente le risque le plus élevé de biais.
Testeurs indépendants dans les équipes : Ici, les tests peuvent être réalisés par d'autres
développeurs au sein de la même équipe ou par des testeurs spécialisés. Cela offre une
certaine distance par rapport au code original.
Équipe de test indépendante : Une équipe séparée au sein de l'organisation qui se
concentre uniquement sur les tests. Ces testeurs rapportent généralement à la direction du
projet ou à la direction générale, offrant une perspective externe plus forte et moins de
conflits d'intérêts.
Des testeurs indépendants appartenant à l’organisation métier ou à la communauté
d’utilisateurs, ou spécialisés dans des types de tests spécifiques tels que l'utilisabilité, la
sécurité, la performance, la conformité réglementaire ou la portabilité.
Testeurs externes : Des spécialistes non affiliés à l'organisation, travaillant soit sur site
(insourcing) soit hors site (outsourcing).
Avantages de l'indépendance :
● Les testeurs indépendants apportent des perspectives différentes, ce qui peut
conduire à une meilleure identification des défauts.
● Ils peuvent également remettre en question les hypothèses prises pendant la
conception et l'implémentation du système.
Inconvénients de l'indépendance :
● Risque d'isolement des testeurs par rapport à l'équipe de développement, ce qui
peut entraver la collaboration et retarder les feedbacks.
● Perception possible des testeurs comme un goulot d'étranglement, surtout si les
délais de mise en marché sont impactés.
● Manque potentiel d'accès à des informations cruciales sur le produit à tester.
● Les développeurs peuvent perdre le sens des responsabilités vis-à-vis de la qualité.