Istqb Cour Chapitre 4
Istqb Cour Chapitre 4
Istqb Cour Chapitre 4
ISTQB®
Chapitres
0 Introduction
3 Tests statiques
4 Techniques de test:
Fondamentaux
des tests Q/A?
Une partie importante du rôle d'un testeur est de se familiariser avec les principaux modèles
de cycle de vie du développement logiciel afin que les activités de test adaptées puissent
être réalisées.
L'analyse et la conception des tests pour un niveau de test donné commencent au cours de l’activité de développement
correspondante.
Les testeurs :
- Participent aux discussions pour définir et affiner les exigences et la conception
- Sont impliqués dans la revue des produits d'activités (p. ex. les exigences, la conception, les User Stories, etc.) 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 ».
Comment ?
Un modèle de cycle de vie du développement logiciel approprié doit être choisi et adapté en fonction du:
- Contexte/l'objectif du projet
- Caractéristiques du produit
- Type du produit développé
- Priorités métier (ex., délai de mise sur le marché)
- Risques produit et projet identifiés
Définition des
besoins
Conception
(Syst. Design)
Codage
Testing
Maintenance
Chaque itération délivre un logiciel opérationnel qui est un sous-ensemble croissant de l'ensemble global
des caractéristiques jusqu'à ce que le logiciel final soit livré ou que le développement soit arrêté.
Selon le contexte du projet, il peut être nécessaire de combiner ou de réorganiser les niveaux de test et/ou les
activités de test.
Les modèles de cycle de vie du développement logiciel eux-mêmes peuvent être combinés.
Par exemple:
- Le modèle en V peut être utilisé pour le développement et le test des systèmes back-end et de leurs
intégrations
- Le modèle de développement Agile peut être utilisé pour développer et tester l'interface utilisateur front-end
(IHM) et les fonctionnalités.
Test de composants
Aussi appelé « Test unitaires »
Exemples de produits d’activités qui peuvent être utilisés comme bases de test
pour les tests de composants :
- Conception détaillée
- Code
- Modèle de données
Objets de test
Les objets de test habituels pour les tests de composants sont :
- Composants, unités ou modules
- Code et structures de données
- Classes
- Modules de bases de données.
Test d’intégration
Test d’intégration
Test d’intégration
Test système
- Tester le système dans son ensemble: tous les modules / composants sont intégrés afin de vérifier si le système
est conforme au exigences spécifiées.
- Tester le système sur son futur site d’exploitation dans des conditions opérationnelles et au- delà (surcharge,
défaillance matérielle,…)
- Tester la fiabilité et la performance de l'ensemble du système, tant au niveau fonctionnel que structurel,
plutôt que de ses composants.
- S'assure que le système complet, matériel et logiciel, correspond bien à la définition des besoins tels qu'ils
avaient été exprimés.
Test système
Test système
- Tests de stress : tester le produit au-delà des attentes non fonctionnelles du client. Par exemple, un
système de sauvegarde qui doit tout sauvegarder deux fois par jour, le tester en mode trois fois par jour.
- Tests de performance : évaluation par rapport à des exigences de performances données. Par exemple, un
moteur de recherche doit renvoyer des résultats en moins de 30 millisecondes.
- Tests d'utilisabilité : vérifier les exigences d’apprentissage demandées à un utilisateur normal pour pouvoir
utiliser le produit.
Test d’acceptation
UAT (user acceptance testing, ou recette utilisateur)
Les tests d’acceptation sont des tests formalisés par le client, ils sont exigés par le client
pour qu’il accepte le produit.
Test d’acceptation est la dernière étape avant le mise en œuvre opérationnelle du système.
→ On teste le système dans les conditions définies par le futur utilisateur, plutôt
que par le développeur.
Les tests d'acceptation révèlent souvent des omissions ou des erreurs dans la définition de
besoins.
→ Des erreurs de validation et non de vérification
• Utilisés pour vérifier les fonctions d'une application logicielle conformément aux
spécifications des exigences.
Tests non-fonctionnels
Les tests non-fonctionnels permettent plutôt de répondre à des questions tel que:« Est-ce que cette classe
peut être utilisée par 1000 threads en même temps sans erreur ? ».
Tests non-fonctionnels
Test de performance
Tests non-fonctionnels
Test de sécurité
Les tests de sécurité et de contrôle d’accès portent sur deux domaines clés
de la sécurité :
- La sécurité au niveau de l’application incluant l’accès aux fonctions de
traitement de données.
- La sécurité au niveau du système, incluant la connexion à distance au
système.
Tester la manière avec laquelle le système protège contre les accès interne
ou externes pas autorisés.
Dans ce type de test, les testeurs accèdent au code source ce qui leur permet
de fixer
- des valeurs d’entrées afin d'assurer que :
- Toutes les conditions d'arrêt de boucle ont été vérifiées .
- Toutes les branches d'une instruction conditionnelle ont été testées
- Les structures de données internes ont été testées (pour assurer la validité).
Test de confirmation:
Tests dynamiques effectués après la correction de défauts dans
le but de confirmer que les défaillances causées par ces défauts
ne se produisent plus.
Tests de régression :
Consiste à effectuer des essais sur les parties (composants) qui ne sont pas touchées
directement par une modification.
Vise à s’assurer qu’il n’y a pas eu d’effets secondaires imprévus lors des modifications.
La définition officielle est : ‘Des tests sélectifs d'un système ou composants pour vérifier que les
modifications n'ont pas entrainé des effets inattendus"
Groupe d’activités de test dont l’objectif est de tester un composant ou système sur un
ou plusieurs attributs liés entre eux.
Un type de test est focalisé sur un objectif de test spécifique (ex. : test de fiabilité,
d’utilisabilité, de régression, etc) et peut couvrir un ou plusieurs niveaux de test et une
ou plusieurs phases de test
On peut prendre les différents « types de test » et définir à quels niveaux ils se peuvent généralement se
situer:
- Les tests de régression → peuvent/doivent être effectués sur tous les niveaux.
- Les tests boites blanches → peuvent être effectués sur tous les niveaux même si en général on les voit
moins au niveau des tests d’acceptation.
Une fois déployés dans les environnements de production, les logiciels et les
systèmes doivent être maintenus.
La maintenance est également nécessaire pour préserver ou améliorer les caractéristiques de qualité non-
fonctionnelles du composant ou du système pendant toute sa durée de vie, en particulier la performance, la
compatibilité, la fiabilité, la sécurité et la portabilité
Il y a plusieurs raisons pour lesquelles la maintenance logicielle, et donc les tests de maintenance, ont lieu, à la fois
pour les changements planifiés et non planifiés:
- Modification, comme des améliorations planifiées (p. ex., basées sur les versions)
- Les changements correctifs et d'urgence
- Les changements de l'environnement opérationnel (comme des mises à niveau planifiées du système
d'exploitation ou de la base de données)
- Les correctifs pour les défauts et les vulnérabilités
- Migration d'une plate-forme à une autre, qui peut nécessiter des tests opérationnels du nouvel
environnement ainsi que du logiciel modifié, ou des tests de conversion de données lorsque les données
d'une autre application seront migrées dans le système en cours de maintenance.
- Déclassement, par exemple lorsqu'une application arrive en fin de vie.
ISTIC - Test Logiciel 41
Tester pendant le cycle de vie du développement logiciel
tests de maintenance
- Evalue les changements qui ont été apportés pour une version de maintenance afin d'identifier les
conséquences prévues ainsi que des effets secondaires attendus et possibles d'un changement
- Identifie l'impact d'un changement sur les tests existants. Les effets secondaires et les zones affectées dans le
système doivent être testés pour les régressions, éventuellement après la mise à jour des tests existants
affectés par le changement.
- L'analyse d'impact peut être effectuée avant qu'un changement ne soit apporté, pour aider à déterminer si le
changement devrait être apporté en fonction des conséquences potentielles dans d'autres parties du système.
- 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