Test de Systèmes Informatiques

Dimension: px
Commencer à balayer dès la page:

Download "Test de Systèmes Informatiques"

Transcription

1 Test de Systèmes Informatiques Première partie : Introduction au sujet Deuxième partie : concepts et problèmes Troisième partie : approches formelles, 2 exemples septembre 2011 Test de Systèmes Informatiques 1

2 Qu est-ce-que le test en Informatique? «We know less about the theory of testing, which we do often, than about the theory of program proving, which we do seldom» Goodenough J. B., Gerhart S., IEEE Transactions on Software Engineering, 1975 septembre 2011 Test de Systèmes Informatiques 2

3 En général Tester un système c'est : Provoquer son exécution dans des conditions bien définies et reproductibles Observer son comportement Décider si ce comportement est conforme aux spécifications Dans le but de trouver des fautes septembre 2011 Test de Systèmes Informatiques 3

4 Cas du logiciel : définitions Deux classes de méthodes Par examen de la spécification ou du programme : test statique Par exécution de tout ou partie du système obtenu après installation du logiciel : test dynamique Test dynamique : Choisir les données de test : jeu de tests Faire exécuter le système contre le jeu de tests Décider si le résultat est correct ou non : oracle Dans cette conférence, test dynamique septembre 2011 Test de Systèmes Informatiques 4

5 Les trois problèmes du test dynamique Sélection : d un jeu fini de tests parmi toutes les données possibles Soumission : par un contrôleur de test ( driver ), en utilisant si besoin des simulations, des modules fictifs ( stubs ) Décision ( oracle ) : le test soumis donne-til un résultat conforme à la spécification? septembre 2011 Test de Systèmes Informatiques 5

6 Instrumentation "driver" (ou contrôleur de test ou "mulet") oracle donnée de test résultat verdict composant sous test "stubs" (ou modules fictifs, ou "bouchons") septembre 2011 Test de Systèmes Informatiques 6

7 Sélection des tests Structurelle : basée sur la structure du programme Critères de couverture des instructions, des enchaînements, des chemins, des couples définitionsutilisations, Fonctionnelle : basée sur la spécification Couverture et composition des cas mentionnés dans la spécification Aléatoire ou statistique : tirage selon une distribution sur le domaine d entrée NB: l oracle est toujours basé sur la spécification septembre 2011 Test de Systèmes Informatiques 7

8 Sélection Structurelle/ Fonctionnelle Sélection basée uniquement sur la structure du programme Sélection basée uniquement sur la spécification résultats résultats Oracle basé sur la spécification C est une boîte noire! septembre 2011 Test de Systèmes Informatiques 8

9 Il faut faire les deux! Boite noire : permet de tester que tous les cas spécifiés sont traités correctement «On n a rien oublié» Structurel : permet de tester que tous les items couverts du programme satisfont la spécification «Tous les sous-cas introduits par la programmation sont corrects» septembre 2011 Test de Systèmes Informatiques 9

10 Base de la sélection structurelle : chemins et prédicats Graphe de contrôle Blocs élémentaires Enchaînements possibles Exécutions possibles => Chemins du graphe Condition d exécution d un chemin donné = prédicat sur les données obtenu par conjonction, négation éventuelle, et évaluation symbolique des conditions rencontrées lors de l exécution septembre 2011 Test de Systèmes Informatiques 10

11 Exemple : le bon vieux pgcd begin read(p, q) ; B1 r := p - p%q*q ; while r 0 do begin P1 p := q ; q:=r ; B2 r := p - p%q*q ; end ; write(q) ; B3 end B2 E B1 P1 B3 S septembre 2011 Test de Systèmes Informatiques 11

12 E Le pgcd, suite Chemins E B1 P1 (B2 P1)* B3 S Prédicats de chemins E B1 P1 B3 S : p 0 - p 0 %q 0 *q 0 = 0 (p 0 divisible par q 0 ) E B1 P1 B2 P1 B3 S : p 0 - p 0 %q 0 *q 0 0 p 1 = q 0 q 1 = p 0 - p 0 %q 0 *q 0 p 1 - p 1 %q 1 *q 1 = 0 ETC B2 Obtention d un test permettant d exécuter un chemin : on résout le prédicat du chemin B1 P1 B3 S septembre 2011 Test de Systèmes Informatiques 12

13 Problème avec les chemins et les prédicats Certains prédicats sont insatisfiables => le chemin correspondant est infaisable et ne peut pas être couvert par un test Il s agit de chemins du graphe de contrôle qui comportent des conditions contradictoires : if x > 0 then B1 else B2 ; {x reste inchangé} ; if x > 0 then B3 else B4 ; Il n existe pas de test permettant de couvrir ces chemins car il n existe pas de données permettant de les exécuter septembre 2011 Test de Systèmes Informatiques 13

14 Plus généralement : cas infaisables La satisfiabilité d un prédicat est un problème indécidable Face à une conjonction de cas dans un programme ou une spécification, on n a pas de méthode générale pour décider si on doit tester ce cas ou non. Mais heureusement on peut souvent restreindre la logique considérée Solution partielle : la résolution programmation logique et ses extensions, et/ou résolution de contraintes : CLP, SMT solvers) septembre 2011 Test de Systèmes Informatiques 14

15 Test «Boîte Noire» Basé sur une analyse de la spécification Spécification «comportementale» : critères de couverture similaires au test structurel Spécification par propriétés : décomposition (dépliage) Méthodes existantes et recherches : Comportements décrits par des automates/systèmes de transitions/machines à états Types de données décrits par des propriétés (axiomes, pré et post-conditions, invariants) On mélange les deux Approches probabilistes (marches aléatoires, etc) septembre 2011 Test de Systèmes Informatiques 15

16 Test de Systèmes Informatiques Première partie : Introduction au sujet Deuxième partie : concepts et problèmes Troisième partie : approches formelles, 2 exemples septembre 2011 Test de Systèmes Informatiques 16

17 Concepts et Problèmes On teste un système Ce n est pas un texte ou un diagramme : c est une entité dynamique Il faut savoir contrôler cette entité Il faut savoir l observer On cherche à provoquer des défaillances, i.e. des comportements non conformes à ce qu on attend input output septembre 2011 Test de Systèmes Informatiques 17

18 Digression sur le test et la preuve On teste un système, on fait la preuve d une formule La carte n'est pas le territoire Le texte du programme, ou de sa spécification, n est pas le système septembre 2011 Test de Systèmes Informatiques 18

19 Programme Tout le monde sait ce que c est J Un programme est un texte dans un langage bien défini Il y a une syntaxe, une (ou des) sémantiques, et des compilateurs A program is a very detailed solution to a much more abstract problem [Ball, 2005] {i=0 ; read(x); repeat { i++ ; perd(x, i); } until term(i,x) ; septembre 2011 Test de Systèmes Informatiques 19

20 A quoi sert un programme? Il peut être compilé puis intégré dans un système {i=0 ; read(x); repeat { i++ ; perd(x, i); } until term(i,x) ; output input septembre 2011 Test de Systèmes Informatiques 20

21 Preuve de Programme Program {i=0 ; read(x); repeat { i++ ; perd(x, i); } until term(i,x) ; + Assertions logiques Theorem Prover Vu comme une formule (par exemple, Le bon vieux {Pre} Prog {Post} ) Static Analyser Libraries axiomatisation Proof envt SAT solver septembre 2011 Test de Systèmes Informatiques 21

22 Qu est-ce qu une preuve? Théorie: Axiomes Règles d infèrence Formule ϕ Moteur de preuve + Stratégies Théorème: (oui/non/?) Finalement: un processus sophistiqué mais purement syntaxique. On manipule des textes septembre 2011 Test de Systèmes Informatiques 22

23 Intermède Program {i=0 ; read(x); repeat { i++ ; perd(x, i); } until term(i,x) ; + CORRECT! Assertions logiques septembre 2011 Test de Systèmes Informatiques 23

24 Retour au test Le système est exécuté sur des données sélectionnées NB: séquences de données pour les systèmes réactifs Ces exécutions sont observées, et une décision est prise sur leur conformité par rapport à un modèle ou une spécification Problèmes : Sélection Oracle Contrôle, non-déterminisme Evaluation du résultat d une campagne de test Données de test sélectionnées Oracle Résultats, observations défaillance/ résultat correct septembre 2011 Test de Systèmes Informatiques 24

25 Model-based testing Domaine très ancien (75 et avant) et très actif Il y a toute sorte de modèles (pourquoi pas J ) Toujours présente, mais pas toujours explicite : hypothèse de testabilité. Le système sous test se comporte comme un modèle (inconnu) de même nature que celui qui guide le test Origine [Chow 78] pour les FSM (machine avec nb. d états fini) [Bernot et al. 91] pour des spécifications algébriques septembre 2011 Test de Systèmes Informatiques 25

26 Test de Systèmes Informatiques Première partie : Introduction au sujet Deuxième partie : concepts et problèmes Troisième partie : approches formelles, 2 exemples : FSM, Spéc. algébriques septembre 2011 Test de Systèmes Informatiques 26

27 Le modèle est une FSM Système sous test inconnu, mais FSM equivalence? SUT output Hypothèse de testabilité pour cette approche : Le Système sous Test se comporte comme une FSM (inconnue) qui a le même nombre d états que la description input Autrement dit, dans le SUT, quelque soit le chemin d exécution suivi pour atteindre un état s, l exécution de la transition s x:y-> s a le même effet (même donnée =>même sortie + même changement d état) septembre 2011 Test de Systèmes Informatiques 27

28 Exemple: reconnaissance de commentaires *,φ: _ /: _ /: _ φ = tout caractère sauf * et / : *: _ φ: φ /: _ φ: _ /: / φ: * φ *: _ ceci n est pas un commentaire /* tout ceci / * est un ** commentaire */ ceci n est plus un commentaire *: * Cette FSM supprime d un texte donné tout ce qui n est pas un commentaire septembre 2011 Test de Systèmes Informatiques 28

29 Finite State Machine S: ensemble fini d états, I: alphabet d entrée, O: alphabet de sortie T: ensemble fini de transitions: s x:y-> s' T, s, s' S, x I, y O λ(s,x)=y, λ*(s,w)=w', w I*, w' O* Etats équivalents : w, λ*(s,w) = λ*(s',w) Ici, on considère des FSM : déterministes, complètes ( s S, x I, s x:y-> s' T), minimales (pas d états équivalents), et tous les états sont atteignables septembre 2011 Test de Systèmes Informatiques 29

30 Un des tests de s -x/y-> s? homing sequence h I* => answ O*: alors l état du SUT doit être équivalent à s s. OU reset h/answ s s préambule w/λ*(s s,w) w I*: et dans la FSM, w mène de s s à s. s x/y septembre 2011 Test de Systèmes Informatiques 30? exécution de la transition z/λ*(s, z) z est une des chaînes qui permettent de reconnaître s observation

31 Un des tests du préambule de s -x/y-> s? homing sequence h I* => answ O*: alors l état du SUT doit être équivalent à s s. Ou reset h/answ s s préambule w I*: dans la FSM, w mène de s s à s. w/λ*(s s,w)? z/λ*(s, z) z est une une des chaînes Qui permettent de de reconnaître s observation : on est dans l état requis septembre 2011 Test de Systèmes Informatiques 31

32 Exemple: la W method Théorème: toute telle FSM a un ensemble caractérisant W= {w 1,, w m } I +, qui permet de distinguer les états s s' w W tel que λ*(s,w) λ*(s',w) Séquences de test : p.z, avec p P, z Z P: pour toute transition s x:y-> s, il y a deux séquences de P, p et p.x, telles que p mène de l état initial à s Z = W i.e., couverture des transitions, avec observation des états d origine et de destination septembre 2011 Test de Systèmes Informatiques 32

33 L exemple de nouveau /: _ /: _ *,φ: _ φ: _ /: / φ: * φ *: _ Ensemble caractérisant : {*φ} *: _ /: _ φ: φ *: * état *φ 1 _ 2 φ 3 *φ 4 **φ septembre 2011 Test de Systèmes Informatiques 33

34 Construction de P * * φ φ 1 / * φ / septembre 2011 Test de Systèmes Informatiques 34 / Arbre qui couvre toutes les transitions la racine est l état initial les fils d un noeud sont les états atteignables à partir de ce noeud si un état est déjà dans l arbre il est terminal

35 Construction de P : algorithme On construit un arbre de test dont les nœuds sont étiquetés par les états, et les arcs par des données La racine de l'arbre est étiqueté par l'état initial (niveau 1 de l'arbre) Le niveau k+1 de l'arbre est obtenu en examinant les nœuds du niveau k de gauche à droite. Un nœud de niveau k étiqueté par l'état s est terminal si s apparaît déjà dans un nœud non terminal à un niveau j k. Sinon, si il existe une transition s x:y-> s', on attache à ce nœud un arc étiqueté par x, dont le nœud extremité est étiqueté par s' septembre 2011 Test de Systèmes Informatiques 35

36 Tableau des tests et résultats attendus *φ rien /*/*φ /*φ **φ rien /*φ*φ φ*φ état *φ 1 _ 2 φ 3 *φ 4 **φ φ*φ /*φ rien φ /***φ **φ /****φ ***φ * / φ / //*φ φ /**φ*φ *φ*φ * φ /φ*φ rien /**/*φ rien * φ / /**φ *φ septembre 2011 Test de Systèmes Informatiques 36

37 Complétude de P.Z Soit A, B, deux FSM avec mêmes I et O ; Soit V I*; s A est un état de A, s B est un état de B; s A et s B sont V-équivalents ssi w V, λ*(s A,w) = λ*(s B,w) A et B sont V-équivalents : leurs états initiaux sont V-équivalents Théorème de Chow : soit A et B avec le même nb d états, et mêmes I et O A et B équivalents A et B P.Z équivalents septembre 2011 Test de Systèmes Informatiques 37

38 Analyse de cette stratégie de test On a fait mieux depuis : élimination des sous-séquences redondantes (préfixes) ; classes de FSM plus facilement observables ; nombre d états n. Le critère est la couverture des transitions : on vérifie qu'on part bien de l'état de départ et qu'on arrive bien à l'état d'arrivée. On fait des hypothèses fortes sur l'implémentation sous test : voir page suivante Dans la présentation de l'exemple, hypothèse d'uniformité sur les caractères de * et / : en fait φ est une classe d'équivalence au niveau de la spécification septembre 2011 Test de Systèmes Informatiques 38

39 Hypothèses sur l implémentation Elle se comporte comme une FSM, i.e. elle n'a pas de mémoire quelque soit p qui mène la FSM de l'état initial à l'état s i, la transition s i x:y-> s j, est exécutée de la même manière Elle se comporte comme une FSM déterministe à n états on sait se mettre dans l'état initial (procédure de reset correcte et pas trop coûteuse) septembre 2011 Test de Systèmes Informatiques 39

40 Test de Systèmes Informatiques Première partie : Introduction au sujet Deuxième partie : concepts et problèmes Troisième partie : approches formelles, 2 exemples : FSM, Spéc. algébriques septembre 2011 Test de Systèmes Informatiques 40

41 Test boîte noire basé sur des spécifications formelles relation de satisfaction : SUT sat SP Qu est-ce que cela veut dire qu un système satisfait une spécification? C est beaucoup plus difficile à définir qu il n y paraît et l équivalence n est certainement pas adéquate On dérive de sat les notions : test, expérience de test, et verdict (oracle): SUT passe T (où T est un Jeu de Test) septembre 2011 Test de Systèmes Informatiques 41

42 Hypothèses, exhaustivité Définition du Jeu de Test Exhaustif d'une spécification, et de l Hypothèse de Testabilité des systèmes : SUT testable => (SUT passe exhaust(sp) <=> SUT sat SP) Le jeu de test exhaustif sert ensuite de référence pour la sélection d un jeu de test fini septembre 2011 Test de Systèmes Informatiques 42

43 Sélection (test exhaustif souvent infini ou trop grand) Hypothèses de Sélection H, sur SUT, et construction de jeux de test finis T tels que : H valide pour SUT =>(SUT passe T <=> SUT sat SP) <H, T> est un contexte de test valide et non biaisé La spécification sert de point de départ pour le choix des hypothèses et la construction des tests septembre 2011 Test de Systèmes Informatiques 43

44 Exemple de Spécifications Spécifications algébriques des types de données, Ax Signature = <S, OP> : noms d ensembles de valeurs, et opérations ou prédicats sur ces ensembles Axiomes Ax : propriétés des opérations x + 0 = x x + s(y) = s(x+y) x + y = y + x septembre 2011 Test de Systèmes Informatiques 44

45 «Types are Algebras» Algèbres : des ensembles et des opérations sur ces ensembles pile vide empiler Les entiers Les piles dépiler sommet Attention, il n y a pas de notion de modification d état «empiler(p,n)» construit une nouvelle valeur du type Pile à partir de la valeur p et de n «dépiler(p)» aussi septembre 2011 Test de Systèmes Informatiques 45

46 Exemple : Stack spec STACK [ sort Elem] = sort Stack généricité ops empty : Stack push : Stack x Elem -> Stack pop : Stack ->?Stack top : Stack ->?Elem e : Elem ; S : Stack def top(empty) top(push(s, e)) = e def pop(empty) pop(push(s, e)) = S end opérations partielles prédicats de définition septembre 2011 Test de Systèmes Informatiques 46

47 Rappel Test «boîte noire», ou fonctionnel On se base uniquement sur les spécifications pour sélectionner des tests On se sert également de la spécification comme «oracle» (décision du succès ou de l échec d un test) Mais problèmes dus aux niveaux d abstraction et à l observabilité septembre 2011 Test de Systèmes Informatiques 47

48 Particularités du test basé sur des spécifications logiques On ne veut pas vérifier des couples <données, résultat> On veut vérifier que les opérations implémentées par le système satisfont les axiomes Exemple spec SPmin = NATURAL-ARITHMETIC then op min3 : Nat x Nat x Nat -> Nat X, Y, Z : Nat X Y X Z => min3 (X, Y, Z) = X Y X Y Z => min3 (X, Y, Z) = Y Z X Z Y => min3 (X, Y, Z) = Z end septembre 2011 Test de Systèmes Informatiques 48

49 Qu est-ce qu un test? Le SUT fournit des procédures ou des fonctions pour exécuter les opérations de SP (exemple : classe Java, paquetage Ada, structure ML ) op est implémentée par op SUT Etant donné un -terme clos t, on note t SUT le résultat de son calcul par SUT Soit ε une SP -équation test de ε : toute instanciation close t = t' de ε expérience de test de P contre t = t' : évaluations de t SUT et t SUT et comparaison des valeurs résultats NB : oracle test de l'égalité Ces définitions se généralisent facilement à d autres axiomes septembre 2011 Test de Systèmes Informatiques 49

50 Retour à l exemple Test basé sur : X Y X Z => min3 (X, Y, Z) = X t1 t2 t1 t3 => min3 (t1, t2, t3) = t1, où t1, t2, t3 sont des termes clos, de sorte Nat, quelconques Une expérience de test Exécution : évaluation de t1 SUT SUT t2 SUT, t1 SUT SUT t3 SUT, min3 SUT (t1 SUT, t2 SUT, t3 SUT ), t1 SUT Oracle :si le premier résultat est vrai, et le second aussi, alors le troisième et le quatrième doivent être identiques NB : Les termes qui ne satisfont pas les prémisses donnent des tests inintéressants On a ainsi tous les éléments pour construire un programme de test septembre 2011 Test de Systèmes Informatiques 50

51 Jeu de test exhaustif Soit une spécification SP = (, Ax), le jeu de test exhaustif de SP, noté Exhaust SP est l'ensemble de toutes les instances closes bien typées de tous les axiomes de SP: Exhaust SP = {Φσ Φ Ax, σ = {σ s : var(φ) s (T ) s s S} } NB1 : définition derivée de la notion classique de satisfaction d'un axiome par un -modèle NB2 : on n a pas forcément d oracle «fini» pour toutes les formes d axiomes (, ) ; certains tests sont inconclusifs et peuvent être supprimés NB3 : Exhaust SP est exhaustif par rapport à la spécification, pas toujours par rapport au programme septembre 2011 Test de Systèmes Informatiques 51

52 Hypothèse de testabilité Inévitable : quand on teste un système, on est obligé de faire des hypothèses sur son comportement et son environnement Ici SUT est -testable si : il définit un «- modèle M SUT finiment engendré par rapport à», c est-à-dire Les opérations sont déterministes Toutes les valeurs sont spécifiées (pas de «junks») Notation : H min septembre 2011 Test de Systèmes Informatiques 52

53 Test et correction On note SUT = Exhaust SP le fait que SUT passe tous les tests de Exhaust SP avec succès On a H min => (M SUT = Ax <=> SUT = Exhaust SP ) Autrement dit, sous l hypothèse de testabilité, le succès du test exhaustif garantit la correction de SUT par rapport à SP Mais comment sélectionner des sous-ensembles finis de Exhaust SP? septembre 2011 Test de Systèmes Informatiques 53

54 Sélection et Hypothèses On fait des hypothèses PLUS FORTES sur SUT Exemple : Hypothèse d'uniformité Φ(X) formule, SUT système, D sous-domaine ( t 0 D)( SUT = Φ(t 0 ) ( t D) (SUT = Φ(t))) Détermination des sous-domaines? guidée par la spécification, à suivre Autre exemple : Hypothèse de Régularité (( t T ) ( t k SUT = Φ(t) )) ( t T ) (SUT = Φ(t)) Détermination de t? cf. spécification septembre 2011 Test de Systèmes Informatiques 54

55 Le choix des hypothèses? <SUT testable, Exhaust SP > <Hyp. Faible, Gros Jeu detest > <Hyp. Forte, Petit JT> <SUT correct, Ø> septembre 2011 Test de Systèmes Informatiques 55

56 Une Méthode Point de départ : couverture des axiomes (un test par axiome) => hypothèses d uniformité fortes sur les sortes des variables ou sur le domaine de validité des prémisses Exemple : 3 cas de test pour SPmin X Y X Z => min3 (X, Y, Z) = X Y X Y Z => min3 (X, Y, Z) = Y Z X Z Y => min3 (X, Y, Z) = Z 3 sous-domaines d uniformité septembre 2011 Test de Systèmes Informatiques 56

57 Affaiblissement des hypothèses Affaiblissements successifs par utilisation des axiomes de la spécification L exemple, intuitivement : correspond à deux sous-cas, < ou = on le décompose dans les cas de test X Y X Z => min3 (X, Y, Z) = X devient X=Y X=Z => min3 (X, Y, Z) = X X=Y X<Z => min3 (X, Y, Z) = X X<Y X=Z => min3 (X, Y, Z) = X X<Y X=Z => min3 (X, Y, Z) = X Le domaine X Y X Z a été décomposé en 4 sous-domaines En tout on a 12 cas de test septembre 2011 Test de Systèmes Informatiques 57

58 Un exemple plus complexe spec LIST-NAT-WITH-SORT = NATURAL-ARITHMETIC then generated type List ::= empty cons(nat ; List) pred sorted : List ; x, y : Nat ; z : List sorted(empty) sorted (cons(x, empty)) sorted (cons(x, cons(y, z)) <=> x y sorted(cons(y, z)) end couverture des axiomes (exemple) sorted(empty) doit être vrai sorted (cons(23, empty)) doit être vrai sorted (cons(151, cons(55, )) et sorted(cons(255, ) doivent donner le même résultat septembre 2011 Test de Systèmes Informatiques 58

59 Affaiblissement de l hypothèse d uniformité pour le 3e axiome On va utiliser la table de vérité de de true true <=> true on obtient : A B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) de true false <=> false on obtient : A B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) de false true <=> false on obtient : (A B) sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) de false false <=> false on obtient : (A B) sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) On a alors 4 cas de test pour le 3e axiome on peut tester encore plus septembre 2011 Test de Systèmes Informatiques 59

60 On décompose Les deux premiers cas deviennent 4 A B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) devient A=B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) A<B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) et A B sorted(cons(b, L)) => sorted(cons(a, cons (B, L)) devient A=B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) A<B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) On a 6 cas pour le 3e axiome ; on teste les cas «aux limites» On peut encore tester plus en «dépliant» sorted septembre 2011 Test de Systèmes Informatiques 60

61 Dépliage Dépliage: une technique classique pour transformer (et comprendre) les définitions recursives Remplacement de f(op(x)) par la définition de f, avec remplacement adéquat des variables fact(n) = def if n=0 then 1 else n*f(n-1) devient : fact(n) = def if n=0 then 1 else if (n-1)=0 then n*1 else n*(n-1)*f(n-2) etc i.e. fact(n) = def if n=0 then 1 else if n=1 then 1 else n*(n-1)*f(n-2) NB : on remplace la définition de la fonction fact par son graphe, i.e. son test exhaustif septembre 2011 Test de Systèmes Informatiques 61

62 Retour au premier des 6 cas de tests A=B sorted(cons(b, L)) => sorted(cons(a, cons(b, L)) Sachant que sorted (cons(x, cons(y, z)) <=> x y sorted(cons(y, z)) On déplie la première instance de sorted : B -> A L -> cons(b, L ) sorted(cons(b, L)) devient sorted(cons(a, cons(b, L ))) qui devient A B sorted(cons(b, L )) A=A A B sorted(cons(b, L )) => sorted(cons(a, cons(a, cons(b, L )))) On peut continuer ainsi, en décomposant et en dépliant sorted jusqu à le Jeu de Test Exhaustif Pas tout à fait : des variables demeurent septembre 2011 Test de Systèmes Informatiques 62

63 Quand et comment s arrêter En fonction du contexte (risque, coût, délais), on décide pour chaque spécification : Quels prédicats décomposer Quelles opération déplier et combien de fois (rarement plus d une fois) Une bonne stratégie standard : composer tous les sous-cas deux à deux NB : on peut avoir des compositions de sous-cas infaisables Implémentation dans le cas d axiomes positifs conditionnels : surréduction (unification + réécriture) septembre 2011 Test de Systèmes Informatiques 63

64 Le problème de l oracle décider de l'égalité de t SUT et t SUT Le cas simple : la sorte s de t et t' correspond à un type du langage de programmation (sorte observable) ou on teste un prédicat Hypothèse d oracle faible : l égalité sur les types du langage et les booléens sont implémentés correctement septembre 2011 Test de Systèmes Informatiques 64

65 Les autres cas Comment tester que pop(push(s, X)) = S? Solution : les contextes observables Exemples top(_), top(pop(_)), top(push(pop(_), e)) Pour tout contexte observable minimal C, on teste : C(pop(push(S, X))) = C(S) septembre 2011 Test de Systèmes Informatiques 65

66 Le jeu de test exhaustif observable OC [s] : ensemble des contextes observables (minimaux) sur s pour la signature S o sous-ensemble des sortes observables Les axiomes dans Ax sont positifs conditionnels et les équations dans les préconditions sont de sorte observable(*), Soit L t = u Exhaust SP, avec t et u de sorte s S o, on teste L C(t) = C(u) pour tout C OC [s] Si t et u de sorte s S o, on teste L t = u (*) sinon il y a risque de biais lorsqu'on sélectionne On sélectionne, septembre 2011 Test de Systèmes Informatiques 66

67 Tous les contextes sont nécessaires pour certaines fautes! proc empty_stack() ; stack.h := 0 ; stack.foo := 2 ; end empty_stack ; proc push(x: natural) ; stack.a[stack.h] := x ; stack.h := stack.h +1 ; stack.foo := stack.foo+1; end push ; proc pop() ; if stack.h > 0 then stack.h := stack.h - 1 ; stack.foo := 0 ; end if ; end pop ; proc top() ; if stack.foo = 1 then return stack.h ; --!!! elseif stack.h > 0 then return stack.a[stack.h] ; end if ; end top ; /* Exemple dû à Gilles Bernot septembre 2011 Test de Systèmes Informatiques 67

68 Souvenez-vous : Il faut faire aussi du test structurel! On trouve la faute en couvrant toutes les branches de top septembre 2011 Test de Systèmes Informatiques 68

69 Pour en savoir plus T.S. Chow. Testing software design modeled by finite-state machines. IEEE Transactions on Software Engineering, SE-4(3): , G. Bernot, M.-C. Gaudel, B. Marre, Software Testing based on Formal Specifications : a theory and a tool, Software Engineering Journal, 6(6), Nov M.-C. Gaudel, Testing can be formal too, LNCSn 915, Springer-Verlag, pp , M.-C. Gaudel and P. Le Gall. Testing data types implementations from algebraic specifications. LNCS n 4949, Springer-Verlag, pp Marie-Claude Gaudel. Checking models, proving programs, and testing systems. LNCS n 6706, pp Springer-Verlag, See also septembre 2011 Test de Systèmes Informatiques 69

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

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

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Quatrième partie IV. Test. Test 15 février 2008 1 / 71

Quatrième partie IV. Test. Test 15 février 2008 1 / 71 Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Utilisation des tableaux sémantiques dans les logiques de description

Utilisation des tableaux sémantiques dans les logiques de description Utilisation des tableaux sémantiques dans les logiques de description IFT6281 Web Sémantique Jacques Bergeron Département d informatique et de recherche opérationnelle Université de Montréal bergerja@iro.umontreal.ca

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages Analyse syntaxique descendante Claude Moulin Université de Technologie de Compiègne Printemps 2010 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1) Exemple : Grammaire

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/ Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes

Plus en détail

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Approche de modélisation des tests de logiciels complexes par un système multi-agents

Approche de modélisation des tests de logiciels complexes par un système multi-agents Ministère de l Enseignement Supérieur et de la Recherche Scientifique Institut National de Formation en Informatique (INI) Oued Smar MEMOIRE Pour l'obtention du diplôme de MAGISTER EN INFORMATIQUE (Option

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Model checking temporisé

Model checking temporisé Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS berard@lamsade.dauphine.fr ETR 07, 5 septembre 2007 1/44 Nécessité de vérifier des systèmes... 2/44 Nécessité de vérifier

Plus en détail

Intelligence Artificielle Planification

Intelligence Artificielle Planification Intelligence Artificielle Planification Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

Plus en détail

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)

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) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets Mengxuan Zhao, Gilles Privat, Orange Labs, Grenoble, France Eric Rutten, INRIA, Grenoble, France Hassane

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme? Validation par le test Objectifs du cours d'aujourd'hui Donner des réponses aux questions suivantes : Lydie du Bousquet 2 Qu est-ce que tester un programme? Exercice 1 : Inscrivez sur une feuille ce que

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

Vérification et Validation

Vérification et Validation Vérification et Validation Génie Logiciel Master 1 II Mihaela Sighireanu Objectifs I. Introduire la vérification et la validation (V&V) du logiciel et comprendre leurs différences. II.Définir le plan de

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

Test et Validation du Logiciel

Test et Validation du Logiciel Test et Validation du Logiciel McInfo4_ASR Tests Janvier 2009 Patrick FELIX patrick.felix@labri.fr IUT Bordeaux 1 Plan Introduction : Pourquoi de la VVT? 1 Introduction au test de logiciels 2 Le test fonctionnel

Plus en détail

Théorie de la Programmation

Théorie de la Programmation Théorie de la Programmation http://perso.ens-lyon.fr/daniel.hirschkoff/thpr hop Programmation, Théorie de la programmation Langages de programmation I il existe de nombreux langages de programmation I

Plus en détail

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans

Plus en détail

Raisonnement probabiliste

Raisonnement probabiliste Plan Raisonnement probabiliste IFT-17587 Concepts avancés pour systèmes intelligents Luc Lamontagne Réseaux bayésiens Inférence dans les réseaux bayésiens Inférence exacte Inférence approximative 1 2 Contexte

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Systèmes d information et bases de données (niveau 1)

Systèmes d information et bases de données (niveau 1) Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Matrice d accès. Master SEMS, 2013-2014. Pierre Paradinas. October 16, 2013

Matrice d accès. Master SEMS, 2013-2014. Pierre Paradinas. October 16, 2013 Matrice d accès Master SEMS, 2013-2014 Pierre Paradinas October 16, 2013 Le Concept de Matrice d Accès ntroduit en 1971 par Butler Lampson Definition On note O, l ensemble des entités objet qui sont impliquées

Plus en détail

Algorithmes d'apprentissage

Algorithmes d'apprentissage Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt

Plus en détail

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Yves Aragon, David Haziza & Anne Ruiz-Gazen GREMAQ, UMR CNRS 5604, Université des Sciences

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Objets Combinatoires élementaires

Objets Combinatoires élementaires Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

= constante et cette constante est a.

= constante et cette constante est a. Le problème Lorsqu on sait que f(x 1 ) = y 1 et que f(x 2 ) = y 2, comment trouver l expression de f(x 1 )? On sait qu une fonction affine a une expression de la forme f(x) = ax + b, le problème est donc

Plus en détail

UML (Paquetage) Unified Modeling Language

UML (Paquetage) Unified Modeling Language UML (Paquetage) Unified Modeling Language Sommaire Introduction Objectifs Paquetage Espace de nommage d un paquetage Dépendances entre paquetages 2 Notion introduite véritablement par UML car superficiellement

Plus en détail

Qu est-ce qu une probabilité?

Qu est-ce qu une probabilité? Chapitre 1 Qu est-ce qu une probabilité? 1 Modéliser une expérience dont on ne peut prédire le résultat 1.1 Ensemble fondamental d une expérience aléatoire Une expérience aléatoire est une expérience dont

Plus en détail

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Analyse de sécurité de logiciels système par typage statique

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

Plus en détail

M1 : Ingénierie du Logiciel

M1 : Ingénierie du Logiciel M1 : Ingénierie du Logiciel UNIVERSITE PIERRE & MARIE CURIE (PARIS VI) Examen Réparti 2eme partie 16 Mai 2013 (2 heures avec documents : tous SAUF ANNALES CORRIGEES). Barème indicatif sur 20,5 points (max

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

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

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre : Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Fondements de l informatique Logique, modèles, et calculs

Fondements de l informatique Logique, modèles, et calculs Fondements de l informatique Logique, modèles, et calculs Cours INF423 de l Ecole Polytechnique Olivier Bournez Version du 20 septembre 2013 2 Table des matières 1 Introduction 9 1.1 Concepts mathématiques........................

Plus en détail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

Plus en détail

Algorithmique des Systèmes Répartis Protocoles de Communications

Algorithmique des Systèmes Répartis Protocoles de Communications Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Simulation de variables aléatoires

Simulation de variables aléatoires Chapter 1 Simulation de variables aléatoires Références: [F] Fishman, A first course in Monte Carlo, chap 3. [B] Bouleau, Probabilités de l ingénieur, chap 4. [R] Rubinstein, Simulation and Monte Carlo

Plus en détail

Bases de données Cours 5 : Base de données déductives

Bases de données Cours 5 : Base de données déductives Cours 5 : ESIL Université de la méditerranée Odile.Papini@esil.univmed.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 Introduction 2 approche sémantique approche axiomatique

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Chapitre I : le langage UML et le processus unifié

Chapitre I : le langage UML et le processus unifié I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et

Plus en détail

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique NOM DE L'UE : Algorithmique et programmation C++ LICENCE INFORMATIQUE Non Alt Alt S1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques) MASTER INFORMATIQUE Non

Plus en détail

Objets et Programmation. origine des langages orientés-objet

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE VINCENT MATHIEU VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE Mémoire présenté à la Faculté des études supérieures de l Université Laval dans le cadre du programme de maîtrise en informatique

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Algorithmique et Programmation Fonctionnelle

Algorithmique et Programmation Fonctionnelle Algorithmique et Programmation Fonctionnelle RICM3 Cours 9 : Lambda-calcul Benjamin Wack Polytech 2014-2015 1 / 35 La dernière fois Typage Polymorphisme Inférence de type 2 / 35 Plan Contexte λ-termes

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail