Introduction Basé sur la spécification ou l'interface du programme P On peut appliquer le critère de couverture complète du domaine



Documents pareils
Quatrième partie IV. Test. Test 15 février / 71

1S Modèles de rédaction Enoncés

Correction : E = Soit E = -1,6. F = 12 Soit F = y = 11. et G = -2z + 4y G = 2 6 = 3 G = G =

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Si deux droites sont parallèles à une même troisième. alors les deux droites sont parallèles entre elles. alors

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Corrigé du baccalauréat S Asie 21 juin 2010

Angles orientés et trigonométrie

Mathématiques I Section Architecture, EPFL

Priorités de calcul :

Rappels sur les suites - Algorithme

5 ème Chapitre 4 Triangles

Rappels Entrées -Sorties

Vérification et Validation

Cabri et le programme de géométrie au secondaire au Québec

Système binaire. Algèbre booléenne

Cours d Analyse. Fonctions de plusieurs variables

Les diagrammes de modélisation

Algèbre binaire et Circuits logiques ( )

Cours de Master Recherche

Objets Combinatoires élementaires

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

Représentation géométrique d un nombre complexe

Baccalauréat S Nombres complexes Index des exercices sur les complexes de septembre 1999 à juin 2012 Tapuscrit : DENIS VERGÈS

Resolution limit in community detection

Informatique Générale

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

TP 1. Prise en main du langage Python

Introduction au maillage pour le calcul scientifique

Du Premier au Second Degré

Initiation à la programmation en Python

Qu est-ce qu une probabilité?

UE C avancé cours 1: introduction et révisions

LES TYPES DE DONNÉES DU LANGAGE PASCAL

IFT1215 Introduction aux systèmes informatiques

Chap. 3: Le modèle de données entité-association (E.A.)

Table des matières. I Mise à niveau 11. Préface

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Représentation d un entier en base b

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

Corrigé du baccalauréat S Pondichéry 12 avril 2007

Les Angles. I) Angles complémentaires, angles supplémentaires. 1) Angles complémentaires. 2 Angles supplémentaires. a) Définition.

DOCM Solutions officielles = n 2 10.

Test de logiciel dans les méthodes agiles

Thème 17: Optimisation

ALGORITHMIQUE ET PROGRAMMATION En C

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

OCL - Object Constraint Language

6. Les différents types de démonstrations

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

Séance 1 Introduction aux bases de données

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Activités numériques [13 Points]

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

MPI Activité.10 : Logique binaire Portes logiques

Atelier Formation Pages sur ipad Pages sur ipad

Trois personnes mangent dans un restaurant. Le serveur

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Introduction à la théorie des graphes. Solutions des exercices

Chapitre 10 Arithmétique réelle

Leçon N 4 : Statistiques à deux variables

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Chapitre 2 : Vecteurs

Logiciel de Base. I. Représentation des nombres

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

VOS PREMIERS PAS AVEC TRACENPOCHE

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Algorithmique et Programmation, IMA

STAGE IREM 0- Premiers pas en Python

Université Paris-Dauphine DUMI2E 1ère année, Applications

Analyse des Besoins (Spécifications)

Fonctions de deux variables. Mai 2011

Chapitre 14. La diagonale du carré

Diviser un nombre décimal par 10 ; 100 ; 1 000

Raisonnement probabiliste

Utilisation des tableaux sémantiques dans les logiques de description

Chapitre 2 Le problème de l unicité des solutions

Qualité du logiciel: Méthodes de test

Big Data et Graphes : Quelques pistes de recherche

CORRECTION EXERCICES ALGORITHME 1

Pourquoi l apprentissage?

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

UML (Diagramme de classes) Unified Modeling Language

EBS 204 E C B S. Publication : Novembre 96

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -

Grammaires d unification

Méthodes de développement. Analyse des exigences (spécification)

Le théorème de Thalès et sa réciproque

Chapitre 2. Eléments pour comprendre un énoncé

Excel 2007 Niveau 3 Page 1

Présentation du cours de mathématiques de D.A.E.U. B, remise à niveau

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

«Aucune investigation humaine ne peut être qualifiée de science véritable si elle ne peut être démontrée mathématiquement.

Transcription:

Le test ''boîte noire'' LOG4500 Validation et tests de logiciels Professeur: John MULLINS Introduction asé sur la spécification ou l'interface du programme P On peut appliquer le critère de couverture complète du domaine P vu comme une fonction des données D dans les résultats R: P: D R On partitionne D en classes D i 1. D D 0 D 2 D n 2. i i, j n j D i D j 3. On sélectionne un seul cas de test par classe Hypothèse de test: P(d) est correct si et seulement si P(d`) est correct i d, d ' D i Introduction (suite) pproche empirique: Exemple lire: 1. [Ghezzi and al.], sections 6.3.2-6.3.3 2. [Jorgensen], chap. 6 3. [Roper], sections 3.2.12-3.2.13-3.2.14 4. [eizer], chap. 7 Si la valeur n de l'entrée est <0, alors un message d'erreur est imprimé. Si 0=<n<20, alors la valeur exacte de n! est imprimée. Si 20=<n=<200, alors une approximation de n! est imprimée en virgule flottante avec une précision de 0.1%. Si n>200, un message d'erreur est imprimé.

Les classes D 2 D 4 Solution n:n 0 n:0 n 20 n:20 n 200 n:n 200 forment une partition des entiers et le jeu T 10, 5,75 satisfait le critère de couverture totale Le problème du triangle Entrée: 3 entiers > 0 (longueurs de cotés) Sortie:Type de triangle déterminé par les 3 entiers (équilatéral, isocèle, scalène, autre) (a, b, c) Type de triangle Triangle? Type Solution Hypothèse : On peut identifier la classe de d par sa valeur P(d) D 2 D 4 H 0 = {(a, b, c): abc est équilatéral} = {(a, b, c): abc est isocèle} = {(a, b, c): abc est scalène} = {(a, b, c): abc n'est pas un triangle} D 22 D 23 D 41 D 42 D 43 Solution raffinée = {(a, b, c): est equilatéral} = {(a, b, c): est isocèle et a=b, a<>c} = {(a, b, c): est isocèle et a=c, b<>c} = {(a, b, c): est isocèle et b=c, a<>b} = {(a, b, c): est scalène et a<>b<>c}} = {(a, b, c): pas un triangle et a >= b+c} = {(a, b, c): pas un triangle et b >= a+c} = {(a, b, c): pas un triangle et c >= a+b}

Génération de tests pproches structurées 1. (3, 3, 3) 2. (2, 2, 3) 3. (2, 3, 2) 4. (3, 2, 2) 5. (3, 4, 5) 6. (6, 3, 3) asée sur une grammaire NF asée sur la table de décision asée sur le graphe de cause-effet 7. (3, 6, 3) 8. (3, 3, 6) Grammaire NF Déf.: Une grammaire est un ensemble de règles qui définit toutes les constructions valides d'un langage. Une grammaire est formée: 1. Un ensemble de symboles terminaux 2. Un ensemble de symboles non-terminaux 3. Un ensemble de productions de la forme x:=y où x est un symbole non-terminal et y, une chaîne quelconque de symboles (terminaux ou non). 4. Un symbole initial (non-terminal distingué) Langage d'une calculatrice Terminaux: 0, 1, 2,..., 9, +, -, *, /, =,. Non-terminaux: calculation, expression, value, number, unsigned, digit, sign, operator Productions: 1. <calculation> := <expression> = 2. <expression> := <value> <value><operator><expression 3. <value> := <number> <sign><number> 4. <number> := <unsigned> <unsigned>. <unsigned> 5. <unsigned> := <digit> <digit><unsigned> 6. <digit> := 0 1 2 3 4 5 6 7 8 9 7. <sign> := + - 8. <operator> := + - * /

Langage d'une calculatrice (suite) Critère de test: couverture complète des règles à partir du symbole initial Pour chaque règle, générer une entrée valide en partant du symbole initial, telle que la règle est appliquée Procédure: Dérivation descendante (top-down) S'assurer que tous les terminaux apparaissent dans au moins une règle. Utilisation typique: validation de données 1. [eizer], chap. 8 2. [Ghezzi and al.] section 6.3.4.2 Génération de tests: exemple 6 + 3 / 1 2 = Digit Operator Digit Operator Digit Digit Number Number Value Value Number Value Expresion Expresion Expresion Calculation Diagrammes de syntaxe On étend la notation NF: choix multiple: (ou exclusif) option: [ ] (0 ou 1 fois le symbole entre crochets) répétition: { } (0 ou plusieurs fois le symbole) noeuds du diagramme: symboles 1. terminaux: ovales 2. non-terminaux: rectangles Diagramme syntaxique: exemple <but> := [a] b {c} génère: a, ab, bc, abc, bcc, abcc, bccc, abccc,... 1. <calculation> := <expression> + 2. <expression> := <value> [<operator><expression>] 3. <value> := [<sign>] <number> 4. <number> := <unsigned> [. <unsigned>] 5. <unsigned> := <digit> {<digit>} 6. <digit> := 0 1 2 3 4 5 6 7 8 9 7. <sign> := + - 8. <operator> := + - * /

Table de décision Utile dans le cas des applications complexes de traitement de données Permet de vérifier la complétude Critère de couverture est assurée par 11 cas de test a<b+c F - - V V V V V V V V b<a+c - F V V V V V V V V V c<a+b - - F V V V V V V V V a=b - - - V V V V F F F F a=c - - - V V F F V V F F b=c - - - V F V F V F V F Niet Scal Iso Équi Imposs. Table de décision (suite) Inconvénient: croissance exponentielle du nombre de cas de tests relativement au nombre de conditions. lire: 1. [Jorgensen], chap. 7 2. [Ghezzi and al.] section 6.3.4.2 Graphes cause-effet Graphes C-E: syntaxe Les graphes cause-effet fournissent une représentation concise des combinaisons logiques des conditions et des actions correspondantes 1. Les causes: conditions d'entrée 2. Les effets: actions lire: 1. [Ghezzi and al.] section 6.3.4.2 2. [Roper] section 3.2.16 Op 1.nd () 2.Or (\/) 3.Nand () 4.Nor (\/) Identité Not I: u moins 1 E: u plus 1 O: Exactement 1 R: Exiges M: Masques I E C O R M

Graphes C-E: sémantique I \/ M \/ O C4 E5 \/ C5 R C6 I O C4 C5 C6 Table de décision associée R \/ \/ \/ E5 M V V V V V V V V V F F F V V V V F V F V V F V F C4 F F V V F V V F C5 F V V V F F F V C6 F V V V F F F V E5 Exemple Exemple (suite) Le programme prends en entrée un entier entre 1 et 20 à l'usager, une chaîne de caractères de cette longueur et un caractère et retourne sa position dans la chaîne ou un message d'erreur. L'usager a la posibilité de chercher d'autres caractères. Les causes: 1. Entier entre 1 et 20 2. Caractère à chercher est dans la chaîne 3. Cherche un autre caractère? Les effets: 1. Entier hors portée 2. Position du caractère demandé est retourné 3. Caractère pas trouvé 4. Fin du programme Table de décision associée F V V - - V F - - V V F Conception du jeu de test <entier><chaîne><car>{<booléen><car>} 23 3, abc, c, oui, k, non

nalyse des conditions de bord Description: Utilisée en conjonction avec la technique de partitionnement. Consiste à analyser le comportement des valeurs de bord des classes de la partition Permet de contrôler l'explosion combinatoire des cas de test e.g. Évite de scinder la classe [1..20] en 3 classes {1}, [2..19], {20} (8 fois plus de cas de test) Moins efficace que l'analyse de partition pure nalyse de bord: Exemple Table de décision associée F V V - - V F - - V V F Jeu de test complémentaire <entier><chaîne><car>{<booléen><car>} 21 0 1, a, a, oui,, non) 20, abcdefghijklmnopqrst, a, oui, u, non