La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux

Présentations similaires


Présentation au sujet: "J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux"— Transcription de la présentation:

1 J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux

2 Rappels – Définitions – Pourquoi tester ? – Quand tester ? – Niveaux de test – Types de test – Les limites du test – Les techniques du test Procédural vs Objet Le test en Orienté Objet – Niveaux de tests – Tests de validation / use cases – Tests dintégration –Tests unitaires

3 Définition IEEE-STD "Le test est l'exécution d'un système ou d'un composant par des moyens automatiques ou manuels, pour vérifier qu'il répond à ses spécifications ou identifier les différences entre les résultats attendus et les résultats observés" Questions: peut-on tester sans – spécifications / résultats attendus l'exécution d'un système ou d'un composant

4 Cas de test (jeu) Un cas de test spécifie –Létat de limplantation sous test (IUT) et de son environnement avant le test –Le vecteur des entrées et/ou les conditions –Le résultat attendu messages, exceptions valeurs retournées état résultant de lIUT et de son environnement Implementation Under Test (IUT) System Under Test (SUT)

5 Pourquoi tester? Fonctionnalités manquantes Fonctionnalités incorrectes Effets de bord, interactions indésirables Mauvaises performances, pbs temps réel, deadlock… Sorties incorrectes

6 Quand « tester » ? SpécificationConceptionCodageTestsValidationMaintenance Resources pour corriger les fautes Ni trop tot ni trop tard

7 Quand « tester » ? SpécificationConceptionCodageTestsValidationMaintenance Ressources pour corriger les fautes Ni trop tot ni trop tard Texte et/ou Modeles (UML?)? UML? Java? ?? UserSystem Spec Concept Codage Tests System verification Validation Exigences

8 Niveaux de test Tests de validation Tests dintégration Tests unitaires PréparationPréparation exécutionexécution

9 Niveaux de test- chaque (sub)system Tests de validation Tests dintégration Tests unitaire PréparationPréparation exécutionexécution System Subsystem

10 Types de tests Tests fonctionnels Tests structurels Tests de (non) régression Tests de robustesse Tests de performance

11 Les limites du test Lespace des entrées Les séquences dexécution Sensibilité aux fautes

12 Explosion combinatoire EX : dessiner 1 triangle Hypothèse : Coordonnées [1..10] –10 4 possibilités de dessiner 1 ligne –10 12 possibilités de dessiner 3 lignes Hypothèse : écran 1024x768 –2, possibilités Quest: % valid?

13 Les séquences dexécution for (int i=0; i

14 Les séquences dexécution (n=1) for (int i=0; i

15 Les séquences dexécution

16 Sensibilité aux fautes short scale(short j) { j = j -1; // devrait être j = j+1 j = j/30000; return j; }

17 Sensibilité aux fautes valeurs possibles 6 rendent une valeur incorrecte : ,9908 % de risque de ne pas trouver lerreur si test aléatoire.

18 Autres limitations Tester un programme permet de montrer la présence de fautes mais en aucun cas leur absence Les tests basés sur une implémentation ne peut révéler des omissions car le code manquant ne peut pas être testé On ne peut jamais être sûr quun système de test est correct

19 Techniques de test Classes déquivalence (éviter lexplosion combinatoire) Graphe de cause à effet (identifier et analyser les relations devant être modélisées dans une table de décision) Tables de décision (concevoir des cas de test)

20 Classes déquivalence 8 Classes valides –triangle scalèle –triangle isocèle –équilatéral 25 Classes invalides –1 valeur = 0 –3 valeurs = 0 –1 valeur négative –triangle isocèle plat –3 valeurs telles que la somme de 2 dentre elles < à la 3ème –1 valeur non numérique –1 valeur manquante –triangle scalène plat –1 valeur max

21

22 Table de décision

23

24 Simplification: Precondition a<=b<=c Not a triangle: c>=b+a

25 Graphe de cause à effet Principe : représenter la spécification sous forme dun graphe –On définit les états dentrées et les états de sorties –On construit le graphe à laide de connecteurs logiques (et, ou, négation) Exemple : soit la spécification suivante: –Tout identificateur de voiture doit commencer par les lettres A, B ou C et avoir comme 2ème caractère la lettre X. Les messages M1 et M2 sont émis respectivement en cas derreur sur le premier ou le second caractère. Si lidentificateur est correct, il est inséré dans la base de données.

26 Graphe de cause à effet V V E1 E2 E3 E4 S2 S3 S1

27 Graphe de cause à effet V V E1 E2 E3 E4 S2 S3 S1 inséré dans la base de données ABCXABCX message M1 message M2

28 Table de décision E11000X E20100X E30010X E4111X0 S S S311100

29 Table de décision: incoherence E11000X E20100X E30010X E4101X0 S S S311100

30 Table de décision: redundancy E11000X E20100X E30010X E4101X0 S S S310100

31 Table de décision: incomplete E11000X E20100X E30010X E4101X0 S S S ???0101???

32 Diagramme dactivité ECRIRE BD MESSAGE M2 X X [1er CARACTERE == A] ECRIRE BD MESSAGE M2 X X [1er CARACTERE == B] ECRIRE BD MESSAGE M2 X X [1er CARACTERE == C] MESSAGE M1 [1er CARACTERE ! = ….]

33 Diagramme dactivité ECRIRE BD MESSAGE M2 X X [1er CARACTERE == A] ECRIRE BD MESSAGE M2 X X [1er CARACTERE == B] ECRIRE BD MESSAGE M2 X X [1er CARACTERE == C] MESSAGE M1 [1er CARACTERE ! = ….] MessageM2 X X 2eme Interpretation?

34 Orienté Objet – (UML) Niveau Application (spécification) –Diagramme des cas dutilisation (Use cases) Niveau Sous-Système (conception) –Diagramme des classes (ébauche) –Diagrammes de séquence –Diagrammes de transitions détats Niveau Classes (conception détaillée) –Classes détaillées

35 Comparaison – effort de test (1) Lire 3 valeurs entières. Ces trois valeurs sont interprétées comme représentant les longueurs des côtés dun triangle. Le programme imprime un message qui établit que le triangle est isocèle, équilatéral ou scalène.

36 Comparaison – effort de test (2) Programmation procédurale –33 cas de tests Programmation objet –58 cas de tests (26 sont les mêmes que ci- dessus, 32 sont dûs à la programmation objet)

37 FIGURE OUVERTE FERMEE SEGMENT MULTI-SEG ELLIPSE CERCLE POLYGONE TRIANGLE QUADRILATERE…..

38 TRIANGLE SEGMENT POINT

39 Le test en orienté objet OO vs Non OO –System tests - use cases –Integration tests- class, sequence, interaction –Unit tests- class/methods –Regression tests- inheritance? –Automated testing- re-use? –UML- comment utiliser pour tester?

40

41 Tests de validation Trouver les emprunts en retard –Tester le délai autorisé (fonction du type de client et du type de document) - 9 cas de test –Tester quun client peut avoir plusieurs documents en retard –Tester que la fiche demprunt est supprimée lorsque le document est rendu

42 Le test en orienté objet Au niveau sous-système –test des associations, des agrégations (diagramme de classes) multiplicité création, destruction –test de séquences (diagramme de séquence) construction dun graphe de flot –test des exceptions controlées

43 Diagramme de classes

44 Niveau Sous-Système Triangle Segment Mediatheque Document LettreRappelFicheEmprunt 0..1

45 Classe FicheEmprunt Multiplicité –tester quune fiche demprunt ne concerne quun et un seul client et quun et un seul document –tester quune fiche demprunt ne peut référencer quau plus une lettre de rappel. –tester que plusieurs fiches demprunts peuvent concerner un même client

46 Création Test de validation (raffinement) –tester que dateLimite -DateEmprunt = délai autorisé (Test unitaire) –tester que si dateLimite dépassée alors depasse = true. Classe FicheEmprunt

47 Le test en orienté objet Tests dintégration (diagramme de classes => arbre des dépendances) Techniques –big-bang –bottom-up –top-down

48 FicheEmprunt

49 Test de validation (traçage) –Tester que la fiche demprunt est supprimée lorsque le document est rendu Création –Tester que depasse = false Tests de transition détats –Tester que dateJour>dateLimite alors depasse = true (raffinement du test unitaire correspondant) FicheEmprunt

50 Tester les actions liées aux états et aux transitions d états. FicheEmprunt

51

52 Tester la chronologie des actions –dn = document.dureeEmprunt() –dateLimite = client.dateRetour(dateEmprunt, dn) –document.emprunter () –Client.emprunter () –tn =document.tarifEmprunt() –Tarif = client.sommeDue(tn) FicheEmprunt

53 Le test en orienté objet Au niveau de la classe –test des méthodes concevoir pour tester graphe de contrôle –test des séquences dactivation des méthodes diagramme de transition détats –test des méthodes héritées diagramme de classes

54 Concevoir pour Tester lire I,J; débutCas cas I = 5 et J < 4 alors M = 23; cas I = 5 et J >= 4 alors M = J + 16; cas (J + 1) < I et I<0 alors M = 4I +J; cas (J + 1) = 0 et I /= 5 alors M = 5I + 2 cas (J + 1) >= I et J < 2 alors M = 2I + 3J - 4; cas (J + 1) >= I et J>= 2 et I /= 5 alors M = 3I +2J –2; finCas écrire M; lire I,J; si I <= J + 1 alorsK = I + J -1 sinonK = 2I + 1 finsi si K >= I+1 alorsL = I + 1 sinonL = J - 1 finsi si I = 5 alors M = 2L + K sinonM = L + 2K - 1 finsi écrire M;

55 Le test en orienté objet Linteraction de méthodes (individuellement correctes) de classes et sous-classes peut générer des erreurs. => Ces interactions doivent être systématiquement exercées.

56 Le test en orienté objet Omettre de tester les interactions dune méthode redéfinie dans la hierarchie de classe est facile. => Les suites de tests conçues pour les superclasses doivent être réexécutées sur les sous-classes et conçues de façon à pouvoir être réutilisés pour tester nimporte quelle sous-classe

57 Le test en orienté objet La difficulté et la complexité dimplémentation des contraintes de multiplicité peut facilement conduire à des erreurs quand un élément est ajouté, mis à jour, supprimé. => Limplémentation de la multiplicité doit être systématiquement exercée.

58 Le test en orienté objet Des classes avec des contraintes séquencielles sur lactivation des méthodes et leurs clients peuvent avoir des erreurs de séquencement. => Le comportement requis doit être testé en utilisant un modèle de machine à états.


Télécharger ppt "J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux"

Présentations similaires


Annonces Google