Académique Documents
Professionnel Documents
Culture Documents
Cours Tests P2
Cours Tests P2
Tests Logiciels
TaReK BeN MeNa
Préparation à la Certification
International Software Testing Qualifications Board
Previously on
2K21 TBM 2
Previously on
Bases de test Scénarios de Test Conditions de test du Scénario ST1
ST1: Vérifiez si l’admin peut TCd1.1: Entrez le nom du pays valide et vérifiez
ajouter un nouveau l'ajout du pays
ST2: Validez si un pays existant TCd1.2: Entrez un espace et vérifiez si le pays est
peut être supprimé par l'admin ajouté.
ST3: Validez si un pays existant TCd1.x: Dans chaque cas, les données spécifiques
peut être mis à jour sont décrites et le but du test est plus précis.
2K21 TBM 3
TESTER PENDANT LE CYCLE DE VIE DU
DÉVELOPPEMENT LOGICIEL
2K21 TBM 4
Cycle de vie séquentiel – Modèle en Cascade
Analyse Besoins
& Faisabilité
Spécification &
Planification
Conception
Globale
Intégration &
§ Les activités de test ont seulement lieu Tests intégration
une fois que toutes les autres activités de
développement sont terminées. Déploiement &
Maintenance
2K21 TBM 5
Cycle de vie séquentiel – Modèle en V
Analyse Besoins Tests
& Faisabilité d’acceptation
2K21 TBM 6
Cycle de vie itératif et incrémental
Expression des Besoins
Spécifica2on Fonc2onnelle
Conception du Système
§ Exemple
− Unified Process (2 à 4 mois)
Conception Conception Concep2on
− Scrum (1 à 4 sem)
Incrément #1 Incrément #2 Incrément #3
− Prototypage (Expérimentale)
§ Chaque caractéristique est testée à Codage Codage Codage
plusieurs niveaux de test au fur et Incrément #1 Incrément #2 Incrément #3
à mesure qu'elle se rapproche de la
livraison Tests Tests Tests
Incrément #1 Incrément #2 Incrément #3
2K21 TBM 7
TYPOLOGIE DE TEST
2K21 TBM 8
Niveaux et Types de Tests
Niveaux de Test
Test d’acceptation
Test Système
Test d’intégration
Test Unitaire
Sélection de Test
Test de performance
Test de non régression
Ce qu’on veut tester
2K21(Objet de Test) TBM 9
TYPOLOGIE DE TEST
NIVEAUX DE TEST
2K21 TBM 10
Niveaux et Types de Tests
Niveaux de Test
Test d’acceptation
Test Système
Test d’intégration
Test Unitaire
Sélection de Test
Test de performance
Test de non régression
Ce qu’on veut tester
2K21(Objet de Test) TBM 11
Tour d’horizon
d
Investissement
-En
d-2
Tests Fonc*onnels (GUI)
Coût
Développeurs &/ QA Team
En
Fiabilité
Temps Tests API
Développeurs &/ QA Team
ion
Effort
rat
Tests d’intégration
Rapidité
Développeurs
ég
Int
Tests de composants
Boite Noire Développeurs
Développeurs
ita
Un
A?en*on : Il faut séparer les tests unitaires (rapide) des tests d’intégrations (plus lent)
02/2K20 Formation Softilys University 12
Niveaux de Tests - Introduction
§ Test unitaire consiste à tester des composants isolément
− Test de fonctions, du comportement d’une classe
− Doivent répondre à des scénarios de test préalablement établis
− Généralement effectué dans les environnements de développement (Eclipse+JUnit)
− Facile à mette en œuvre
− Cible : les méthodes et les classes
§ Test d’intégration consiste à tester un ensemble de composants qui viennent
d’être assemblés. Il comporte 2 types de tests
− Les test de validité – le nouveau module répond à ce qui a été demandé lorsqu’on
l’intègre dans le système global
− Les tests de non régression – L’intégration du nouveau module n’induit pas de
régressions
• fonctionnelles : modification du comportement des modules existants ou
• non fonctionnelles : (instabilité) du système dans sa globalité
− Cible : les composants et le système global
2K21 TBM 13
2 Unit Tests, 0 integration Test
2K21 TBM 14
Niveaux de Tests - Introduction
§ Test système consiste à tester le système sur son futur site d’exploitation dans
des conditions opérationnelles et au-delà (surcharge, défaillance matérielle,...)
− Cible : le système global sur l’architecture informatique du client
2K21 TBM 15
Test Unitaires (de Composants)
§ Objectifs : Tester les composants séparément du système pour :
− Vérifier si les comportements fonctionnels (exactitude des calculs) et non-fonctionnels (recherche
de fuites mémoire) du composant sont tels qu'ils ont été conçus et spécifiés
− Empêcher les défauts de passer à des niveaux de test plus élevés
§ Si les changements de code sont continus (incrémental), les tests de régression automatisés
jouent un rôle clé.
§ Nécessiter de mettre en place des objets fictifs, une virtualisation des services, des bouchons
§ Bases de test
− Conception détaillée, Code, Modèle de données, Spécifications des composants
§ Objets de test
− Composants, modules, Classes
− Code et structures de données, Modules de BD
§ Défauts et défaillances courants
− Fonctionnalité incorrecte (non conforme aux spécifications de conception)
− Problèmes de flux de données
− Code et logique incorrects
2K21 TBM 16
Test d’intégration
§ Objectifs : se concentrent sur les interactions entre les composants ou les systèmes. :
− Vérifier si les comportements fonctionnels et non-fonctionnels des interfaces sont tels qu'ils ont
été conçus et spécifiés
− Trouver des défauts dans les interfaces elles-mêmes ou dans les composants ou systèmes
− peuvent également couvrir les interactions avec des entités externes (p. ex. services Web)
• è Risque, l'organisation qui développe ne contrôle pas les interfaces externes,
§ Bases de test
− Conception du logiciel | Diagrammes de séquence | Spécifications des protocoles d'interface et de
communication | Cas d’utilisation | Architecture au niveau du composant ou du système |
Définitions des interfaces externes
§ Objets de test
− Sous-systèmes | Bases de données | Interfaces | APIs | Micro-services
§ Défauts et défaillances courants
− Données incorrectes, données manquantes ou encodage incorrect des données
− Mauvais séquencement ou synchronisation des appels d'interfaces
− Décalages au niveau des interfaces
2K21 TBM 17
Test système
§ Objectifs : se concentrent sur le comportement d'un système, en considérant les tâches de bout en bout que le
système peut exécuter
− Vérifier si les comportements fonctionnels et non-fonctionnels du système sont tels qu'ils ont été conçus et spécifiés
− Valider que le système est complet et fonctionnera comme prévu
§ L'environnement de test devrait idéalement correspondre à la cible finale ou à l'environnement de production.
§ Bases de test
− Spécifications des exigences système et logicielles (fonctionnelles et non-fonctionnelles)
− Cas d’utilisation ou Epics et User Stories
− Modèles de comportement du système (Diagramme d’activité)
− Diagrammes d’états-transition
− Manuels d'utilisation
§ Objets de test
− Applications, Systèmes Matériel/Logiciel, Systèmes d’exploitation, Configuration du système
§ Défauts et défaillances courants
− Calculs incorrects
− Comportement fonctionnel ou non-fonctionnel inattendu
− Flux de contrôle et/ou de données incorrects au sein du système
− Réalisation incorrecte et incomplète des tâches fonctionnelles de bout en bout
− Incapacité du système à fonctionner correctement dans l'environnements de production
2K21 TBM 18
Test d’acceptation
§ Objectifs : se concentrent sur le comportement du système
− Valider que le système est complet et qu'il fonctionnera comme attendu
− Vérifier que les comportements fonctionnels et non-fonctionnels du système sont tels que spécifiés
du point de vu du Client (utilisateur final)
§ Les formes communes de tests d'acceptation comprennent :
− Tests d'acceptation utilisateur (IHM)
− Tests d'acceptation opérationnelle (Backup - Reprise, Performance, Sécurité)
− Tests d'acceptation contractuelle et réglementaire
− Tests alpha et bêta (COTS)
§ Bases de test
− Processus métier | Exigences utilisateur ou métier | Contrats légaux et normes | Cas d’utilisation
§ Objets de test
− Systèmes sous test, données de configuration
§ Défauts et défaillances courants
− Les workflows du système ne répondent pas aux exigences métier ou utilisateurs
− Les règles métier ne sont pas correctement implémentées
− Le système ne satisfait pas aux exigences contractuelles ou réglementaires
2K21 TBM 19
Résumé
Objec&f Fait par
Tester les modules, classes,
Le développeur du module
Test unitaire opérations, au fur et à mesure de
(avant ou après écriture)
leur développement
Tester l’assemblage des
le développeur du module
Test d’intégration modules, des composants et
ou un autre développeur
leurs interfaces
Tester les fonctionnalités du
Test de système Développeurs
système dans son ensemble
Confirmer que le système est
Test d’acceptation Client
prêt à être livré et installé
2K21 TBM 20
Positionnement des niveaux de test dans un cycle en V
Documents de Conception globale
Spécification des Interfaces
conception +
détaillée Composant Plan d’intégration
Tests Unitaires
testé
Composant
Non testé .
. Tests
Documents de . d’intégration
conception
détaillée Composant
Tests Unitaires Application
testé
Composant intégrée
Non testé Spécification
Systèmes
Spécification
Fonctionnelle Tests Système
Environnement
d’exécution
Application
validée
Exigences Contractuelles
Application Normes
Tests Users
acceptée et
2K21 Opérationnelle TBM
d’acceptation 21
TYPOLOGIE DE TEST
TYPES DE TEST
2K21 TBM 22
Niveaux et Types de Tests
Niveaux de Test
Test d’acceptation
Test Système
Test d’intégration
Test Unitaire
Sélection de Test
Test de performance
Test de non régression
Ce qu’on veut tester
2K21(Objet de Test) TBM 23
Types de Tests – Ce qu’on veut tester
§ Tests nominal ou Test de bon fonctionnement
− Les cas de test correspondent à des données d’entrée valide (Test-to-pass)
§ Tests de robustesse
− Les cas de test correspondent à des données d’entrée invalides (Test-to-fail)
− Règle usuelle : Les tests nominaux sont passés avant les tests de robustesse
§ Tests de performance
− Load Testing (test avec montée en charge)
− Stress Testing (soumis à des demandes de ressources anormales)
2K21 TBM 24
Type de Tests – Sélection de Test
§ Test fonctionnel (Test boîte noire : BN)
− Aucun accès au code ni à l’architecture
− Utilise la description des fonctionnalités du programme (données choisies selon les
paramètres)
I1 O1
I2
I3 O2
2K21 TBM 25
TYPOLOGIE DE TEST
EXEMPLE
2K21 TBM 26
Possibilité d'effectuer tout type de test à tout niveau de test
Niveaux de Test
Test d’acceptation
Test Système
Test d’intégration
Test Unitaire
Sélection de Test
Test de performance
Test de non régression
Ce qu’on veut tester
2K21(Objet de Test) TBM 27
Exemple : Application bancaire
§ Tests fonctionnels
− Test Unitaire
• Tester la classe Compte qui calcul le débit d’un montant.
− Tests d'intégration de composants
• Tester que les informations saisies au niveau de l'interface utilisateur sont
transmises à la couche métier.
− Tests système
• Tester que les titulaires de comptes peuvent demander une ligne de crédit sur leurs
comptes chèques.
− Test d'intégration au niveau système,
• Tester que le système utilise un micro-service externe pour vérifier le taux de devise
d'un titulaire de compte en devise.
− Test d'acceptation,
• Tester que le banquier gère l'approbation ou le refus d'une demande d’ouverture de
compte.
2K21 TBM 28
Exemple : Application bancaire
§ Tests non-fonctionnels
− Test Unitaire
• Test de performance : évaluer le nombre de cycles CPU nécessaires pour effectuer un
calcul de débit complexe.
− Tests d'intégration de composants
• Tests de sécurité : tester la vulnérabilités de débordement de la mémoire tampon dues
aux données transmises de l'interface utilisateur à la couche métier.
− Tests système
• Tests de portabilité : vérifier si la couche de présentation fonctionne sur tous les
navigateurs et appareils mobiles supportés.
− Test d'intégration au niveau système
• Teste de fiabilité : évaluer la robustesse du système lorsque le micro-service
d’autorisation ne répond pas
− Test d'acceptation
• Tester d’utilisabilité : évaluer l'accessibilité de l'interface de traitement de débit pour les
personnes handicapées.
2K21 TBM 29
Exemple : Application bancaire
§ Tests structurels : Boîte Blanche
− Test Unitaire
• Tester la couverture complète des instructions et des décisions pour tous les
composants qui effectuent des calculs financiers.
− Tests d'intégration de composants
• Vérifier comment chaque écran de l'interface du navigateur transmet les données à
l'écran suivant et à la couche métier
− Tests système
• Couvrir les séquences de pages Web qui peuvent se succéder pendant une demande
d’ouverture d’un compte.
− Test d'intégration au niveau système
• Exercer tous les types de requête possibles envoyés au micro-service de calcul de
conversion monétique .
− Test d'acceptation
• Couvrir toutes les structures de fichiers de données financières prises en charge et les
plages de valeurs pour les transferts de banque à banque.
2K21 TBM 30
Exemple : Application bancaire
§ Tests de non-régression
− Test Unitaire
• Tests de régression automatisés sont construits pour chaque composant et inclus
dans le framework d’intégration continue
− Tests d'intégration de composants
• Confirmer les corrections des défauts liés à l'interface au fur et à mesure que ces
corrections sont intégrées dans le référentiel de code.
− Tests système
• Ré-exécuter tous les tests d’un workflow si un écran de ce workflow change.
− Test d'intégration au niveau système,
• Ré-exécuter quotidiennement les tests du micro-services dans le cadre du
déploiement continu
− Test d'acceptation
• Tous les tests échoués précédemment sont ré-exécutés après la correction d'un
défaut constaté lors des tests d'acceptation.
2K21 TBM 31
Let tests get your feature from point A to point B!
2K21 TBM 32
BDD : Principe
§ L'objectif principal de la BDD est de résoudre le problème de communication
entre l'entreprise (y compris le chef de produit), l'équipe d'ingénierie et les
machines.
§ Principes
− BDD encourage l'utilisation de langues simples dans les équipes (ubiquitous
Language)
− Les tests sont souvent écrits du point de vue du client; l'accent est mis sur les
clients et les utilisateurs qui interagissent avec le produit
§ Avantages
− Les scénarios sont des exigences, des critères d'acceptation, des cas de test et des
scripts de test tout en un; il n'est pas nécessaire d'écrire un autre artefact.
− Les Frameworks BDD facilitent la transformation de scénarios en tests automatisés.
• Les étapes sont déjà données par les scénarios - l'ingénieur en automatisation a
simplement besoin d'écrire une méthode / fonction pour effectuer les opérations de
chaque étape.
2K21 TBM 33
Scénario BDD : Syntaxe
§ Format simple, 3 éléments clés (descripteur) dans un scénario BDD
GIVEN (describ ing the context
),
THEN (outco m e)
tco m e)
A N D ( f u r t h e r o u TBM
2K21 34
BDD et User Story
§ Soit l’user story suivant
2K21 TBM 35
Exemples dans un User Story
§ Scénario Simple US #001
eates a LinkedIn Account
Scenario 1: User successfu lly cr
Registration page
GIVEN Ta rek is on the LinkedIn
istration fields
WHEN he enters all required reg
eated
THEN a LinkedIn account is cr
§ Scénario Détaillé
1: User su cc essfu lly cr eates a LinkedIn Account
US #001 - Scenar io
gistration page
GIVEN Ta rek is on LinkedIn Re
reg istration information
WHEN he enters all the required
crire’
AN D he hits ‘Accepter et S’ins
created
THEN his LinkedIn account is
creation page
AN D he is directed to the profile
AN D his confirmation email is
sent
2K21 TBM 36
BDD : Tool - exemple
2K21 TBM 37