Préparation à La Certif ISTQB Chap1-2-3
Préparation à La Certif ISTQB Chap1-2-3
Préparation à La Certif ISTQB Chap1-2-3
ISTQB - International
Software Testing
Qualifications Board
Ezzine Missaoui
2022 - 2023
Contenue du cours
I. Fondamentaux des tests
II. Tester pendant le cycle de vie du
développement logiciel
III. Tests statiques
IV. Techniques de test
V. Gestion des tests
VI. Outils de support aux tests
ISTQB Foundation Level
ISTQB Foundation Level Exam
Chap1 : Fondamentaux des tests
1. Que sont les tests ?
2. Pourquoi les tests sont-ils nécessaires ?
3. Les 7 Principes généraux des tests
4. Processus de test
5. La psychologie des tests
Termes : couverture, débogage, défaut, erreur, défaillance, qualité, assurance qualité, cause racine,
analyse de test, base de test, cas de test, clôture des tests, condition de test, contrôle des tests,
données de test, conception des tests, exécution des tests, planning de l’exécution des tests,
implémentation des tests, pilotage des tests, objet de test, objectif de test, oracle de test, planification
des tests, procédure de test, suite de test, test, testware, traçabilité, validation, vérification
Que sont les tests ?
● Les tests logiciels sont un moyen d'évaluer la qualité du logiciel et de réduire le risque
de défaillance du logiciel en cours de fonctionnement.
● Certains tests impliquent l'exécution du composant ou du système testé. Ces tests sont
appelés tests dynamiques. D'autres tests n'impliquent pas l'exécution du composant ou
du système testé ; de tels tests sont appelés tests statiques.
Que sont les tests ?
➢ Les objectifs de test peuvent varier en fonction du contexte du système testé, du niveau de
test et du modèle de cycle de vie de développement logiciel.
Que sont les tests ? Différence entre Test et débogage
❑ Le débogage est l'activité de développement qui trouve, analyse et
corrige les défauts.
❑ Le test de confirmation vérifie si les corrections apportées ont résolu
les défauts.
• Respect des processus adéquats ce qui • Assurer que les exigences fonctionnels
contribue à la prévention des défauts. et non fonctionnels sont satisfait .
• L'analyse des causes racines pour • Le contrôle qualité combine diverses
détecter et éliminer les causes des activités, y compris des activités de test,
défauts. qui contribuent à l'atteinte de niveaux de
• L'application des résultats des réunions qualité adéquats.
de rétrospective pour améliorer les • Les activités de test font partie du
processus. processus global de développement ou
de maintenance du logiciel
➢ La gestion de la qualité comprend toutes les activités qui dirigent et
contrôlent une organisation en matière de qualité.
Pourquoi les tests sont-ils nécessaires ? Erreurs, défauts et défaillances
❑ Une personne peut faire une erreur, ce qui peut conduire à l'introduction d'un défaut
dans le code du logiciel ou dans un autre produit d’activités connexe. Si un défaut dans
le code est exécuté, cela peut causer une défaillance.
➢ Les faux positifs peuvent se produire en raison d'erreurs dans la façon dont les tests
ont été exécutés, ou en raison de défauts dans les données de test, l'environnement
de test, ou pour d'autres raisons. Les faux positifs sont signalés comme des défauts,
mais ne sont en réalité pas des défauts.
➢ Les faux négatifs : sont des tests qui ne détectent pas les défauts qu'ils auraient dû
Pourquoi les tests sont-ils nécessaires ? Erreurs, défauts et défaillances
❑ Les causes racines des défauts sont les premières actions ou conditions qui
ont contribué à la création des défauts.
o Les contraintes de temps
o La faillibilité humaine
o Le manque de compétence des participants au projet
o Une mauvaise communication entre les participants au projet
o La complexité du code, de la conception, de l'architecture, du problème sous-jacent à
résoudre, et/ou des technologies utilisées
o Les malentendus sur les interfaces intra-système et inter-système
o Des technologies nouvelles, peu connues
o Conditions environnementales.
Les 7 principes sur les tests
1. Les tests montrent la présence de défauts, pas leur absence
2. Les tests exhaustifs (complets) sont impossibles
3. Tester tôt (à l’avance) économise du temps et de l’argent
4. Regroupement des défauts
5. Paradoxe du pesticide
6. Les tests dépendent du contexte
7. L’absence d’erreurs est une illusion
Processus de test - Activités et taches de test
Processus de test - Le processus de test dans le contexte
Les facteurs qui influencent le processus de test :
o Le modèle de cycle de vie du développement logiciel et les
méthodologies de projet utilisées
o Les niveaux de test et types de test prévus
o Les risques liés aux produits et aux projets
o Le domaine d'activité
o Les contraintes opérationnelles, entre autres :
▪ Les budgets et ressources
▪ Les délais
▪ La complexité
▪ Les exigences contractuelles et réglementaires
o Les politiques et pratiques organisationnelles
o Les normes internes et externes requises
Processus de test - Activités et taches de test
❑ Planification des tests
➢ La planification des tests implique de définir les objectifs du test
et l'approche retenue pour atteindre les objectifs du test dans le
respect des contraintes imposées par le contexte.
❑ Pilotage et contrôle des tests
➢ 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 consiste à prendre les mesures nécessaires
pour satisfaire aux objectifs du plan de test (qui peut être mis à
jour au fil du temps). Le pilotage et le contrôle des tests se basent
sur l'évaluation des critères de sortie
Processus de test - Activités et taches de test
❑ Analyse de test : "quoi tester"
➢ Analyser les bases de test pour identifier les caractéristiques
testables et définir les conditions de test associées.
➢ L'analyse de test comprend les principales activités suivantes :
▪ Analyser les bases de test
▪ Evaluer les bases de test et des éléments de test pour identifier des
défauts de différents types,
▪ Identifier les caractéristiques et les ensembles de caractéristiques à tester
▪ Définir et prioriser les conditions de test pour chaque caractéristique
(fonctionnelles, non- fonctionnelles et structurelles, facteurs métier et
techniques, niveaux de risque)
▪ Capturer la traçabilité bidirectionnelle entre les bases de test et les
conditions de test
Processus de test - Activités et taches de test
❑ Conception des tests : «comment tester ? »
➢ Les conditions de test sont déclinées en cas de test de haut niveau et
autres testware.
➢ La conception des tests comprend les activités principales suivantes :
▪ Concevoir et prioriser les cas de test et les ensembles de cas de test
▪ Identifier les données de test nécessaires pour les conditions de test et les
cas de test
▪ Concevoir l'environnement de test et identifier l'infrastructure et les outils
nécessaires
▪ Etablir la traçabilité bidirectionnelle entre les bases de test, les conditions de
test, les cas de test
Processus de test - Activités et taches de test
❑ Implémentation des tests : ‘Est-ce que tout est en place pour exécuter
les tests ?’
➢ Créer et/ou compléter le testware nécessaire à l'exécution des tests, y
compris l'ordonnancement des cas de test en procédures de test.
➢ L'implémentation des tests comprend les activités principales suivantes :
▪ Développer et prioriser les procédures de test et créer des scripts de test
automatisés.
▪ Créer des suites de tests à partir des procédures de test et des scripts de
tests automatisés.
▪ Positionner les suites de tests dans un calendrier d'exécution des tests.
▪ Construire l'environnement de test (harnais de test, la virtualisation des
services, les simulateurs ..)
▪ Préparer les données de test.
▪ Vérifier et mettre à jour la traçabilité bidirectionnelle entre les bases de test, les
conditions de test, les cas de test, les procédures de test et les suites de tests.
Processus de test - Activités et taches de test
❑ Exécution des tests
➢ Les suites de tests sont exécutées conformément au calendrier d'exécution
des tests.
➢ L'exécution des tests comprend les activités principales suivantes :
▪ Enregistrer les IDs et les versions des éléments de l'objet et des outils de test et
des testware.
▪ Exécuter les tests manuellement et/ou automatiques.
▪ Comparer les résultats obtenus avec les résultats attendus
▪ Analyser les anomalies/défaillance afin d'établir leurs causes probables
▪ Signaler les défauts sur la base des défaillances observées
▪ Enregistrer les résultats de l'exécution des tests (par exemple, réussite, échec,
blocage)
▪ Répéter certaines activités de test suite: (anomalie, test corrigé, test de
confirmation, test de régression)
▪ Vérifier et mettre à jour la traçabilité bidirectionnelle entre les bases de test, les
conditions de test, les cas de test, les procédures de test et les résultats des tests.
Processus de test - Activités et taches de test
❑ Clôture des tests
➢ Collecter les données des activités de test terminées afin de consolider
l'expérience, les testware et toute autre information pertinente. Les activités de
clôture des tests ont lieu à des jalons du projet; qu'une itération de projet Agile
est terminée; qu'un niveau de test ou qu'une maintenance est terminée.
➢ La clôture des tests comprend les activités principales suivantes :
▪ Vérifier si tous les rapports de défauts sont clôturés, et saisir des demandes de
modification ou des items du backlog du produit pour tous les défauts non résolus
à la fin de l'exécution des tests
▪ Créer un rapport de synthèse de test à communiquer aux parties prenantes
▪ Finaliser et archiver l’environnement, les données, l'infrastructure de test et autres.
▪ Remettre le testware aux équipes de maintenance, équipes de projet ou à d'autres
parties.
▪ Analyser les leçons apprises et utiliser l'information recueillie pour améliorer le
processus de test
Processus de test - Activités et taches de test
❑ Les produits d’activités du test
Processus de test - Activités et taches de test
❑ Traçabilité entre les bases de test et les produits d’activités du test
➢ Une bonne traçabilité facilite :
▪ L’analyse de l'impact des changements
▪ L’audit des tests
▪ La satisfaction des critères de gouvernance IT
▪ L’amélioration du caractère compréhensible des rapports d'avancement des tests
et des rapports de synthèse de test afin d'y inclure l'état des éléments des bases
de test
▪ La restitution des aspects techniques des tests aux parties prenantes en des
termes qu'elles peuvent comprendre
▪ L’apport d’information pour évaluer la qualité du produit, l’aptitude du processus et
l'avancement du projet par rapport aux objectifs métier
La psychologie des tests- Activités et taches de test
❑ Psychologie humaine et test
➢ Commencer par la collaboration plutôt que par la confrontation . Rappeler à
tous l'objectif commun d'une meilleure qualité des systèmes.
➢ Mettre l'accent sur les bénéfices du test. Par exemple, pour les auteurs,
l'information sur les défauts peut les aider à améliorer leurs produits
d’activités et leurs compétences. Pour l'organisation, les défauts trouvés et
corrigés durant les tests permettront d'économiser du temps et de l'argent
et de réduire le risque global pour la qualité du produit.
La psychologie des tests- Activités et taches de test
❑ Psychologie humaine et test
➢ Communiquer les résultats des tests et d'autres constats d'une manière
neutre et axée sur les faits, sans critiquer la personne qui a créé l’item
défectueux. Rédiger des rapports objectifs et factuels sur les défauts et
les constats des revues.
➢ Essayer de comprendre ce que ressent l'autre personne et les raisons
pour lesquelles elle peut réagir négativement à l'information
➢ Confirmer que l'autre personne a compris ce qui a été dit et vice versa.
La psychologie des tests- Activités et taches de test
❑ Etat d’esprit des testeurs et des développeurs
➢ L'objectif premier du développement est de concevoir et de construire
un produit. les objectifs du test comprennent la vérification et la
validation du produit, la détection des défauts avant la livraison.
✓ L’union de ces points de vue permet d'atteindre un niveau plus
élevé de qualité des produits.
➢ L'état d'esprit d'un testeur devrait inclure : la curiosité, un pessimisme
professionnel, un œil critique, l'attention aux détails et une motivation
pour de bonnes et positives communications et relations
➢ L'état d'esprit d'un développeur peut inclure certains éléments de l'état
d'esprit d'un testeur. Avec le bon état d'esprit, les développeurs sont
capables de tester leur propre code..
Chap2 : Tester pendant le cycle de vie du développement
1. Les modèles de développement logiciel
2. Niveaux de test
3. Types de test
4. Tests de maintenance
Termes : couverture, test d'acceptation, test alpha, test bêta, logiciel commercial sur étagère (COTS),
test d'intégration de composants, test de composants, test de confirmation, test d'acceptation
contractuelle, test fonctionnel, analyse d'impact, test d'intégration, test de maintenance, test non-
fonctionnel, test d'acceptation opérationnelle, test de régression, test d'acceptation réglementaire,
modèle de développement séquentiel, test d'intégration de systèmes, test système, bases de test, cas
de test, environnement de test, niveau de test, objet de test, objectif de test, type de test, test
d'acceptation utilisateur, test boîte blanche.
Les modèles de développement logiciel
❑ Développement de logiciel et tests logiciels
✓ Chaque modèles de cycle de développement de logiciels nécessite une
approches de test.
✓ Pour chaque activité de développement, il y a une activité de test
correspondante.
✓ L'analyse et la conception et les revus des tests pour un niveau de test donné
commencent au cours de l'activité de développement correspondante ; dès que
des versions préliminaires sont disponibles.
✓ 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 modèles de cycle de vie de développement de logiciels courants comme suit :
o Modèles de développement séquentiel
o Modèles de développement itératif et incrémental
Les modèles de développement logiciel
❑ Les modèles de développement
Les modèles de développement logiciel
❑ Développement de logiciel et tests logiciels
➢ Une analyse de risque des interfaces les plus complexes peut aider à
focaliser les tests d'intégration.
Niveaux de test
❑ Test système
Niveaux de test
❑ Test d'acceptation
Niveaux de test
❑ Test d'acceptation
Types de test
❑ Tests fonctionnels / Tests non fonctionnels
Types de test
❑ Tests boîte-blanche / Tests de confirmation / Tests de régression
➢ Tests boîte-blanche : des tests basés sur la structure ou l'implémentation
interne du système. La structure interne peut comprendre le code,
l'architecture, les flux de travail et/ou les flux de données au sein du système
➢ Tests liés aux changements : Lorsque des modifications sont apportées à un
système, que ce soit pour corriger un défaut ou en raison d'une fonctionnalité
nouvelle ou modifiée, des tests devraient être effectués pour confirmer que les
modifications ont corrigé le défaut ou implémenté la fonctionnalité correctement,
et n'ont pas causé de conséquences préjudiciables inattendues.
➢ Test de confirmation : refaire les cas de test qui ont échoué en raison du défaut
➢ Tests de régression : Tester si une correction a accidentellement affecté le
comportement d'autres parties du code Des tests de confirmation et de
régression sont effectués à tous les niveaux de test.
Tests de maintenance
❑ Une fois déployés dans les environnements de production, les logiciels et
les systèmes doivent être maintenus.
❑ Des changements dans les logiciels et les systèmes livrés pour :
✓ Corriger des défauts découverts lors de l'utilisation opérationnelle
✓ Ajouter de nouvelles fonctionnalités, soit pour supprimer ou modifier des
fonctionnalités déjà livrées.
✓ La maintenance est également nécessaire pour préserver ou améliorer les
caractéristiques de qualité non fonctionnelles en particulier la performance, la
compatibilité, la fiabilité, la sécurité et la portabilité.
✓ Le déclassement, par exemple lorsqu'une application arrive en fin de vie
➢ Lorsqu'une application ou un système est mis hors service, il peut être nécessaire de tester la
migration ou l'archivage des données si de longues périodes de conservation des données
sont nécessaires. Il peut également être nécessaire de tester les procédures de
restauration/récupération après l'archivage pour de longues périodes de conservation
Analyse d'impact pour la maintenance
❑ L'analyse d'impact évalue les changements qui ont été apportés afin
d'identifier les conséquences prévues ainsi que des effets secondaires
attendus et possibles d'un changement, et d'identifier les zones du système
qui seront affectées par le changement.
❑ L'analyse d'impact peut être difficile si :
✓ Les spécifications (p. ex., exigences métier, User Stories, architecture) sont
obsolètes ou manquantes
✓ Les cas de test ne sont pas documentés ou sont obsolètes
✓ La traçabilité bidirectionnelle entre les tests et les bases de test n'a pas été
maintenue
✓ Le support de l'outillage est faible ou inexistant
✓ Les personnes impliquées n'ont pas de connaissance du domaine et/ou du système
✓ Une attention insuffisante a été accordée à la maintenabilité du logiciel au cours du
développement
Chap3 : Tests statiques