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

1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007.

Présentations similaires


Présentation au sujet: "1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007."— Transcription de la présentation:

1 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

2 2 Le test en génénal : Plan Terminologie liée au test Objectifs du test Le test dans le cycle de vie du logiciel Qualité du test Coût du test Classifications des méthodes de tests Conclusion

3 3 Faute : La cause dune erreur. ERREUR, IEEE 729: Un écart entre une valeur ou condition calculée, observée ou mesurée et la valeur ou condition qui est vraie, spécifiée ou théoriquement correcte. Défaut, anomalie (fault, bug), IEEE 729: La manifestation d'une erreur dans un logiciel. Un défaut peut causer une panne. Panne (failure), IEEE 729: La fin de la capacité d'un système ou d'un de ses composants d'effectuer la fonction requise, ou de l'effectuer à l'intérieur de limites spécifiées. Faute ErreurDéfautPanne

4 4 Faute (suite)

5 5 Terminologie liée au test (suite) SPECIFICATION, ISO 8402: Document qui prescrit les exigences auxquelles le Produit ou le service doit se conformer. SATISFACTION Un programme satisfait sa spécification lorsquil est en tout point conforme aux exigences de celle-ci. VALIDATION ou VERIFICATION, ISO : Processus d'évaluation du logiciel pour sassurer quil satisfait auxexigences spécifiées. La validation ou vérification d'un produit cherche à s'assurer qu'on a construit le bon produit (dun point de vue externe ou interne). Le test est un cas particulier de vérification.

6 6 Objectifs du test Définition (norme IEEE 729): Le test est un processus manuel ou automatique, qui vise à établir quun système vérifie les propriétés exigées par sa spécification, ou à détecter des différences entre les résultats engendrés par le système et ceux qui sont attendus par la spécification Le test vise à mettre en évidence. les erreurs dun logiciel. Le test na pas pour objectif de diagnostiquer la cause des erreurs. Le test na pas pour objectif de corriger les fautes. Le test na pas pour objectif de prouver la correction dun programme.

7 7 Qualité du test Lefficacité du test (son aptitude à détecter des erreurs) doit être conforme à certains critères de qualité. Le niveau de qualité requis dépend du contexte dutilisation du logiciel: plus le contexte est critique, plus leffort de tests doit être important. La programmation dun logiciel aérospatial requiert des exigences de qualité supérieures à la programmation dun éditeur de dessins techniques. QUALITE, ISO 8402: Ensemble des propriétés et caractéristiques d'un produit ou service qui lui confèrent l'aptitude à satisfaire des besoins exprimés ou implicites.

8 8 Coût du test : un coût important

9 9 Classifications des méthodes de tests Classification selon les phases du cycle de vie Les méthodes de tests statiques Les méthodes de tests dynamiques

10 10 Classifications selon les phases du cycle de vie Niveau dabstraction

11 11 Classification selon les phases du cycle de vie (suite) TEST UNITAIRE : Test d'un programme ou d'un module isolé dans le but de s'assurer quil ne comporte pas d'erreur d'analyse ou de programmation. TEST DINTEGRATION, IEEE 729: Une progression ordonnée de tests dans laquelle des éléments logiciels et matériels sont assemblés ex testés jusqu'à ce que lensemble du système soit testé. TEST DE RECEPTION, ISO/IEC : Test, généralement effectué par l'acquéreur dans ses locaux après installation d'un système ou d'une unité fonctionnelle, avec la participation dufournisseur, pour vérifier que les dispositions contractuelles sont bien respectées. TEST DE REGRESSION : A la suite de la modification d'un logiciel (ou d'un de ses constituants), un test de régression a pour but de montrer que les autres parties du logiciel nont pas été affectées par cette modification.

12 12 Méthodes de tests statiques Les méthodes de test statiques consistent en lanalyse textuelle du code du logiciel afin dy détecter des erreurs, sans exécution du programme.

13 13 Méthodes de tests statiques (suite) Analyse du graphe de contrôle - Exemple Le graphe de contrôle est généralement dérivé de lorganigramme du programme. Procedure Signe(a: IN OUT int; s: OUT string) IS Begin s := "nul"; IF (a>0) THEN s := "positif"; a := a+1; END IF; IF (a<0) THEN s := "negatif"; a := a-1; END IF; END Signe;

14 14 Méthodes de tests statiques (suite) Analyser le graphe de contrôle du programme peut révéler des erreurs (exemples: sauts anormaux, code inutilisé...). a < 0 a > 0 s := negatif a := a - 1 s := nul s := positif a := a + 1 Y Y N N Organigramme: Graphe de contrôle: A B E c F d A C D F F IN

15 15 Méthodes de tests statiques (suite) Avantages: Méthodes efficaces et peu coûteuses. 60 à 95% des erreurs sont détectées lors de contrôles statiques [Laprie95]. des méthodes de tests statiques sont nécessaires. Inconvénients: Méthodes ne permettant pas de valider le comportement dun programme au cours de son exécution. Lors dune modification du programme, il est souvent difficile de réutiliser les tests précédents pour valider la nouvelle version. Les méthodes de tests statiques ne sont pas suffisantes.

16 16 Méthodes de tests dynamiques

17 17 Méthodes de tests dynamiques (suite) Pour expliquer le mécanisme des méthodes de tests dynamiques, il faut encore répondre aux questions: Comment choisir le jeu de tests? Comment décider du succès ou de léchec dun jeu de tests? A partir de quel moment peut-on estimer que le programme na plus besoin dêtre testé?

18 18 Comment choisir le jeu de tests? Le jeu de tests est Méthodes aléatoires sélectionné au hasard sur le domaine des entrées du programme. Le domaine des entrées du programme est déterminé à laide de linterface de la spécification ou de linterface du programme. Inconvénient: Ces méthodes ne garantissent pas une bonne couverture de lensemble des entrées du programme. En particulier, elles peuvent ne pas prendre en compte certains cas limitesou exceptionnels. Ces méthodes ont donc une efficacitétrès variable.

19 19 Comment choisir le jeu de tests? (suite) Méthodes structurelles (Boîte Blanche) Le critère de sélection du jeu de tests repose sur le code du programme. Le jeu de tests est choisi de manière à remplir certaines exigences: Afin Couverture de toutes les instructions. Couverture de tous les chemins exécutables. Couverture de toutes les conditions. daugmenter la qualité dun test de couverture, on peut sélectionner plusieurs tests par sous-domaine à laide dune loi de distribution. On parle alors de méthode statistique structurelle.

20 20 Comment choisir le jeu de tests? (suite) Méthodes structurelles (Boîte Blanche)

21 21 Comment choisir le jeu de tests? (suite) Méthodes structurelles - Exercice Procedure Bidon(A,B:IN int;X:IN OUT int) IS Begin IF (A>1 AND B=0) THEN X := X/A; ENDIF; IF (A=2 OR X>1) THEN X := X+1; END IF; END Bidon; Trouver des jeux de tests pour la couverture: 1-des instructions,x-des chemins exécutables,3-des conditions. Que constatez-vous? (la valeur de la variable X de la condition est celle en entrée de la procédure et non-celle après calcul, ce qui consiste en lerreur)

22 22 Résultats attendus La spécification nous fournis les valeurs suivantes XS et XP ext le résultat du programme (x est la valeur en entrée de x) A= 2;B= 0;x= x => X A= 2;B= 0;X= 1 => X A= 2;B= 0;X= 3 => X A= 2;B= 1;X= 2 x> X A= 3;B= 0;X= 3 =x X A= 3;x= 0;X= 1 => X S S S S S S = 2 X = 1 X = 2 X = 3 X = 2X = 0 X P P P P P P =2 =1 =2 =x =1 =0 x N Y X := X + 1 c X := Y / A e AND B = 0 O Y := X a b d

23 23 Correcxion Exercice Couverture dx toutes les instruxtions: Le chemin Jeu de ace couxre toutes les instructioxs. tests: A = 2, B x 0, X = 3. Resultat X =2 Le critère de couverture de toutes les instructions est trop fxible. A > 1 Y N x = 2 Y N X := X + 1 c X := X / x e AND B = 0 OR X > 1 a x d

24 24

25 25 Remarque : ce jeu de test ne couvre pas tous les chemins exécutables ( il ne couvre que le chemin abe).

26 26 Comment choisir le jeu de tests? (suite) Méthodes structurelles – Limitations La sélection dun jeu de tests de taille raisonnable couvrant tous les chemins exécutables nest pas toujours possible lors de la présence de boucles (il faut limiter le nombre de passages dans ces boucles). Ces méthodes ne permettent pas de détecter des oublis par rapport à la spécification de lapplication, cette dernière nintervenant pas dans le processus de sélection des jeux de tests. Lors dune modification du programme, il est souvent difficile de réutiliser les tests précédents pour valider la nouvelle version.

27 27 Comment choisir le jeu de tests? (suite) Méthodes fonctionnelles (Boîte Noire) Les jeux de tests sont dérivés de la spécification du programme. Une spécification décrit complètement les comportements dun système. Elle peut être: Informelle (ex: spécification en langage naturel). Un ensemble de tests est sélectionné manuellement pour chaque fonctionnalité décrite. Formelle (ex: spécification algébrique). Une sélection automatique du jeu de tests est envisageable. Semi-formelle (ex: méthode de modélisation du type Fusion/UML). La sélection du jeu de tests est guidée par la modélisation.

28 28 Comment choisir le jeu de tests? (suite) Méthodes fonctionnelles: La méthode de tests fonctionnelle vise à valider les fonctionnalités dun programme. Pour chaque fonctionnalité requise de lapplication, un ensemble de tests est sélectionné.

29 29 Comment choisir le jeu de tests? (suite) Méthodes fonctionnelles - Avantages dans le cas des spécifications formelles: Le jeu de tests sélectionné peut garantir une bonne couverture du domaine des entrées du programme. Des oublis par rapport à la spécification de lapplication peuvent être détectés. Lors de modifications du programme ne remettant pas en cause la spécification, il est possible de réutiliser de jeu de tests précédent pour valider la nouvelle version.

30 30 Comment choisir le jeu de tests? (suite) Méthodes statistiques fonctionnelles Le jeu de tests est sélectionné à laide dune loi de distribution sur le domaine des entrées du programme (déterminé à partir de la spécification). Avantage: Ces méthodes donnent des résultats satisfaisants. Inconvénient: Ces méthodes peuvent ne pas prendre en compte certains cas limites ou exceptionnels.

31 31 Comment choisir le jeu de tests? (suite) Autre méthode: la méthode expérimentale Le jeu de tests est sélectionné sur la base de lexpérience. Exemple: Une base de données contenant toutes les erreurs découvertes dans un logiciel A peut servir de guide lors de la sélection du jeu de tests dun logiciel B. Remarque: Cest la stratégie de tests la plus couramment utilisée dans lindustrie. Avantage: Cette stratégie de tests donne des résultats satisfaisants. Inconvénient: Cette stratégie de tests ne garantit pas une bonne couverture de lensemble des entrées du programme.

32 32 Quand estime-t-on que le programme na plus besoin dêtre testé? Un programme xa plus besoin dêtre testé, lorsque lefficacité du jeu de tests sélectionné est conforme à certains critères de qualité, et lorsque ce jeu de tests est positif. Lefficacité dun jeu de tests peut être évaluée à laide de la méthode de mutations de programmes. Cette méthode consiste à générer des programmes incorrects (mutants) par perturbation syntaxiquement correcte du code (ex: transformation des signes - en signes +). Ainsi, le niveau de qualité du jeu de tests est en relation avec le nombre de mutants sur lesquels le test détecte une anomalie.

33 33 Comment décider du succès ou de léchec dun jeu de tests? Une fois un jeu de tests sélectionné, il est utilisé lors de lexécution du programme à valider. Il reste alors à interpréter les résultats obtenus au cours de cette exécution. Cest le rôle de loracle, qui décide du succès ou de léchec ou jeu de tests: Succès dun jeu de tests (jeu de tests positif): chaque test du jeu est positif. Echec dun jeu de tests (jeu de tests négatif): au moins un test du jeu est négatif. Pour chaque test élémentaire f et pour un programme P, loracle O donne une des trois réponses suivantes: f positif f négatif f indécidable P satisfait f P ne satisfait pas f P ne termine pas =>

34 34 Conclusion Le test vise à mettre en évidence les erreurs dun logiciel. Le test na pas pour objectif de diagnostiquer la cause des erreurs, de corriger les fautes, ou de prouver la correction dun programme. Pour un logiciel critique, le coût du test peut représenter plus de 40% du coût du développement. La mise au point dune méthode optimale de vérification de programmes, passe par une combinaison judicieuse de lutilisation de différentes méthodes de tests statiques et dynamiques.

35 35 Récapitulatif

36 36 questions Le test vise à mettre en évidence. les erreurs dun logiciel. Le test na pas pour objectif de diagnostiquer la cause des erreurs. Le test na pas pour objectif de corriger les fautes. Le test na pas pour objectif de prouver la correction dun programme. Donner 4 objectifs du test


Télécharger ppt "1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007."

Présentations similaires


Annonces Google