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

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel Introduction Notre contexte : pas possible d exprimer toutes les combinaisons de DT. Le test fonctionnel est basé sur la spécification/interface

Plus en détail

Test et cycle logiciel

Test et cycle logiciel Test et cycle logiciel Fabrice Bouquet JDEV 2013 5 septembre 2013 INRIA / CNRS Université de Franche-Comté Fabrice Bouquet Test 1 / 59 Plan 1 Test 2 Test Structurel 3 Test fonctionnel 4 Calcul de données

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

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

Eléments pratiques de test des Hiérarchies et Frameworks

Eléments pratiques de test des Hiérarchies et Frameworks Eléments pratiques de test des Hiérarchies et Frameworks Notes de cours Christophe Dony Master Info Pro - Université Montpellier-II 1 Introduction 1.1 Définitions Génie Logiciel No 18, Mars 1990. EC2.

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

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

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

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

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

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP)

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Loris Marchal, Guillaume Melquion, Frédéric Tronel 21 juin 2011 Remarques générales à propos de l épreuve Organisation

Plus en détail

CTE Éditeur de classification arborescente pour spécifications du cas de test

CTE Éditeur de classification arborescente pour spécifications du cas de test Tessy Test d intégration et unitaire dynamique automatisé pour des applications embarquées CTE Éditeur de classification arborescente pour spécifications du cas de test Le meilleur outil de test unitaire

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

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

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

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

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

Arbres de décision. Intelligence Artificielle et Systèmes Formels Master 1 I2L

Arbres de décision. Intelligence Artificielle et Systèmes Formels Master 1 I2L Arbres de décision Intelligence Artificielle et Systèmes Formels Master 1 I2L Sébastien Verel verel@lisic.univ-littoral.fr http://www-lisic.univ-littoral.fr/ verel Université du Littoral Côte d Opale Laboratoire

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

Techniques et outils de test pour les logiciels réactifs synchrones

Techniques et outils de test pour les logiciels réactifs synchrones Journées Systèmes et Logiciels Critiques Institut IMAG ; 14-16 nombre 2000 Techniques et outils de test pour les logiciels réactifs synchrones Farid Ouabdesselam 1 Méthodes de test : classification générale

Plus en détail

Analyse de programmes par interprétation abstraite

Analyse de programmes par interprétation abstraite Analyse de programmes par interprétation abstraite Marc PEGON marc.pegon@ensimag.imag.fr Ensimag - Grenoble INP Encadrants David MONNIAUX Matthieu MOY 1 / 21 Analyse statique : obtenir automatiquement

Plus en détail

Algorithmique avancée en Python TDs

Algorithmique avancée en Python TDs Algorithmique avancée en Python TDs Denis Robilliard sept. 2014 1 TD 1 Révisions 1. Ecrire un programme qui saisit un entier, et détermine puis affiche si l entier est pair où impair. 2. Ecrire un programme

Plus en détail

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1 Génie logiciel Concepts fondamentaux Bruno MERMET, Université du Havre 1 Nécessité du Génie Logiciel Bruno MERMET, Université du Havre 2 Développement d un logiciel Caractéristiques souhaitées : Adéquation

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

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

Épreuve pratique de mathématiques Printemps 2009. Descriptifs. (Page vide)

Épreuve pratique de mathématiques Printemps 2009. Descriptifs. (Page vide) Épreuve pratique de mathématiques Printemps 2009 Descriptifs (Page vide) Sujet 001 Épreuve pratique de mathématiques Descriptif Étude d une fonction dépendant d un paramètre Étant donné une fonction dépendant

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

Mise en œuvre des tests logiciels

Mise en œuvre des tests logiciels Mise en œuvre des tests logiciels support du cours de «Techniques de Développement» Sébastien Faucou Université de Nantes 2007-2008 Plan 1 Introduction 2 Concepts de base Les cibles Les objectifs Les techniques

Plus en détail

Principes de V&V. Vérification & Validation. Techniques statiques. V&V et cycle de vie. Deux aspects de la notion de qualité :

Principes de V&V. Vérification & Validation. Techniques statiques. V&V et cycle de vie. Deux aspects de la notion de qualité : Principes de V&V Deux aspects de la notion de qualité : Vérification & Validation Principes Techniques de tests Tests en boîte noire L outil check Philippe Collet 2007-2008 P. Collet 1 Conformité avec

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

Jeu de Dames. Rapport de projet. Etudiants : Tuteur : Mohr Maxence Ollagnon Julien. Informatique 3 ème année Promo 2016 Projet Algorithmique

Jeu de Dames. Rapport de projet. Etudiants : Tuteur : Mohr Maxence Ollagnon Julien. Informatique 3 ème année Promo 2016 Projet Algorithmique Polytech'Marseille Case 925 163, avenue de Luminy 13288 Marseille cedex 9 Informatique 3 ème année Promo 2016 Projet Algorithmique Jeu de Dames Rapport de projet Etudiants : Tuteur : Charton Trystan Alexandra

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

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

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

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende Que faire en algorithmique en classe de seconde? BEGIN Que dit le programme? Algorithmique (objectifs pour le lycée) La démarche algorithmique est, depuis les origines, une composante essentielle de l

Plus en détail

Conduite de projets et architecture logicielle

Conduite de projets et architecture logicielle s et architecture logicielle ABCHIR Mohammed-Amine Université Paris 8 15 février 2011 1/36 ABCHIR Mohammed-Amine (Université Paris 8) Conduite de projets et architecture logicielle 15 février 2011 1 /

Plus en détail

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Projet Informatique Philippe Collet Licence 3 Informatique S5 2014-2015 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Réalisation d'un développement de taille conséquente? r Firefox? Ph.

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

Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique

Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique octobre 2010 1 Affichage graphique statique Il en existe trois bibliothèques graphiques en Ocaml : la

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

Plan. 1. Introduction au test. 2. Le test statique. 1. Revue de code 2. Règles de codage 3. Vérifications automatiques - 2 -

Plan. 1. Introduction au test. 2. Le test statique. 1. Revue de code 2. Règles de codage 3. Vérifications automatiques - 2 - Software testing Plan. Introduction au test 2. Le test statique. Revue de code 2. Règles de codage 3. Vérifications automatiques 2 Tester pour prévenir une erreur du développeur introduit Une erreur est

Plus en détail

Ch. 1 : Bases de programmation en Visual Basic

Ch. 1 : Bases de programmation en Visual Basic Ch. 1 : Bases de programmation en Visual Basic 1 1 Variables 1.1 Définition Les variables permettent de stocker en mémoire des données. Elles sont représentées par des lettres ou des groupements de lettres

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

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

Bruno Legeard Laboratoire d Informatique de l Université de Franche-Comté Cours Test de Logiciels Bruno Legeard 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 Petite auto-évaluation

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

LES TESTS. Les tests. Organisation d un projet de recette Les types de tests Les outils

LES TESTS. Les tests. Organisation d un projet de recette Les types de tests Les outils Les tests Organisation d un projet de recette Les types de tests Les outils Organiser le déroulement des tests Spécifier Exécuter les Cahiers de tests les Cahiers de tests Analyser les résultats Correction

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

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

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

Algorithmes (2) Premiers programmes sur calculatrice. Programmation sur calculatrice TI. codage

Algorithmes (2) Premiers programmes sur calculatrice. Programmation sur calculatrice TI. codage Objectifs : lgorithmes () Premiers programmes sur calculatrice - passer de la notion d algorithme à la notion de programme - aborder la notion de langage de programmation - s initier à la programmation

Plus en détail

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Les types énumérés On peut aussi définir des types qui ont un nombre fini de valeurs (ex: jours de la semaine, couleurs primaires, etc.)

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

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

Des exigences aux tests Génération de tests à partir des processus et règles métier (Model-Based Testing)

Des exigences aux tests Génération de tests à partir des processus et règles métier (Model-Based Testing) Des exigences aux tests Génération de tests à partir des processus et règles métier (Model-Based Testing) Bruno LEGEARD JDEV 2013 4-6 septembre 2013 Sommaire Partie I Introduction au Model-Based Testing

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

Techniques de Développement

Techniques de Développement Techniques de Développement Quelques définitions relatives au développement de logiciel Sébastien Faucou Université de Nantes (IUT de Nantes, département Informatique) Licence Professionnelle Systèmes

Plus en détail

Mini-Projet : Tournoi de Dames

Mini-Projet : Tournoi de Dames Mini-Projet : Tournoi de Dames L objectif du projet est de programmer un jeu de dames de façon à ce que votre programme puisse jouer une partie de dames avec les programmes des autres étudiants. 1 Organisation

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

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

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

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

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

Algorithmique Travaux Dirigés

Algorithmique Travaux Dirigés Algorithmique Travaux Dirigés Master Technologie et Handicap : Intensifs 1 Corrigé Exercice 1 Affectations 1. Considérons les algorithmes ci-dessous. (a) Quel sera le contenu des variables a, b et éventuellement

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

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

Notions de langage machine

Notions de langage machine Notions de langage machine 18 décembre 2009 Rappels et introduction Architecture de Van Neumann : Processeur = UC + UAL Mémoire interne au processeur = les registres (soit seulement l accumulateur, soit

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

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

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

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire ENSIIE : Programmation avancée 1/20 Langages et mémoire Différence principale entre langages de haut niveau : OCaml, Java, C# langages de bas niveau : C, C++ : Gestion de la mémoire

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

Concours de recrutement interne PLP 2009

Concours de recrutement interne PLP 2009 Concours de recrutement interne PLP 2009 Le sujet est constitué de quatre exercices indépendants. Le premier exercice, de nature pédagogique au niveau du baccalauréat professionnel, porte sur le flocon

Plus en détail

6. Des objets bien conçus

6. Des objets bien conçus Conception objet en Java avec BlueJ une approche interactive 6. Des objets bien conçus David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec

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

Corrigé du baccalauréat S Polynésie juin 2004

Corrigé du baccalauréat S Polynésie juin 2004 Durée : 4 heures Corrigé du baccalauréat S Polynésie juin 4 EXERCICE Commun à tous les candidats 4 points. X suit la loi de durée de vie sans vieillissement ou encore loi eponentielle de paramètre λ ;

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

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

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge Introduction Les performances d une machine sont liées au: 1. nombre d instructions 2. temps de cycle horloge 3. nombre de cycle horloge par instructions. C est: le compilateur et l architecture du jeu

Plus en détail

Architectures Logicielles et Matérielles Travaux Dirigés Circuits

Architectures Logicielles et Matérielles Travaux Dirigés Circuits UNIVERSITE Joseph FOURIER, Grenoble U.F.R. d Informatique et Maths. Appliquées Architectures Logicielles et Matérielles Travaux Dirigés Circuits Rappel : dessins des portes logiques. Déroulement envisagé

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

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

Les automates. Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ

Les automates. Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ Les automates Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ Avril 2015 Retour sur l île et le barman Deux problèmes similaires: Des îles, des bateaux et un trésor à trouver

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

La nouvelle donne du test avec Oracle

La nouvelle donne du test avec Oracle La nouvelle donne du test avec Oracle Jean-Baptiste MARZOLF, Consultant Avant-vente, Oracle Pourquoi est-ce important? Les clients investissent dans les applications pour fournir

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

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

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

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

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

Représentation des nombres entiers et réels. en binaire en mémoire

Représentation des nombres entiers et réels. en binaire en mémoire L3 Mag1 Phys. fond., cours C 15-16 Rep. des nbs. en binaire 25-09-05 23 :06 :02 page 1 1 Nombres entiers 1.1 Représentation binaire Représentation des nombres entiers et réels Tout entier positif n peut

Plus en détail

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante :

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante : Ocaml - Exercices Exercice Définir en Ocaml les fonctions suivantes:. f : x sin x + cos x. g : x x 3x+ x x 5 3. Fonction h calculant la moyenne géométrique de deux float positifs ( xy) Exercice Ecrire

Plus en détail

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction TP1, prise en main de Pari/GP et arithmétique Le programme que nous allons utiliser pour les TP se nomme PARI/GP dont le point fort est la théorie des nombres (au sens large). Il est donc tout à fait adapter

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

Répartition de charge dynamique dans un système distribuée

Répartition de charge dynamique dans un système distribuée Rapport de TER Répartition de charge dynamique dans un système distribuée Tuteur : Stephane Mancini Benjamin Petit Grenoble INP - Ensimag Mai 2010 Table des matières 1 Introduction 4 1.1 Contexte pratique...................................

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