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

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

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

Transcription

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

2 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

3 Test Introduction Le test n est pas une étape du codage la preuve que le programme est correct montrer que le programme est correct la mise au point Test exécuter un programme pour y trouver des erreurs Examiner : lire, faire lire, ou traîter par un outil d analyse Analyse statique (a.k.a. Test statique) Exécuter : fournir des données au programme, et obtenir le résultat (oracle, boîte noire), comparer au résultat attendu Test dynamique Test 15 février / 71

4 Exemple du triangle Introduction Soit trois entiers représentant les longueurs des cotés d un triangle. Le programme lit ces trois entiers et détermine s il s agit d un triangle scalène (quelconque), isocèle ou équilatéral. Donner les différents cas de tests permettant de tester le programme correspondant (G. J. Myers, The Art of Software Testing, 1979) Test 15 février / 71

5 Exemple du triangle Rappel de géométrie Introduction Etant donnés trois nombres réels positifs a, b et c, il existe un triangle dont les côtés mesurent a, b et c si les trois inégalités suivantes sont vérifiées : a < b + c, b < a + c et c < a + b Il suffit en pratique de vérifier une seule des trois inégalités, celle où le plus long côté est est à gauche de l inégalité, i.e. si max(a, b, c) = a, la seule inégalité à vérifier est a < b + c. Test 15 février / 71

6 Exemple du triangle Cas de tests (1) Introduction Cas scalène valide : 2,4,3 (1,2,3 et 2,5,10 ne sont pas valides) Cas équilatéral valide : 5,5,5 Cas isocèle valide : 6,6,7 (2,2,4 n est pas valide) Cas isocèle valide avec les trois permutations (3,3,4 ; 3,4,3 ; 4,3,3) Cas avec une valeur à 0 Cas avec une valeur négative Test 15 février / 71

7 Exemple du triangle Cas de tests (2) Introduction Cas ou la somme de deux entrées est égale à la troisième entrée Trois cas pour le test 7 avec les trois permutations (1,2,3 ; 2,4,2 ; 5,3,2) Cas ou la somme de deux entrées est inférieure à la troisième entrée Trois cas pour le test 9 avec les trois permutations Cas avec les trois entrées à 0 Cas avec une entrée non entière Cas avec un nombre erroné de valeurs (0, 1, 2, 4,...entrées) Test 15 février / 71

8 Exemple du triangle Analyse Introduction Chaque cas correspond à un défaut constaté dans des implantations Moyenne des résultats obtenus par développeurs expérimentés : 7.8 sur 13 Conception de jeux de tests = activité complexe, a fortiori sur de grandes applications Test 15 février / 71

9 Cycle en V Introduction Modèle de développement normalisé par la RFA. Exigences \ \ Recette Spéc. / fonctionnelles / \ \ Test système Architecture --- / \ \---- Test intégration Conception -- / \ \---- Test unitaire \ / / Code / Test 15 février / 71

10 Types de tests Introduction unitaires : procédures, modules, composants intégration : composition de procédures et de modules conformité : adéquation aux spécifications non-régression (après modifications) : correction et évolution ne créent pas d anomalies nouvelles nominal, bon fonctionnement : cas de tests correspondant à des entrées valides robustesse : cas de tests correspondant à des entrées non valides Et les tests de performance load testing : résistance à la montée en charge stress testing : résistance aux demandes de ressources anormales Test 15 février / 71

11 Test unitaire Introduction test d une unité logicielle, d un «module» ; pour détecter des fautes dans son comportement individuel ; on ne teste pas les comportements dépendants d autres unités ; avant de tester le mur, tester ses briques ; notion d unité : dépend du paradigme de programmation utilisé : fonction, procédure, sous-programme, classe, composant, etc. Test 15 février / 71

12 Test d intégration Introduction vérifier qu un ensemble d unités coopérent correctement ; pour détecter des erreurs dans leur inter-opérabilité, la mauvaise utilisation d une interface (surtout si interface floue) ; basé sur l architecture de conception ; plusieurs approches pour l intégration : non-incrémentale ou big-bang : les modules sont testés unitairement chacun de leur côté ; puis on les assemble et on teste le tout d un coup ; incrémentale : on assemble un module déjà testé avec un module pas encore testé, puis on teste leur combinaison. Encore deux approches : bottom-up et top-down. pour simuler les modules non encore testés ou non disponibles : «bouchons» ou stubs. Test 15 février / 71

13 Test système Introduction Sur une application complètement intégrée ds son environnement. test de montée en charge ; stress de l application ;... Et aussi... test de régression (ou non-régression) : nouveau test du système après une modification pour vérifier qu elle n a pas apporté d autres fautes. En pratique, les tests fonctionnels d une version n sont des tests de non-régression pour la version n+1 ; Test 15 février / 71

14 Test de recette Introduction Ou test d acceptation, (ou User Acceptance Testing, ou simplement recette) : effectué avec l utilisateur final pour valider le système produit par rapport aux exigences, pour obtenir son approbation avant la livraison. Test 15 février / 71

15 Introduction Analyse statique et test (dynamique) Analyse statique Traitement du code source sans exécution Lectures croisées, inspection Analyse d anomalies : typage impropre, incohérence des interfaces de modules,... Evaluation symbolique : simulation de l exécution sur données symboliques Test dynamique exécution du logiciel sur des entrées choisies (cas de test) sélection de jeux de tests soumission des jeux de test dépouillement des résultats (comparaison avec résultats fournis par l oracle) évaluation de la qualité, de la couverture. Décision d arrêt du test Test 15 février / 71

16 Introduction Considérations générales Connaissance du fonctionnement interne boîte noire (black-box) : aucun accès au code, architecture... boîte transparente (white-box, glass-box) : connaissance du code Debugging vs. testing testing : trouver des bugs debugging : analyser les bugs, et les retirer Test 15 février / 71

17 Introduction Coût / efficacité du test Coût dans la litérature : ± 50 % du temps pris par le test en fait : 50 % du temps pris par le test et le debugging Efficacité développement collaboratif trouve plus d erreur, et coûte moitié moins par erreur le test débusque moins de la moitié des bugs (Source : Code Complete) Test 15 février / 71

18 Introduction Difficultés et limites du test Espace d état gigantesque (exemple : fiche client) : le test n est généralement pas complet Comment choisir les cas de test? Difficulté pour le développeur Buts du test : casser le système But du développeur : éviter que le système se casse Buts opposés ( équipes différentes) Le test n est jamais complet 1000 erreurs trouvées : bonne ou mauvaise nouvelle? aucune erreur trouvée : test insuffisant ou logiciel robuste? Le test n augmente pas la qualité du système, mais mesure la qualité. Augmenter la qualité d un logiciel par l augmentation du test est abérrant. Les procédures de développement déterminent la qualité. Les a priori laissent passer les signes d erreur. Test 15 février / 71

19 Buts du test Introduction Test exécuter un programme pour y trouver des erreurs ou, autrement dit Test Exécuter le logiciel (sur des données choisies) pour évaluer sa qualité Test 15 février / 71

20 Outline Analyse statique 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

21 Analyse statique Lecture croisée, inspection Lecture croisée binôme programmeur, lecteur voir Extreme Programming Inspection relecture en groupe, après préparation individuelle règles et protocole précis Test 15 février / 71

22 Analyse statique Analyse d anomalies règles de typages utilisation de pointeurs expressions abérrantes défauts de portabilité déclaration d arguments non utilisés... de plus en plus intégrée dans les compilateurs (c.f. -Wall) La présence d anomalies révèle souvent des erreurs de logique L analyse statique rejoint les méthodes formelles Test 15 février / 71

23 Outline Test dynamique 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

24 Test dynamique Comment trouver les cas de test? Programme boîte noire aucun accès au code, à l architecture... avantage : beaucoup plus proche de l utilisation normale inconvénient : moins de connaissance pour guider les choix Programme boîte transparente (white-box, glass-box) connaissance du code avantage : se concentrer sur les détails désavantage : être omnubilé par les détails, ne pas agir comme l utilisateur Éviter les tests trop semblables Test 15 février / 71

25 Outline Test dynamique Test fonctionnel et structurel 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

26 Test dynamique Test fonctionnel et structurel Test fonctionnel et structurel Test fonctionnel boîte noire (black-box) données de test engendrées par la spécification Test structurel boîte transparente (glass-box) données de test engendrées par l analyse du code source Test 15 février / 71

27 Test fonctionnel Test dynamique Test fonctionnel et structurel boîte noire données de test engendrées par la spécification Spécification Données de test Oracle Programme Résultat attendu Résultat obtenu Test 15 février / 71

28 Test structurel Test dynamique Test fonctionnel et structurel boîte en verre analyse du code pour produire les Données de Test (DT) Principalement basé sur différents critères de couvertures : tous les chemins toutes les branches toutes les instructions Point d entrée Point de sortie Test 15 février / 71

29 Test dynamique Test fonctionnel et structurel Test fonctionnel et structurel Approche complémentaire : le test fonctionnel détecte les écarts par rapport aux spécifications certaines erreurs ne sont détectées que par le test structurel int sum (int x, int y) { if (x==600 && y==500) return x-y; return x+y; } Test 15 février / 71

30 Test dynamique Difficultés du test dynamique Test fonctionnel et structurel test fonctionnel : entrées dans un ensemble infini (ou de très grande taille) test structurel : graphe très grand oracle : nécessaire pour obtenir le résultat attendu (pour comparaison) En définitive test : méthode de vérification partielle qualité dépendant du choix des jeux de test (couverture) Test 15 février / 71

31 Outline Test dynamique Test structurel 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

32 Test structurel Test dynamique Test structurel Analyse du code source pour produire des Données de Test (DT) Comportement du programme = chemin dans le graphe de contrôle Tests fonction de critères de couverture ( tous les chemins, toutes les branches, toutes les instructions) Test 15 février / 71

33 Graphe de contrôle Test dynamique Test structurel if (x<=0) x = -x; else x= 1 - x; if (x == -1) x = 1; else x++; Entrée : a Sortie : g Chemin correct : acdeg b x = x x == 1 e x = 1 x 0 a d g x > 0 c x = 1 x x 1 f x = x + 1 Test 15 février / 71

34 Graphe de contrôle Chemins de contrôle Test dynamique Test structurel Exécutions possible du code ch1 = abdeg ch2 = acdeg ch3 = abdfg ch4 = acdfg b x = x x == 1 e x = 1 x 0 a x > 0 c x = 1 x d x 1 f x = x + 1 g Sous forme algébrique abdfg + abdeg + acdfg + acdeg ( + désigne le ou logique) a(bdf + bde + cdf + cde)g a(b + c)d(f + e)g (expression factorisée des chemins de contrôle) Test 15 février / 71

35 Graphe de contrôle Chemins de contrôle (2) Test dynamique Test structurel Composants : ab : séquence a puis b a a+(b+c)d : choix entre b et c a b b c d ab(cb) d : itération a b c d Test 15 février / 71

36 Graphe de contrôle Exercice Test dynamique Test structurel i = 1; found = 0; while (!found) { if (a[i] == E) { found = 1; s = i; } i++; } Test 15 février / 71

37 Graphe de contrôle Exercice Test dynamique Test structurel i = 1; found = 0; while (!found) { if (a[i] == E) { found = 1; s = i; } i++; } i + + a i = 1; found = 0; found b f!found c a[i] == E a[i]! = E found = 1; s = i; d e Test 15 février / 71

38 Graphe de contrôle Exercice (2) Test dynamique Test structurel if (n<=0) n = 1 - n; if ( n % 2 == 0) n = n / 2; else n = 3 * n + 1; Test 15 février / 71

39 Graphe de contrôle Exercice (2) Test dynamique Test structurel if (n<=0) n = 1 - n; if ( n % 2 == 0) n = n / 2; else n = 3 * n + 1; a(1+b)c(e+d)f n > 0 a n 0 b n%2! = 0 c n = 1 n n%2 == 0 e d n = 3 n + 1 f n = n/2 Test 15 février / 71

40 Chemins exécutables Test dynamique Test structurel Sensibiliser un chemin On dit qu une DT sensibilise un chemin, car pour ces valeurs, le code suit le chemin de contrôle en visitant consécutivement ces noeuds Chemin exécutable Un chemin de contrôle est exécutable si il existe une DT qui le sensibilise Test 15 février / 71

41 Chemins exécutables Test dynamique Test structurel ch1 = abdeg ch2 = acdeg ch3 = abdfg ch4 = acdfg DT = {x = 2} sensibilise ch3 DT = {x = 3} sensibilise ch4 DT = {x = 2} sensiblise ch2 b x = x x == 1 e x = 1 x 0 a x > 0 c x = 1 x d x 1 g f x = x + 1 Aucune valeur de x ne sensibilise ch1 chemin non-exécutable Test 15 février / 71

42 Chemins exécutables Test dynamique Test structurel ch1 = abdeg ch2 = acdeg ch3 = abdfg ch4 = acdfg DT = {x = 2} sensibilise ch3 DT = {x = 3} sensibilise ch4 DT = {x = 2} sensiblise ch2 b x = x x == 1 e x = 1 x 0 a x > 0 c x = 1 x d x 1 g f x = x + 1 Aucune valeur de x ne sensibilise ch1 chemin non-exécutable Test 15 février / 71

43 Chemins exécutables Test dynamique Test structurel ch1 = abdeg ch2 = acdeg ch3 = abdfg ch4 = acdfg DT = {x = 2} sensibilise ch3 DT = {x = 3} sensibilise ch4 DT = {x = 2} sensiblise ch2 b x = x x == 1 e x = 1 x 0 a x > 0 c x = 1 x d x 1 g f x = x + 1 Aucune valeur de x ne sensibilise ch1 chemin non-exécutable Test 15 février / 71

44 Chemins exécutables Test dynamique Test structurel ch1 = abdeg ch2 = acdeg ch3 = abdfg ch4 = acdfg DT = {x = 2} sensibilise ch3 DT = {x = 3} sensibilise ch4 DT = {x = 2} sensiblise ch2 b x = x x == 1 e x = 1 x 0 a x > 0 c x = 1 x d x 1 g f x = x + 1 Aucune valeur de x ne sensibilise ch1 chemin non-exécutable Test 15 février / 71

45 Chemins exécutables Test dynamique Test structurel ch1 = abdeg ch2 = acdeg ch3 = abdfg ch4 = acdfg DT = {x = 2} sensibilise ch3 DT = {x = 3} sensibilise ch4 DT = {x = 2} sensiblise ch2 b x = x x == 1 e x = 1 x 0 a x > 0 c x = 1 x d x 1 g f x = x + 1 Aucune valeur de x ne sensibilise ch1 chemin non-exécutable Test 15 février / 71

46 Test dynamique Chemins non exécutables Test structurel Tous les chemins d un graphe de contrôle ne sont pas exécutables L ensemble des chemins de contrôle contient les chemins exécutables et les chemins non-exécutables Détecter les chemins non-exécutables est un problème indécidable Etant donné un chemin, trouver une DT qui exécute ce chemin? problème très difficile Chemins non-exécutables : casse-tête pour le testeur une erreur de codage du code mort un code pas optimisé du tout Test 15 février / 71

47 Critère de couverture Test dynamique Test structurel Critère Un critère C est une méthode de sélection qui fournit un ensemble de chemins de contrôle à couvrir, ou plus généralement, un ensemble d objets à couvrir. A tout critère C est associé un taux de couverture, exprimant le degré τ de satisfaction de C : τ = nombre d objets dénotés par C nombre d objets effectivement couverts Le problème du testeur est de trouver un ensemble de DT (le plus petit possible) qui satisfont le critère C Test 15 février / 71

48 Test dynamique Hiérarchie des critères Test structurel Nombreux critères : tous les noeuds tous les arcs tous les chemins indépendants basés sur les passages dans les boucles basés sur le flot de données... Ces critères ne sont pas équivalents demandent plus de DT détectent plus d erreurs On dit que le critère C1 est plus fort que le critère C2 si : toute faute détectée par C2 l est par C1 ; toute suite de test qui passe pour C1 passe pour C2 ; un taux de couverture de X pour C1 implique un taux au moins égal à X pour C2 Test 15 février / 71

49 Test dynamique Critère tous les noeuds Test structurel Critère le plus faible, ausi appelé TER1 (Test effectiveness ratio). consiste à couvrir l ensemble des noeuds du graphe. but du testeur : proposer un ensemble de DT qui couvrent l ensemble des noeuds. τ = nombre de noeuds couverts nombre total de noeuds Signifie que toutes les instructions sont été exécutées au moins une fois. Mise en oeuvre directe : compteurs d instructions. Test 15 février / 71

50 Test dynamique Critère tous les noeuds Exemple Test structurel int sum(int x, int y) { (a) int res = 0; (a) if (x == 0) (b) (b) res = x // erreur! (c) x=0 / \ x!= 0 else (c) (d) res = x+y; (d) \ / return res; (e) (e) } {abce, abde} donne un taux de couverture de 100% (= satisfait le critère) + détecte l erreur, avec DT = {{x=2,y=5},{x=0,y=4}} Test 15 février / 71

51 Test dynamique Critère tous les noeuds Exemple Test structurel int sum(int x, int y) { (a) int res = 0; (a) if (x == 0) (b) (b) res = x // erreur! (c) x=0 / \ x!= 0 else (c) (d) res = x+y; (d) \ / return res; (e) (e) } {abce, abde} donne un taux de couverture de 100% (= satisfait le critère) + détecte l erreur, avec DT = {{x=2,y=5},{x=0,y=4}} Test 15 février / 71

52 Test dynamique Critère tous les noeuds Exemple (2) Test structurel } int div(x) { int res = 0 ; (i) (i)--(a) if (x!= 0) (a) \ x = 1; (b) (b) res = 1 / x; (c) / return res; (d) (c)---(d) DT = {x=2} satisfait le critère tous les noeuds : {iabcd} Erreur non détectée, chemin révélélateur : {iacd} Il aurait fallu couvrir les deux branches du if : critère tous les arcs. Test 15 février / 71

53 Test dynamique Critère tous les noeuds Exemple (2) Test structurel } int div(x) { int res = 0 ; (i) (i)--(a) if (x!= 0) (a) \ x = 1; (b) (b) res = 1 / x; (c) / return res; (d) (c)---(d) DT = {x=2} satisfait le critère tous les noeuds : {iabcd} Erreur non détectée, chemin révélélateur : {iacd} Il aurait fallu couvrir les deux branches du if : critère tous les arcs. Test 15 février / 71

54 Test dynamique Critère tous les noeuds Exemple (2) Test structurel } int div(x) { int res = 0 ; (i) (i)--(a) if (x!= 0) (a) \ x = 1; (b) (b) res = 1 / x; (c) / return res; (d) (c)---(d) DT = {x=2} satisfait le critère tous les noeuds : {iabcd} Erreur non détectée, chemin révélélateur : {iacd} Il aurait fallu couvrir les deux branches du if : critère tous les arcs. Test 15 février / 71

55 Critère tous les arcs Test dynamique Test structurel ou TER2 : tous les arcs du graphe de contrôle sont couverts toutes les branches conditionnelles ont été couvertes τ = nombre des arcs couverts nombre total des arcs chaque prédicat a pris au moins une fois la valeur vrai et la valeur faux ; attention aux prédicats composés. Tous les arcs tous les noeuds. L inverse n est pas vrai. Test 15 février / 71

56 Critère tous les arcs Exemple Test dynamique Test structurel } int div(x) { int res = 0 ; (i) (i)--(a) if (x!= 0) (a) \ x = 1; (b) (b) res = 1 / x; (c) / return res; (d) (c)---(d) DT = {{x=0},{x=2}} satisfait le critère tous les arcs Test 15 février / 71

57 Critère tous les arcs Exemple Test dynamique Test structurel } int div(x) { int res = 0 ; (i) (i)--(a) if (x!= 0) (a) \ x = 1; (b) (b) res = 1 / x; (c) / return res; (d) (c)---(d) DT = {{x=0},{x=2}} satisfait le critère tous les arcs Test 15 février / 71

58 Critère tous les arcs Exemple Test dynamique Test structurel if ((a < 2) && (b == a)) (a) (a) x = 2 - a; (b) / \ else / \ x = a - 2; (c) (b) (c) DT = {{a = 1, b = 1}, {a = 3, b = 3}} Test 15 février / 71

59 Critère tous les arcs Exemple Test dynamique Test structurel if ((a < 2) && (b == a)) (a) (a) x = 2 - a; (b) / \ else / \ x = a - 2; (c) (b) (c) DT = {{a = 1, b = 1}, {a = 3, b = 3}} Test 15 février / 71

60 Test dynamique Critère tous les chemins (1) Test structurel Tous les chemins tous les arcs tous les noeuds Problème des boucles : Chemin limite : traversée de la boucle sans itération Chemin intérieur : itération de la boucle une seule fois Impossible à obtenir en général test exhaustif = tous les chemins avec toutes les valeurs possibles. Test 15 février / 71

61 Test dynamique Test structurel : exercice (1) Test structurel /* Input: n */ if (n<=0) n = 1 - n; if (n%2 == 0) n /= 2; else n = 3 * n + 1; /* Output: n */ Donnez des DT pour atteindre le critère tous les noeuds tous les arcs tous les chemins Test 15 février / 71

62 Test dynamique Test structurel : exercice (2) Test structurel /* Entrée: E, a[0],..., a[4] */ int found = 0; int i = 0; while (i < 5) { if (a[i]==e) found = 1; else found = 0; i++; } /* Sortie: found */ Donnez des DT pour atteindre le critère tous les noeuds tous les arcs tous les chemins Test 15 février / 71

63 Outline Test dynamique Test fonctionnel 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

64 Test fonctionnel Test dynamique Test fonctionnel Test fonctionnel Tester le comportement fonctionnel du logiciel et la conformité avec sa spécification boîte noire données de test engendrées par la spécification Spécification Données de test Oracle Programme Résultat attendu Résultat obtenu Test 15 février / 71

65 Test dynamique Test fonctionnel : methodes Test fonctionnel Analyse partition des domaines des données d entrée test aux limites Test combinatoire (algorithmes pairwise) Test aléatoire Génération automatique de test (à partir des spécifications) Test 15 février / 71

66 Test dynamique Test fonctionnel Partition des domaines des données Critères pour guider le choix de valeurs pertinentes. Les erreurs sont souvent dûes aux opérateurs de comparaison ou de tests aux limites < et modification de comportement pour certains domaines de valeurs Mauvaise détermination d une condition limite Comportement dépend d une partition de domaine des données Changement de omportement est fonction de classes de valeurs Classe d équivalences Test 15 février / 71

67 Classe d équivalence Test dynamique Test fonctionnel Classe d équivalence Ensemble de données de tests, impliquant le même comportement du logiciel Les classes d équivalences partitionnent les domaines des données à tester. Test 15 février / 71

68 Test dynamique Conception d un jeu de test Test fonctionnel Trois phases Pour chaque entrée, calcul de classes d équivalence sur les domaines de valeur Choix d un représentant par classe Composition par produit cartésien sur l ensemble des représentants Test 15 février / 71

69 Test dynamique Test fonctionnel Classe d équivalence Exemple trois nombres réels correspondant à la longueur des cotés d un triangle en entrée si cela ne correspond pas à un triangle, imprimer un message approprié sinon, vérifier s il s agit d un triangle isocèle, équilatéral ou scalène de plus, vérifier si son plus grand angle est aigu, droit ou obtus Classes d équivalence et Données de Test : Aigu Obtus Droit Scalène 6,5,3 5,6,10 3,4,5 Isocèle 6,1,6 7,4,4 2, 2, 2 Équilatéral 4,4,4 impossible impossible cas ne correspondant pas à un triangle : - 1,2,8 Test 15 février / 71

70 Test dynamique Partition des domaines (2) Test fonctionnel Si la valeur à tester appartient à un intervalle, construire une classe pour les valeurs inférieures une classe pour les valeurs supérieures n classes valides Si la donnée est un ensemble de valeurs, construire une classe avec l ensemble vide une classe avec trop de valeurs n classes valides Si la donnée est une contrainte/condition, construire une classe avec la contrainte respectée une classe avec la contrainte non-respectée Test 15 février / 71

71 Test aux limites Test dynamique Test fonctionnel Test aux limites Utilisation des valeurs extrêmes du domaine dans les données de test Si x appartient à un intervalle [a, b], prendre les deux valeurs aux limites (a, b) les quatre valeurs a ± ε, b ± ε, où ε est le plus petit écart possible (Ex : 1 pour les entiers) une valeur dans l intervalle Par exemple : x [3..15] valeurs aux limites : 3, 15 limites ±ε : 2, 4, 14, 16 valeur dans l intervalle : 7 Test 15 février / 71

72 Test aux limites Test dynamique Test fonctionnel Test aux limites Utilisation des valeurs extrêmes du domaine dans les données de test Si x appartient à un intervalle [a, b], prendre les deux valeurs aux limites (a, b) les quatre valeurs a ± ε, b ± ε, où ε est le plus petit écart possible (Ex : 1 pour les entiers) une valeur dans l intervalle Par exemple : x [3..15] valeurs aux limites : 3, 15 limites ±ε : 2, 4, 14, 16 valeur dans l intervalle : 7 Test 15 février / 71

73 Test aux limites (2) Test dynamique Test fonctionnel Si x appartient à un ensemble ordonné de valeurs, prendre les première, deuxième, avant-dernière, et dernière valeurs Si un certain nombre de valeurs doivent être rentrées, prendre le nombre minimum acceptable le nombre maximum acceptable des cas pour des nombres hors limites Par exemple : un fichier d entrée pouvant contenir jusqu à 255 enregistrements nombre maximum : 255 nombre minimum : 0-1 hors limites : (0), 256 Test 15 février / 71

74 Test aux limites (2) Test dynamique Test fonctionnel Si x appartient à un ensemble ordonné de valeurs, prendre les première, deuxième, avant-dernière, et dernière valeurs Si un certain nombre de valeurs doivent être rentrées, prendre le nombre minimum acceptable le nombre maximum acceptable des cas pour des nombres hors limites Par exemple : un fichier d entrée pouvant contenir jusqu à 255 enregistrements nombre maximum : 255 nombre minimum : 0-1 hors limites : (0), 256 Test 15 février / 71

75 Reflexion... Test dynamique Test fonctionnel Classes d équivalence? diminuer le nombre de cas de tests? méthodes heuristiques Partition des domaines Test aux limites le choix des classes est critique l identification des problèmes dépend de ce choix classes hors limites : tests de robustesse classes dans limites : tests nominaux Test 15 février / 71

76 Reflexion...(2) Test dynamique Test fonctionnel Soit n données d entrées, et 5 classes (tests aux limites). Test 15 février / 71

77 Reflexion...(2) Test dynamique Test fonctionnel Soit n données d entrées, et 5 classes (tests aux limites). 5 n cas de tests Test 15 février / 71

78 Test combinatoire Test dynamique Test fonctionnel Explosion combinatoire dûe à la combinaison des valeurs Défauts dépendent de l interaction d au plus 2 paramètres, pas de la combinaison de tous les paramètres Exemple (simplifié) : OS Résolution Application Affichage Windows x600 WMP 2 Ecrans Windows x768 Doom LCD Windows XP 1280x1024 IE CRT 3 4 = 81 combinaisons 9 paires Test 15 février / 71

79 Test combinatoire (2) Test dynamique Test fonctionnel 75 options binaires : Windows x600 WMP 2 écrans Windows x768 Doom LCD Windows x1024 IE CRT Windows x600 IE LCD Windows x768 WMP CRT Windows x1024 Doom 2 écrans Windows XP 800x600 Doom CRT Windows XP 1024x768 IE 2 écrans Windows XP 1280x1024 WMP LCD 2 75 cas ( ) 28 cas pour toutes les paires! Test 15 février / 71

80 Test dynamique Test combinatoire - Outils Test fonctionnel -n a 2a 3c 1a 2b 3a 1a 2c 3b 1b 2a 3b 1b 2b 3c 1b 2c 3a 1c 2a 3a 1c 2b 3b 1c 2c 3c tous les triplets, quadruplets Test 15 février / 71

81 Test dynamique Test aléatoire ou statistique Test fonctionnel Fonction de calcul pour selection des données de test fonction aléatoire dans le domaine de la donnée d entrée loi statistique sur le domaine (Ex. loi de Gauss) Avantages génération automatique des cas de test objectivité Inconvénients fonctionnement en aveugle comportements spécifiques oracle? Test 15 février / 71

82 Outline Conclusion 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

83 Réflexions (1) Conclusion Test-first vs. test-last : conception des test avant le code n est pas plus onéreux détection des défauts plus rapidement, correction précoce test-first implique réflexion approfondie sur les besoins et le design. Détection des problèmes dans l expression des besoins. test-first et test-last Tests propres et sales : test propre : le code fonctionne-t-il? test sale : le code est-il robuste observation : 5 tests sales pour un test propre Test 15 février / 71

84 Réflexions (2) Conclusion Développeur et test il pense atteindre 95% de la couverture il atteint 60% en moyenne au pire : 30% il pense que 100% du code testé est bien en fait, il faudrait 100% des branches Test 15 février / 71

85 Outline JUnit 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion 5 JUnit Test 15 février / 71

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

Test de logiciel dans les méthodes agiles

Test de logiciel dans les méthodes agiles Test de logiciel dans les méthodes agiles Appliqué au contexte objet (Java) 1 Aspects «théoriques» 2 Aspects pratiques le développement dirigé par les tests en partie inspiré d un cours de Laurie Williams

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

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

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

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

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

Introduction aux tests du logiciel

Introduction aux tests du logiciel Introduction aux tests du logiciel F.X. Fornari xavier.fornari@esterel-technologies.com P. Manoury pascal.manoury@pps.jussieu.fr 2011 Contents 1 Présentation du cours 3 2 Introduction aux tests logiciels

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

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

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

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

Bruno Legeard Fabrice Bouquet Laboratoire d Informatique de l Université de Franche-Comté

Bruno Legeard Fabrice Bouquet Laboratoire d Informatique de l Université de Franche-Comté Cours Test de Logiciels Bruno Legeard Fabrice Bouquet Laboratoire d Informatique de l Université de Franche-Comté Plan du cours Test de logiciels 1 - Introduction au test de logiciels Définition du test

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

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 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

Gestion Projet. Cours 3. Le cycle de vie

Gestion Projet. Cours 3. Le cycle de vie Gestion Projet Cours 3 Le cycle de vie Sommaire Généralités 3 Séquentiel 7 Itératif/Incrémental 17 Extreme Programming 22 Que choisir? 29 Etats Transverse 33 Cours 3 2006-2007 2 Généralités Cours 3 2006-2007

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Algorithmique et structures de données I

Algorithmique et structures de données I Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence

Plus en détail

Vérifier la qualité de vos applications logicielle de manière continue

Vérifier la qualité de vos applications logicielle de manière continue IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions

Plus en détail

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint? Plan nitiation au Génie Logiciel Cours 5 ntroduction au π développement agile T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 1/ 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 2/ 28 Bibliographie Plan L informatique

Plus en détail

Développement spécifique d'un système d information

Développement spécifique d'un système d information Centre national de la recherche scientifique Direction des systèmes d'information REFERENTIEL QUALITE Procédure Qualité Développement spécifique d'un système d information Référence : CNRS/DSI/conduite-proj/developpement/proc-developpement-si

Plus en détail

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE Retour d expérience Benjamin Boutin QA Manager S2E www.s2e-services-epargne-entreprise.com Marc Rambert Director Dynamic Testing Solution Coverity/Synopsys

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

UM2 - Master 2 Année 2012-2013 Sensibilisation aux Tests de Projets Informatique - Managed Testing -

UM2 - Master 2 Année 2012-2013 Sensibilisation aux Tests de Projets Informatique - Managed Testing - UM2 - Master 2 Année 2012-2013 Sensibilisation aux Tests de Projets Informatique - Managed Testing - Le 21 février 2013 Thierry SINOT Directeur de Projet thierry.sinot@cgi.com 1 Groupe CGI inc. CONFIDENTIEL

Plus en détail

Introduction au maillage pour le calcul scientifique

Introduction au maillage pour le calcul scientifique Introduction au maillage pour le calcul scientifique CEA DAM Île-de-France, Bruyères-le-Châtel franck.ledoux@cea.fr Présentation adaptée du tutorial de Steve Owen, Sandia National Laboratories, Albuquerque,

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

Assurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 23/04/2007

Assurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 23/04/2007 1 Cours de génie logiciel (d'après A.-M. Hugues) Assurance Qualité Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 23/04/2007 2 Les deux facettes de la qualité Conformité avec la définition

Plus en détail

Système de contrôle du trafic d une ligne de métro Dossier de tests

Système de contrôle du trafic d une ligne de métro Dossier de tests Système de contrôle du trafic d une ligne de métro Dossier de tests Tests NI557/STL/M2/INFO/UPMC Action Date Auteur Statut Création 05/03/2012 P.Manoury En cours 1 Description et exigences fonctionnelles

Plus en détail

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

Représentation géométrique d un nombre complexe CHAPITRE 1 NOMBRES COMPLEXES 1 Représentation géométrique d un nombre complexe 1. Ensemble des nombres complexes Soit i le nombre tel que i = 1 L ensemble des nombres complexes est l ensemble des nombres

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

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

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

Les Bonnes PRATIQUES DU TEST LOGICIEL

Les Bonnes PRATIQUES DU TEST LOGICIEL Les Bonnes PRATIQUES DU TEST LOGICIEL SOMMAIRE Qu est-ce que le test logiciel? Pourquoi le test est-il un maillon crucial de l ingénierie logicielle? Quels sont les différents types de tests? Qu est-ce

Plus en détail

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB. global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés

Plus en détail

Gestion de projets logiciels. Xavier Dubuc

Gestion de projets logiciels. Xavier Dubuc Gestion de projets logiciels Résumé blocus Xavier Dubuc 16 janvier 2011 1 Table des matières 1 Planification (PERT-GANTT) 3 1.1 Définitions............................................. 3 1.2 Analyse un

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

2.4 Représentation graphique, tableau de Karnaugh

2.4 Représentation graphique, tableau de Karnaugh 2 Fonctions binaires 45 2.4 Représentation graphique, tableau de Karnaugh On peut définir complètement une fonction binaire en dressant son tableau de Karnaugh, table de vérité à 2 n cases pour n variables

Plus en détail

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château Rappel TP3 Intégration de pratiques agiles En direct-live du château 40 41 Scénario d intégration agile 1. User Stories (1) 1. Rédiger les User Stories (exigences) 2. Planifier les Itérations (quoi / quand)

Plus en détail

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

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument Formes algébriques et trigonométriques, module et argument Exercice - - L/Math Sup - On multiplie le dénominateur par sa quantité conjuguée, et on obtient : Z = 4 i 3 + i 3 i 3 = 4 i 3 + 3 = + i 3. Pour

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

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

2. Activités et Modèles de développement en Génie Logiciel

2. Activités et Modèles de développement en Génie Logiciel 2. Activités et Modèles de développement en Génie Logiciel Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Les Activités du GL Analyse des besoins Spécification globale Conceptions architecturale

Plus en détail

Travaux soutenus par l ANR. Jean-François CAPURON (DGA) Bruno LEGEARD (Smartesting)

Travaux soutenus par l ANR. Jean-François CAPURON (DGA) Bruno LEGEARD (Smartesting) Travaux soutenus par l ANR Jean-François CAPURON (DGA) Bruno LEGEARD (Smartesting) 03 Avril 2012 1. Test de sécurité et génération de tests à partir de modèle 2. Le projet SecurTest à DGA Maîtrise de l

Plus en détail

Agilitéet qualité logicielle: une mutation enmarche

Agilitéet qualité logicielle: une mutation enmarche Agilitéet qualité logicielle: une mutation enmarche Jean-Paul SUBRA Introduction : le manifeste Agile Manifeste pour le développement Agile de logiciels Nous découvrons comment mieux développer des logiciels

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

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

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

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

Table des matières. I Mise à niveau 11. Préface Table des matières Préface v I Mise à niveau 11 1 Bases du calcul commercial 13 1.1 Alphabet grec...................................... 13 1.2 Symboles mathématiques............................... 14 1.3

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Sécurité des Systèmes d Information

Sécurité des Systèmes d Information Sécurité des Systèmes d Information Tableaux de bord SSI 29% Nicolas ABRIOUX / Consultant Sécurité / Intrinsec Nicolas.Abrioux@Intrinsec.com http://www.intrinsec.com Conférence du 23/03/2011 Tableau de

Plus en détail

Topologie du web - Valentin Bourgoin - http://www.valentinbourgoin.net. Méthodes agiles & SCRUM

Topologie du web - Valentin Bourgoin - http://www.valentinbourgoin.net. Méthodes agiles & SCRUM Méthodes agiles & SCRUM 1/ Pourquoi les méthodes agiles? Définition d une méthode agile. Fondamentaux. Quand les utiliser? 2/ SCRUM En quoi est-ce une méthode agile? Sprints et releases. Le Product Owner.

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

PROBABILITES ET STATISTIQUE I&II

PROBABILITES ET STATISTIQUE I&II PROBABILITES ET STATISTIQUE I&II TABLE DES MATIERES CHAPITRE I - COMBINATOIRE ELEMENTAIRE I.1. Rappel des notations de la théorie des ensemble I.1.a. Ensembles et sous-ensembles I.1.b. Diagrammes (dits

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

Analyse,, Conception des Systèmes Informatiques

Analyse,, Conception des Systèmes Informatiques Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance

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

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

Plus en détail

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Introduction au génie logiciel

Introduction au génie logiciel Introduction au génie logiciel Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) Introduction au génie logiciel 2007 1 / 36 Plan du cours 1 Problématique du génie logiciel 2 Méthodes de développement logiciel

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

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

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

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

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

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

Indications pour une progression au CM1 et au CM2

Indications pour une progression au CM1 et au CM2 Indications pour une progression au CM1 et au CM2 Objectif 1 Construire et utiliser de nouveaux nombres, plus précis que les entiers naturels pour mesurer les grandeurs continues. Introduction : Découvrir

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

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

Ecoles Européennes DECISION

Ecoles Européennes DECISION Ecoles Européennes Bureau du Secrétaire général Unité de développement pédagogique Bruxelles, le 30 Juin 2015 MEMORANDUM : A To An 2015-06-M-6-FR Directeurs des Ecoles Européennes De From Von Giancarlo

Plus en détail

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.

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. Angles orientés Trigonométrie I. Préliminaires. Le radian Définition B R AB =R C O radian R A Soit C un cercle de centre O. Dire que l angle géométrique AOB a pour mesure radian signifie que la longueur

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

Comité Français des Tests Logiciels. Testeur Certifié. Version 2012

Comité Français des Tests Logiciels. Testeur Certifié. Version 2012 Testeur Certifié Version 2012 Copyright Ce document ne peut être copié intégralement ou partiellement que si la source est mentionnée. Version 2012 Page 1 sur 18 19 octobre 2012 Copyright, (appelé ci-après

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

DEMANDE D INFORMATION RFI (Request for information)

DEMANDE D INFORMATION RFI (Request for information) DOD SEICAM RFI Demande d information EVDEC Réf. : RFI_EVDEC- GT5_Outil_reporting_BI_v4.doc Page 1/11 DEMANDE D INFORMATION RFI (Request for information) OUTIL INTÉGRÉ DE REPORTING ET D ANALYSE DÉCISIONNELLE

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Circuit du médicament informatisé

Circuit du médicament informatisé Circuit du médicament informatisé Points de vigilance axe technique SOMMAIRE... 1 FICHE N 1- DISPONIBILITE ET PERFORMANCE... 2 FICHE N 2- ENVIRONNEMENT DE TEST... 4 FICHE N 3- VERSIONNING... 5 FICHE N

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

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

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

GloboFleet. Mode d emploi CardControl Plus

GloboFleet. Mode d emploi CardControl Plus GloboFleet Mode d emploi CardControl Plus Mode d emploi CardControl Plus Nous vous remercions d avoir choisi le logiciel GloboFleet CC Plus. Le logiciel GloboFleet CC Plus vous permet de visualiser rapidement

Plus en détail