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

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

Plus en détail

Statique / Dynamique

Statique / Dynamique Statique / Dynamique Analyse dynamique : nécessite l exécution du code binaire Principe : à partir du code source (ou d un modèle) et spécification, produire des DT qui exécuteront un ensemble de comportements,

Plus en détail

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

Tests & Preuves Michel Rueher

Tests & Preuves Michel Rueher Tests & Preuves Michel Rueher http://users.polytech.unice.fr/~rueher/cours/test/cours1testetpreuve_si4.pdf 1 Plan du cours 1. Le Test 2. Aperçu du BMC (Bounded-model checking) 3. Présentation de Event-B

Plus en détail

Ioannis Parissis UFR IMA Laboratoire LIG. Test logiciel

Ioannis Parissis UFR IMA Laboratoire LIG. Test logiciel Test logiciel Objectif et plan du du cours Présenter les concepts de base sur le test logiciel Introduire des techniques simples pour construire des tests A partir de la spécification informelle du programme

Plus en détail

Génie logiciel Test logiciel A.U. 2013/2014 (Support de cours) R. MAHMOUDI (mahmoudr@esiee.fr) 1 Plan du chapitre - Définition du test logiciel - Principe de base du test logiciel - Les différentes étapes

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

6761 Validation de la conformité 21.03.2007

6761 Validation de la conformité 21.03.2007 6761 Validation de la conformité 21.03.2007 Peter DAEHNE 1 Tests de stress Les tests de stress permettent d étudier le comportement du logiciel lorsque celui-ci est mis dans des situations extrêmes, aux

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

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

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

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

GÉNIE LOGICIEL (SOFTWARE ENGINEERING)

GÉNIE LOGICIEL (SOFTWARE ENGINEERING) GÉNIE LOGICIEL (SOFTWARE ENGINEERING) 6ÈME PARTIE TEST DU LOGICIEL (SOFTWARE TESTING) Faculté des Sciences et Techniques http://perso.univ-st-etienne.fr/jacquene/gl/ Francois.Jacquenet@univ-st-etienne.fr

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

Cours de Test Logiciel

Cours de Test Logiciel S.Bardin Test Logiciel 1/ 41 Cours de Test Logiciel Leçon 2 : Sélection de Tests Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle Rappels S.Bardin Test Logiciel 2/ 41 Vérification et Validation

Plus en détail

Qualité logicielle, tests, débogage

Qualité logicielle, tests, débogage Qualité logicielle, tests, débogage A. Accro aux tests? Une introduction au test logiciel................ 4 Pourquoi le test logiciel? Des tests, pour gagner du temps! Pour aller plus loin Les objectifs

Plus en détail

GPA777 Introduction au génie logiciel

GPA777 Introduction au génie logiciel Université du Québec École de technologie supérieure Département de génie de la production automatisée GPA777 Introduction au génie logiciel Chapitre 6 Validation des logiciels Copyright, 2000 Tony Wong,

Plus en détail

Cours de Test Logiciel

Cours de Test Logiciel S.Bardin Test Logiciel 1/ 22 Cours de Test Logiciel Leçon 3 : Sélection de tests boîte blanche Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle Méthodes de sélection Boite Blanche S.Bardin Test

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

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

Céline LAURENT Responsable Recette Décisionnel / SI. 28/02/07 Céline LAURENT Décisionnel Projet TEST Page 1 sur 27

Céline LAURENT Responsable Recette Décisionnel / SI. 28/02/07 Céline LAURENT Décisionnel Projet TEST Page 1 sur 27 Céline LAURENT Responsable Recette Décisionnel / SI 28/02/07 Céline LAURENT Décisionnel Projet TEST Page 1 sur 27 LES TESTS Définitions Intérêt Difficultés Les différents tests dans le cycle de vie du

Plus en détail

Test du logiciel, cours 3. Tests fonctionnels. Tests fonctionnels. Rappel : spécification du logiciel. Plan Les tests fonctionnels Les phases de tests

Test du logiciel, cours 3. Tests fonctionnels. Tests fonctionnels. Rappel : spécification du logiciel. Plan Les tests fonctionnels Les phases de tests Test du logiciel, cours 3 Tests fonctionnels Critère d arrêt Plan Les tests fonctionnels Les phases de tests Couvertures de tests fonctionnels : On ne peut connaître a priori le nombre de tests nécessaires

Plus en détail

Algorithmique. De la seconde à la terminale

Algorithmique. De la seconde à la terminale Algorithmique De la seconde à la terminale Le calendrier Rentrée 2009 : o En seconde : nouveau programme pour tous Rentrée 2010 : o En première : aménagements en ES et S Rentrée 2011 : o En première :

Plus en détail

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de règles à appliquer dans un ordre déterminé à un nombre

Plus en détail

TD n 1 - Tests de couverture en langage C

TD n 1 - Tests de couverture en langage C ENSEIRB Année 201-2014 ème année IT06 TD n 1 - Tests de couverture en langage C Résumé : Cette feuille compare les différentes techniques de test structurel et fonctionnel, ainsi que les aspects du test

Plus en détail

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Vérification de logiciels par analyse statique Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Contexte et motivations Specification Design architecture Revues and

Plus en détail

L enseignement de l algorithmique au Lycée

L enseignement de l algorithmique au Lycée L enseignement de l algorithmique au Lycée Sisteron 12 novembre 2009 Fernand Didier didier@irem.univ-mrs.fr Approche naïve C est une méthode, une façon systématique de procéder, pour faire quelque chose

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

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

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

Pourquoi et comment tester aujourd hui?

Pourquoi et comment tester aujourd hui? Pourquoi et comment tester aujourd hui??"?"?" ("?"?" Fabrice Bouquet Séminaire "Informatique Scientifique de Besançon" 3 Décembre 2015 INRIA / CNRS Université de Franche-Comté Fabrice Bouquet Test 1 /

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

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

Modélisation des Systèmes d Information Jean-Yves Antoine

Modélisation des Systèmes d Information Jean-Yves Antoine Modélisation des Systèmes d Information Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine Processus de développement logiciel Jean-Yves Antoine U. Bretagne Sud - UFR SSI - IUP Vannes année 2001-2002

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

3: Le test structurel

3: Le test structurel 3: Le test structurel Statique / Dynamique Analyse dynamique : nécessite l exécution du code binaire Principe : à partir du code source (ou d un modèle) et spécification, produire des DT qui exécuteront

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

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

INF-130 Travail Pratique #2

INF-130 Travail Pratique #2 École de technologie supérieure INF-30 Travail Pratique #2 Travail individuel Tracé d un métro Francis Bourdeau, Frédérick Henri et Patrick Salois Remise à la 0 e semaine. Objectifs - Amener l étudiant

Plus en détail

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.intro.univ-tours.fr/~antoine/ UFR Sciences et Techniques

Plus en détail

Introduction aux Composants Logiciels

Introduction aux Composants Logiciels Introduction aux Composants Logiciels Christian Pérez LIP/INRIA Année 2010-11 Plan Introduction aux composants logiciels Pourquoi des composants logiciels Notions de composants logiciels Conclusion Survol

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

Informatique. Programmation en Python.

Informatique. Programmation en Python. BCPST 1 B 13 septembre 2015 Informatique. Programmation en Python. Ce document est un support de cours, il vous permet d avoir sa structure et ses éléments les plus importants. Au cours des séances en

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

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) JDT (débogage), outils d analyse statique Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Epidémiologie, l urne de Pólya, partie II

Epidémiologie, l urne de Pólya, partie II Epidémiologie, l urne de Pólya, partie II Se mettre par groupe de deux. Traiter la fiche dans l ordre. Un compte de rendu de TP devra être rendu avec les réponses écrites aux questions, les recherches

Plus en détail

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Djamel Aouane, Frederic Devernay, Matthieu Moy Mars - avril 2015 1 Manipulations de fichiers Pour organiser des

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

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

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

Mesure de la qualité du code source ALGORITHMES ET OUTILS

Mesure de la qualité du code source ALGORITHMES ET OUTILS Mesure de la qualité du code source ALGORITHMES ET OUTILS Introduction La qualité logicielle dépend de nombreux facteurs : Réactivité de l'équipe, portabilité, fiabilité, ergonomie, performance, sécurité...

Plus en détail

1. Les fondements de l informatique 13

1. Les fondements de l informatique 13 Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

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

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Chap. 2. Langages et automates

Chap. 2. Langages et automates Chapitre 2. Langages et automates 1. Quelques définitions et description d un langage. 2. Les expressions régulières. 3. Les automates fini déterministes et non-déterministes. 4. Construction automatique

Plus en détail

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

Introduction Basé sur la spécification ou l'interface du programme P On peut appliquer le critère de couverture complète du domaine Le test ''boîte noire'' LOG4500 Validation et tests de logiciels Professeur: John MULLINS Introduction asé sur la spécification ou l'interface du programme P On peut appliquer le critère de couverture

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

Plus en détail

--Séance 5 -- Test des exigences

--Séance 5 -- Test des exigences --Séance 5 -- Test des exigences Objectifs: Comprendre l importance des tests et leurs différents types Comprendre les pratiques du Test Driven Development (TDD) Être en mesure de réaliser des tests fonctionnels

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

SNAKE. Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp. Copie d écran du jeu

SNAKE. Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp. Copie d écran du jeu SNAKE Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp Copie d écran du jeu Principe de fonctionnement du jeu : le serpent avance automatiquement, le joueur ne peut agir que sur

Plus en détail

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Les méthodes formelles dans le cycle de vie. Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr

Les méthodes formelles dans le cycle de vie. Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr Les méthodes formelles dans le cycle de vie Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr Plan Introduction Différentes utilisations possibles Différentes techniques pour différentes propriétés à différents

Plus en détail

Série 2 Premiers programmes

Série 2 Premiers programmes Licence pro. GTSBD 2013-2014 Structures de données, langage Python Série 2 Premiers programmes Programmes avec des affectations, des lectures et des écritures Exo 2.1 Le problème de la machine qui rend

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

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

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

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

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

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

Algorithmique au lycée

Algorithmique au lycée Stage PAF christian.brucker@ac-strasbourg.fr jean-paul.quelen@ac-strasbourg.fr 13 mars 2015 Lycée Jean Monnet STRASBOURG Sommaire du stage Les programmes Sommaire du stage Les programmes Sommaire du stage

Plus en détail

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population.

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population. Première STMG1 2014-2015 progression. - 1 Table des matières Fil rouge. 3 Axes du programme. 3 Séquence : Proportion d une sous population dans une population. 3 Information chiffrée : connaître et exploiter

Plus en détail

Automatisation du Test Logiciel

Automatisation du Test Logiciel S.Bardin Test Logiciel 1/ 54 Automatisation du Test Logiciel Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle sebastien.bardin@cea.fr http://sebastien.bardin.free.fr Plan S.Bardin Test Logiciel

Plus en détail

Correction de programmes : Logique de Hoare

Correction de programmes : Logique de Hoare 16 juillet 2009 Logique et informatique Vis-à-vis de l informatique la logique a au moins 2 rôles : 1 Externe et théorique (fondements de l informatique - Électif en S4) : Logique comme méta-informatique

Plus en détail

4: Le test et cycle de développement

4: Le test et cycle de développement 4: Le test et cycle de développement Cycle de développement en V Problème Programme livrable Maintenance Définition des besoins Système Spécification globale Intégration Spécification détaillée Composants

Plus en détail

Importance des cas tests. Qualification de code

Importance des cas tests. Qualification de code Comment s assurer de la qualité? Revue de code Règles d intégration Importance des cas tests Qualification de code 1 Comment s assurer de la qualité? Validation élémentaire - revue de code : En continu

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

nulles dans un langage à objets

nulles dans un langage à objets Prévention de déréférencement de références nulles dans un langage à objets Jean-Sébastien Gélinas, Étienne M. Gagnon, Jean Privat Université du Québec à Montréal Langages et Modèles à Objets Nancy 27

Plus en détail

Exercices théoriques

Exercices théoriques École normale supérieure 2008-2009 Département d informatique Algorithmique et Programmation TD n 9 : Programmation Linéaire Avec Solutions Exercices théoriques Rappel : Dual d un programme linéaire cf.

Plus en détail

DOCUMENTATION ASSOCIEE A UN PROJET LOGICIEL

DOCUMENTATION ASSOCIEE A UN PROJET LOGICIEL DOCUMENTATION ASSOCIEE A UN PROJET LOGICIEL 31 août 2004 Plate-Forme Opérationnelle de modélisation INRA ACTA ICTA http://www.modelia.org FICHE DU DOCUMENT 10 mai 04 N.Rousse - : Création : version de

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

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle Cours 3 : Instructions qui changent l ordre d exécution séquentiel 1 Cours 3 Instructions qui changent l ordre d exécution séquentiel La conditionnelle: instructions si et selon Les boucles Comment raisonner

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

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

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

Java & Algorithme Corrigé du test final

Java & Algorithme Corrigé du test final Java & Algorithme Corrigé du test final 1 QUESTIONS EN JAVA Chaque question est sur un point, sauf certaines sur deux points. En tout, le QCM est noté sur 24 : la note est divisée par 6 pour revenir entre

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

Textes de référence : articles 313-53-2 à 313-62, 314-3-2 du règlement général de l AMF

Textes de référence : articles 313-53-2 à 313-62, 314-3-2 du règlement général de l AMF Instruction AMF n 2012-01 Organisation de l activité de gestion d OPCVM ou d OPCI et du service d investissement de gestion de portefeuille pour le compte de tiers en matière de gestion des risques Textes

Plus en détail

PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1

PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1 PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1 CYCLE de VIE des SYSTEMES INFORMATISES Expression du besoin Développement du «système» Exploitation

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

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce Année 2007-2008 Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce B. Monsuez Projet informatique «Voyageur de commerce» Résolution

Plus en détail

ATELIER ALGORITHME PREMIERS PAS Journée d information sur les nouveaux programmes de Première S-ES 2010-2011

ATELIER ALGORITHME PREMIERS PAS Journée d information sur les nouveaux programmes de Première S-ES 2010-2011 Pour me contacter : irene.rougier@ac-clermont.fr 1. Introduction ATELIER ALGORITHME PREMIERS PAS Journée d information sur les nouveaux programmes de Première S-ES 2010-2011 De nombreux documents et informations

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

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 11 : Arbre couvrant Prétraitement Benjamin Wack 2015-2016 1 / 32 La dernière fois Rappels sur les graphes Problèmes classiques Algorithmes d optimisation

Plus en détail

DECHARGEMENT ET CHARGEMENT MASSIF DES DONNEES

DECHARGEMENT ET CHARGEMENT MASSIF DES DONNEES DECHARGEMENT ET CHARGEMENT MASSIF DES DONNEES Les contenus 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 être

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

Textes de référence : articles 313-53-2 à 313-60, articles 318-38 à 318-43 et 314-3-2 du règlement général de l AMF

Textes de référence : articles 313-53-2 à 313-60, articles 318-38 à 318-43 et 314-3-2 du règlement général de l AMF Instruction AMF n 2012-01 Organisation de l activité de gestion de placements collectifs et du service d investissement de gestion de portefeuille pour le compte de tiers en matière de gestion des Textes

Plus en détail

IFT3913 Qualité du logiciel et métriques. Chapitre 2

IFT3913 Qualité du logiciel et métriques. Chapitre 2 IFT3913 Qualité du logiciel et métriques Chapitre 2 Qualité du produit logiciel Plan du cours Introduction Qualité du logiciel Théorie de la mesure Mesure de la qualité du logiciel Études empiriques Mesure

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

CRÉER UN COURS EN LIGNE

CRÉER UN COURS EN LIGNE Anne DELABY CRÉER UN COURS EN LIGNE Deuxième édition, 2006, 2008 ISBN : 978-2-212-54153-3 2 Que recouvre le concept d interactivité? Dans une perspective de cours en ligne, une activité interactive est

Plus en détail