Académique Documents
Professionnel Documents
Culture Documents
Objectifs:
1
© 2010 Exigences et spécifications du logiciel, N.Kerzazi
Sommaire
• Mise en contexte
Requirement (TDR)
2
Rappel: Validation & Vérification
• Méthodes de V & V
Validation: Est-ce que le logiciel réalise les fonctions attendues?
Vérification: Est-ce que le logiciel fonctionne correctement?
• Concrètement
Test statique: Relecture du code, spécifications, design, etc;
Test dynamique: Exécution du code pour s’assurer de son bon
fonctionnement;
Vérification symbolique: Run-time checking, execution symbolique,etc;
Vérification formelle: Preuve ou model-checking d’un modèle formel,
raffinement et génération de code.
3
© 2010 Exigences et spécifications du logiciel, N.Kerzazi
Perspective du testeur: Vue traditionnelle
• Qu'est-ce que ce système est censé faire exactement et dans quel ordre?
• Y a-t-il autre chose que le système doit faire ou ne pas faire et qu’on doit
savoir?
• Est-ce qu’on peut commencer tôt les activités liées au test et éviter ainsi
de découvrir des erreurs trop tard???
Plan de Cas
• Plan de test test d’utilisation
Contient
• Cas de test
• Procédure de test
Cas de test
• Script de test
• Couverture du test Fournit des instruction pour
Script de
test
Résultats
du test
© 2010 Exigences et spécifications du logiciel, N.Kerzazi 6
Définition du test
attendus et les résultats obtenus]. IEEE (Standard Glossary of Software Engineering Terminology)
Le test est un processus destructif: un bon test est un test qui trouve
une erreur. Alors que l’activité de programmation est un processus
constructif.
• Avec les tests unitaires du TDD, les jeux de données sont peu représentatifs
sur le plan fonctionnel.
• Les mêmes principes du TDD peuvent être appliqués au niveau fonctionnel
TDR
• Caractéristiques du TDR
Tirer les tests fonctionnels des exigences sans avoir à attendre leur réalisation
pour faire les tests.
Déléguer les tests fonctionnels aux clients.
Intéressant pour des équipes réparties géographiquement.
Possibilité d’avoir dans le même wiki les exigences et les tests qui les vérifient.
Le codage devient la dernière activité avant la livraison du logiciel.
Supportée par des outils
- FIT (http://fit.c2.com)
- Fitnesse (http://www.fitnesse.org)
- Greenpepper (http://www.greenpeppersoftware.com/)
- Microsoft Test & Lab Manager
© 2010 Exigences et spécifications du logiciel, N.Kerzazi 10
Bases de l’approche TDR
• Décrire des tests sous une forme tabulaire dans un Wiki ou une page Web
• Accompagner ce tableau d’un bout de code, appelé fixture, qui fait le lien
entre les tests et les API de l’application
• Le moteur FIT utilise la fixture pour lire le tableau et appeler les API de
l’application avec les paramètres adéquats
• Le moteur FIT retourne le résultat du test dans le même tableau en mettant
en couleur les cases du tableau selon le résultat du test
• Plusieurs catégories de tableaux sont disponibles:
ColumnFixture : pour spécifier des données en entrée et des résultats attendus.
ActionFixture : pour spécifier un enchainement d’actions (décrire des scénarios
de tests)
RowFixture : pour spécifier des lignes de résultats. Généralement utilisé pour
faire des initialisations ou pour vérifier des résultats de recherches
Tableau personnalisé: pour une adaptation spécifique
• Exécution
c: java FileRunner input.html results.html
7 right, 0 wrong, 0 ignored, 0 exceptions
© 2010 Exigences et spécifications du logiciel, N.Kerzazi 12
Approche MBT (Model-based Testing): alternative au TDR
Exigences
• Principe:
Élaborer un modèle à partir duquel on
dérive automatiquement les scripts des Modèle
tests
• La profondeur des tests que l’on peut
Générateur de
générer dépend de la précision du modèle Cas de test
• L’effort est considérable pour les activités
de modélisation Cas de test
• Exemple d’outil
Générateur de
Smartesting Script
(http://www.smartesting.com/)
Scripts de test
Adaptateur
Système
Ces données apparaissent dans les cas de test (le «comment» des
tests)
o Ce sont des exigences de test et NON PAS des tests parce qu’ils ne
décrivent pas les données à insérer.
• Les données ne sont pas pertinentes à ce niveau, ils vont apparaitre
dans les cas de test.
• Valider que vous pouvez insérer ‘Mat Lavallée’ est un cas de test et
non une exigence de test.
15
Pourquoi identifier les exigences de tests?
16
D’où proviennent les exigences des tests
En réalité :
17
Comment les exigences des tests sont elles liées au plan de test?
Un plan de test peut inclure les exigences des tests (ET). Toutefois, si les ET
sont trop longues, ils devraient être séparées: document nommé « Test
Requirements Hierarchy».
18
Progression vers le bas niveau
Exigences d’affaires
M Execute
Cas de test/ M
scénario
Génère
M
1
Procédure de
test/Script
19
Naviguer vers le bas
M
Cas de test/ scénario
Ensuite, nous allons examiner
cette relation:
Génération des exigences des tests
qui nourrit notre processus de tests
Procédure de
test/Script
20
Exemple de guichet automatique (GA) pour pratiquer les ET
• “Les retraits sont entre 20$ et • 2. Qu’est ce qu’il faut valider ? (test
300 $”. de)?
21
Exemple 2: Tester les retraits d’un GA
o "Valider le fait qu’ un montant de retrait valide ne doit pas dépasser le solde du
compte”
o Ce sont des exigences de test et NON des test pas parce qu'ils ne décrivent
pas les données à utiliser (comme 20 $, 40 $, 60 $, 1 $)
22
Exemple: Cas de test/scénario
• Valider qu’on peut faire un retrait d’argent entre 20$ et 300$ en billet de
20$
Cas # P/F $ entrée Résultat attendu Résultat actuel
: : : :
23
Exemple de procédure de test
Procédure
24
Positionnement des ET dans le processus de test
- “Vérifier le …”
- “Tester que…”
Trop haut niveau: ne sera pas utile, trop vague pour générer des
scénarios de test.
Business
Function
Gardez la M
Cas de test/ scénario
perspective
fonctionnelle
en tête!
Procédure de
test/Script
27
Exemple: location de voiture
28
Exemple: location de voiture
29
Mesures de la couverture des tests
• Les exigences des tests (ET) sont le «quoi» tester et sont à la base pour
30
Distinguer entre les # types de test
31
Les trois dimension pour les tests
Cycle de vie
Système
Intégration
Module
unitaire
Caractéristiques
Boite blanche
Boite noire
Niveau
• Trois phases :
Pour chaque donnée d’entrée, calcul de classes d’équivalence sur les
domaines de valeurs,
Choix d’un représentant de chaque classe d’équivalence,
Composition par produit cartésien sur l’ensemble des données
d’entrée pour établir les DT.
• Exemples :
plus de besoin d’avoir des ressources spécialisées sur les exigences et sur
• Les exigences des tests sont la base pour établir des tests complets