Méthodes de test. Mihaela Sighireanu

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

Download "Méthodes de test. Mihaela Sighireanu"

Transcription

1 UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 sighirea/cours/methtest/

2 Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point de départ 4 Test en boîte blanche Test en boîte noire Combiner les stratégies 5

3 Qu est-ce le test? Propriétés Test d un système = processus d essai des exécutions d un système selon un certain critère. L observation de chaque exécution est comparée avec la spécification du système sous test : si conforme : test passé (ACCEPT) sinon : test échoué (FAIL)

4 Propriétés Propriétés du test (1/2) Essai = non-exhaustivité : NON : absence d erreurs NON : fonctionnalité assurée NON : trouver toutes les erreurs OUI : trouver des erreurs d exécution du système sous certaines conditions. Spécification = oracle de conformité. Idéalement, elle doit contenir des informations complètes et correctes pour le programmeur = programmer sans erreurs par rapport à la spéc le testeur = trouver le plus d erreurs par rapport à la spéc

5 Propriétés Propriétés du test (1/2) Essai = non-exhaustivité : NON : absence d erreurs NON : fonctionnalité assurée NON : trouver toutes les erreurs OUI : trouver des erreurs d exécution du système sous certaines conditions. Spécification = oracle de conformité. Idéalement, elle doit contenir des informations complètes et correctes pour le programmeur = programmer sans erreurs par rapport à la spéc le testeur = trouver le plus d erreurs par rapport à la spéc

6 Propriétés Propriétés du test (1/2) Essai = non-exhaustivité : NON : absence d erreurs NON : fonctionnalité assurée NON : trouver toutes les erreurs OUI : trouver des erreurs d exécution du système sous certaines conditions. Spécification = oracle de conformité. Idéalement, elle doit contenir des informations complètes et correctes pour le programmeur = programmer sans erreurs par rapport à la spéc le testeur = trouver le plus d erreurs par rapport à la spéc

7 Propriétés Propriétés du test (1/2) Essai = non-exhaustivité : NON : absence d erreurs NON : fonctionnalité assurée NON : trouver toutes les erreurs OUI : trouver des erreurs d exécution du système sous certaines conditions. Spécification = oracle de conformité. Idéalement, elle doit contenir des informations complètes et correctes pour le programmeur = programmer sans erreurs par rapport à la spéc le testeur = trouver le plus d erreurs par rapport à la spéc

8 Propriétés Propriétés du test (1/2) Essai = non-exhaustivité : NON : absence d erreurs NON : fonctionnalité assurée NON : trouver toutes les erreurs OUI : trouver des erreurs d exécution du système sous certaines conditions. Spécification = oracle de conformité. Idéalement, elle doit contenir des informations complètes et correctes pour le programmeur = programmer sans erreurs par rapport à la spéc le testeur = trouver le plus d erreurs par rapport à la spéc

9 Propriétés Propriétés du test (1/2) Essai = non-exhaustivité : NON : absence d erreurs NON : fonctionnalité assurée NON : trouver toutes les erreurs OUI : trouver des erreurs d exécution du système sous certaines conditions. Spécification = oracle de conformité. Idéalement, elle doit contenir des informations complètes et correctes pour le programmeur = programmer sans erreurs par rapport à la spéc le testeur = trouver le plus d erreurs par rapport à la spéc

10 Propriétés Propriétés du test (2/2)... par rapport à la vérification exhaustive : Les plus : très simple toujours faisable bon rapport performance / coût très populaire Les moins : peu rigoureux non-exhaustif mesure difficile de sa qualité subjectivité du testeur

11 Un peu de génie logiciel de test Méthode de développement en V!"#" $"$! '#" $%$" &" $"$! &*+,- ()"'*#" " $"$! $"$! " $"$!,#'"

12 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

13 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

14 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

15 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

16 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

17 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

18 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

19 Niveaux et phases Un peu de génie logiciel de test Niveaux : Phases : Test unitaire = test des (petites) parties du code, séparément. Test d intégration = test d un ensemble de parties du code qui coopèrent. Test du système = test du système entier, en inspectant sa fonctionnalité. Test d acceptation = effectué par le client pour s assurer de la conformité au besoin. Test de régression = test réalisé pendant la maintenance après un changement, afin de s assurer que les système continue de fonctionner correctement. Test de robustesse = tester des entrées non-prévues. Test sous stress = tester en conditions de surcharge.

20 Qu est ce le test? Eléments Problèmes Point de départ Cas de test (TC) : une exécution du programme déclenchée par des données de test (DT). Suite de tests (TS) : un ensemble de DT. Objectif de test (TO) : comportement de la spéc à tester. Système sous test (SUT ou IUT) : implémentation du système à tester. SUT (DT) = TO (spécification) Environnement de test : assure l interaction ( =) entre le SUT et le testeur.

21 Qu est ce le test? Eléments Problèmes Point de départ Cas de test (TC) : une exécution du programme déclenchée par des données de test (DT). Suite de tests (TS) : un ensemble de DT. Objectif de test (TO) : comportement de la spéc à tester. Système sous test (SUT ou IUT) : implémentation du système à tester. SUT (DT) = TO (spécification) Environnement de test : assure l interaction ( =) entre le SUT et le testeur.

22 Qu est ce le test? Eléments Problèmes Point de départ Cas de test (TC) : une exécution du programme déclenchée par des données de test (DT). Suite de tests (TS) : un ensemble de DT. Objectif de test (TO) : comportement de la spéc à tester. Système sous test (SUT ou IUT) : implémentation du système à tester. SUT (DT) = TO (spécification) Environnement de test : assure l interaction ( =) entre le SUT et le testeur.

23 Qu est ce le test? Eléments Problèmes Point de départ Cas de test (TC) : une exécution du programme déclenchée par des données de test (DT). Suite de tests (TS) : un ensemble de DT. Objectif de test (TO) : comportement de la spéc à tester. Système sous test (SUT ou IUT) : implémentation du système à tester. SUT (DT) = TO (spécification) Environnement de test : assure l interaction ( =) entre le SUT et le testeur.

24 Qu est ce le test? Eléments Problèmes Point de départ Cas de test (TC) : une exécution du programme déclenchée par des données de test (DT). Suite de tests (TS) : un ensemble de DT. Objectif de test (TO) : comportement de la spéc à tester. Système sous test (SUT ou IUT) : implémentation du système à tester. SUT (DT) = TO (spécification) Environnement de test : assure l interaction ( =) entre le SUT et le testeur.

25 Qu est ce le test? Eléments Problèmes Point de départ Cas de test (TC) : une exécution du programme déclenchée par des données de test (DT). Suite de tests (TS) : un ensemble de DT. Objectif de test (TO) : comportement de la spéc à tester. Système sous test (SUT ou IUT) : implémentation du système à tester. SUT (DT) = TO (spécification) Environnement de test : assure l interaction ( =) entre le SUT et le testeur.

26 Qu est ce le test? Eléments Problèmes Point de départ Cas de test (TC) : une exécution du programme déclenchée par des données de test (DT). Suite de tests (TS) : un ensemble de DT. Objectif de test (TO) : comportement de la spéc à tester. Système sous test (SUT ou IUT) : implémentation du système à tester. SUT (DT) = TO (spécification) Environnement de test : assure l interaction ( =) entre le SUT et le testeur.

27 Problèmes à résoudre Eléments Problèmes Point de départ Non-exhaustivité = Problème : Comment sélectionner une suite de tests qui me permet de détecter le plus d erreurs? Réponse : Stratégies de test. Non-exhaustivité = Problème : Comment mesurer l efficacité du test? Réponse : Critères de couverture du code. Subjectivité et rigueur = Problème : Comment formaliser le test? Réponse : Modèles formels de spécification ou de description du code.

28 Problèmes à résoudre Eléments Problèmes Point de départ Non-exhaustivité = Problème : Comment sélectionner une suite de tests qui me permet de détecter le plus d erreurs? Réponse : Stratégies de test. Non-exhaustivité = Problème : Comment mesurer l efficacité du test? Réponse : Critères de couverture du code. Subjectivité et rigueur = Problème : Comment formaliser le test? Réponse : Modèles formels de spécification ou de description du code.

29 Problèmes à résoudre Eléments Problèmes Point de départ Non-exhaustivité = Problème : Comment sélectionner une suite de tests qui me permet de détecter le plus d erreurs? Réponse : Stratégies de test. Non-exhaustivité = Problème : Comment mesurer l efficacité du test? Réponse : Critères de couverture du code. Subjectivité et rigueur = Problème : Comment formaliser le test? Réponse : Modèles formels de spécification ou de description du code.

30 Point de départ Eléments Problèmes Point de départ La spécification du système donnée sous la forme de une description informelle un ensemble de scénario d utilisation des diagrammes de séquence un automate Le système sous test. Une ou plusieurs stratégies de test. Un critère de sélection des tests. Un environnement de test.

31 Test en boîte blanche Boîte blanche Boîte noire Hybrides Cas de tests générés en partant du code, en inspectant les chemins d exécution du système. Comme le nombre de chemins d exécution peut être infini, on définit des critères de couverture afin d augmenter la probabilité de trouver des erreurs avec des chemins pas trop longs, en petit nombre. Critère de couverture = quels sont les chemins d exécution à tester afin de couvrir le plus de comportement du système. Approprié pour le test unitaire ou d intégration, mais il passe mal à l échelle.

32 Boîte blanche Boîte noire Hybrides en boîte blanche Inspection de code et exécution pas à pas Très utilisé mais lourd, il trouve 30-70% d erreurs. Test structurel statique analyse statique. Test structurel dynamique avec couverture du flot de contrôle avec couverture du flot des données Test par mutation = sélection des TC par rapport à leur effet au changement su système.

33 Graphe de flot du programme Boîte blanche Boîte noire Hybrides Abstraction du code source, un graphe de flot contient noeuds = blocks d instructions en séquence, sans saut arcs = sauts dans le flot de contrôle Permet de raisonner sur la couverture du programme selon des critères choisis (flot de contrôle ou flot de données).

34 Exemple Boîte blanche Boîte noire Hybrides 1 / Outputs r e s u l t = value 2 i f r e s u l t > maxint then error 3 / 4 void maxsum( int maxint, int value ) { 5 int r e s u l t =0; 6 int i =0; 7 i f ( value < 0) 8 value = value ; 9 while ( i< value && r e s u l t <= maxint ) { 10 i ++; 11 r e s u l t = r e s u l t+i ; 12 } 13 i f ( r e s u l t <= maxint ) 14 p r i n t l n ( r e s u l t ) ; 15 else 16 p r i n t l n ( e r r or ) ; 17 }

35 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (1/2) Tous les noeuds : le plus faible. Exemple : DT 1 = (10, 1), DT 2 = (0, 1) Tous les arcs : test de chaque décision Exemple : DT 1 = (10, 3), DT 2 = (0, 1) Toutes les conditions : peut ne pas couvrir toutes les décisions Exemple : DT 3 = ( 1, 1), DT 4 = (1, 0) Toutes les combinaisons de conditions : explosion combinatoire! Tous les chemins : le plus fort, impossible à réaliser s il y a des boucles.

36 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (1/2) Tous les noeuds : le plus faible. Exemple : DT 1 = (10, 1), DT 2 = (0, 1) Tous les arcs : test de chaque décision Exemple : DT 1 = (10, 3), DT 2 = (0, 1) Toutes les conditions : peut ne pas couvrir toutes les décisions Exemple : DT 3 = ( 1, 1), DT 4 = (1, 0) Toutes les combinaisons de conditions : explosion combinatoire! Tous les chemins : le plus fort, impossible à réaliser s il y a des boucles.

37 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (1/2) Tous les noeuds : le plus faible. Exemple : DT 1 = (10, 1), DT 2 = (0, 1) Tous les arcs : test de chaque décision Exemple : DT 1 = (10, 3), DT 2 = (0, 1) Toutes les conditions : peut ne pas couvrir toutes les décisions Exemple : DT 3 = ( 1, 1), DT 4 = (1, 0) Toutes les combinaisons de conditions : explosion combinatoire! Tous les chemins : le plus fort, impossible à réaliser s il y a des boucles.

38 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (1/2) Tous les noeuds : le plus faible. Exemple : DT 1 = (10, 1), DT 2 = (0, 1) Tous les arcs : test de chaque décision Exemple : DT 1 = (10, 3), DT 2 = (0, 1) Toutes les conditions : peut ne pas couvrir toutes les décisions Exemple : DT 3 = ( 1, 1), DT 4 = (1, 0) Toutes les combinaisons de conditions : explosion combinatoire! Tous les chemins : le plus fort, impossible à réaliser s il y a des boucles.

39 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (1/2) Tous les noeuds : le plus faible. Exemple : DT 1 = (10, 1), DT 2 = (0, 1) Tous les arcs : test de chaque décision Exemple : DT 1 = (10, 3), DT 2 = (0, 1) Toutes les conditions : peut ne pas couvrir toutes les décisions Exemple : DT 3 = ( 1, 1), DT 4 = (1, 0) Toutes les combinaisons de conditions : explosion combinatoire! Tous les chemins : le plus fort, impossible à réaliser s il y a des boucles.

40 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

41 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

42 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

43 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

44 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

45 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

46 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

47 Boîte blanche Boîte noire Hybrides Couverture du flot de contrôle (2/2) Test des boucles : les critères vus ne sont pas suffisants! Une seule boucle (simple), tester les exécutions : aucune itération une seule itération deux itérations un nombre typique d itérations n 1, n, n + 1 itérations avec n le nombre d itérations. Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5) Boucles imbriquées : commencer par fixer le nombre d itérations de la boucle la plus extérieure et tester les boucles intérieures comme boucle simple. Boucles en suite : si dépendantes, tester comme imbriquées, sinon tester comme simple.

48 Boîte blanche Boîte noire Hybrides Couverture du flot de données Pour chaque définition (def ) de variable (affectation), trouver un chemin vers son utilisation dans un calcul (c use) ou dans un prédicat (p use). Une paire définition utilisation s appelle paire DU (P ou C). Critères : all defs : couvrir toutes les définitions. all uses : couvrir au moins un chemin pour chaque paire DU avec variantes all c uses ou all p uses all du uses : couvrir tous les chemins d une paire DU. Exemple : fonction maxsum

49 Boîte blanche Boîte noire Hybrides Couverture du flot de données Pour chaque définition (def ) de variable (affectation), trouver un chemin vers son utilisation dans un calcul (c use) ou dans un prédicat (p use). Une paire définition utilisation s appelle paire DU (P ou C). Critères : all defs : couvrir toutes les définitions. all uses : couvrir au moins un chemin pour chaque paire DU avec variantes all c uses ou all p uses all du uses : couvrir tous les chemins d une paire DU. Exemple : fonction maxsum

50 Boîte blanche Boîte noire Hybrides Couverture du flot de données Pour chaque définition (def ) de variable (affectation), trouver un chemin vers son utilisation dans un calcul (c use) ou dans un prédicat (p use). Une paire définition utilisation s appelle paire DU (P ou C). Critères : all defs : couvrir toutes les définitions. all uses : couvrir au moins un chemin pour chaque paire DU avec variantes all c uses ou all p uses all du uses : couvrir tous les chemins d une paire DU. Exemple : fonction maxsum

51 Test en boîte noire Boîte blanche Boîte noire Hybrides Suppose que la structure interne du système n est pas connue. Basé sur la spécification de l interface du système et de ses fonctionnalités, il s assure de leur respect par l implémentation du système. Approprié pour le test du système mais également pour le test unitaire indépendant. : Partition des entrées. Analyse des valeurs limite. Analyse du comportement....

52 Partition des entrées Boîte blanche Boîte noire Hybrides Idée : diviser le domaine des entrées en un nombre fini de classes tel que le programme réagit pareil pour toutes les valeurs de la classe, donc il faut tester qu une valeur par classe! Stratégie de test : 1 Identifier les classes d équivalence des entrées : Sur la base des conditions sur les entrées/sortes. En prenant des classes d entrées valides et invalides. 2 Définir un ou quelques TC pour chaque classe.

53 Exemple : Valeur absolue Boîte blanche Boîte noire Hybrides Tester une fonction qui calcule la valeur absolue d un entier. Classes d équivalence pour les entrées : Condition Classe valide Classe invalide nb. entrées 1 0, > 1 type entrée int string valeurs valides < 0, >= 0 Données de test : -10, 100, XYZ, rien, 10 20

54 Exemple : Calcul somme max Boîte blanche Boîte noire Hybrides Tester une fonction qui calcule la somme des premiers valueentiers tant que cette somme reste plus petite que maxint. Sinon, une erreur est affichée. Si value est négatif, la valeur absolue est considérée. Classes d équivalence pour les entrées : Condition Classe valide Classe invalide nb. entrées 2 < 2, > 2 type entrée int int string int, int string valeurs valides value < 0, 0 valeurs valides maxint > somme, somme Données de test : maxint value return maxint value return error error error XYZ 10 error error error

55 Analyse des valeurs limite Boîte blanche Boîte noire Hybrides Idée : les erreurs se nichent dans les cas limite, donc tester les valeurs aux limites des domaines ou des classes d équivalence. Stratégie de test : Tester les bornes des classes d équivalence. Tester les bornes du domaine des entrées. Tester les entrées qui produisent les valeurs aux bornes pour les sorties. Exemples...

56 Boîte blanche Boîte noire Hybrides Comment combiner les stratégies? Recettes : Jamais commencer par le test en BB! Commencer avec le test en BN. Regarder la couverture du graphe (les différentes classes). Utiliser des outils de gestion de test et de calcul de la couverture. Ajouter des DT en utilisant le test en BB pour couvrir tout le code.

57 Automatisation du test : Générateur de test : aléatoire ou guidé par des critères (voir la suite). Analyseur de couverture : calcule le pourcentage de code couvert durant le test. Record & playback (Exécutif de test) : enregistre les actions de l utilisateur pour pouvoir les rejouer à la demande; utile pour le test des IHM et le test de régression. Gestionnaire de test : maintient des suites de test, leurs résultat et produit des rapports. Exemples : TGV, XUnit, gcov, Coverlipse, etc.

Environnements de développement

Environnements de développement Environnements de développement UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/edi/ Test de programmes Résumé 1 Un peu de génie logiciel 2

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

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

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

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

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

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

Plus en détail

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

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

Description et illustration du processus unifié

Description et illustration du processus unifié USDP Description et illustration du processus unifié Définit un enchaînement d activités Est réalisé par un ensemble de travailleurs Avec des rôles, des métiers Avec pour objectifs de passer des besoins

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

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

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

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

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

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

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

Conduite de Projet Cours 7 Testing

Conduite de Projet Cours 7 Testing Conduite de Projet Cours 7 Testing Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire IRIF, Université Paris Diderot 2015 2016 URL http://upsilon.cc/zack/teaching/1516/cproj/ Copyright 2016

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

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

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

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

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

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

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

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

Analyse de l introduction d anti-patrons de testabilité au cours de développement

Analyse de l introduction d anti-patrons de testabilité au cours de développement Analyse de l introduction d anti-patrons de testabilité au cours de développement Equipe VASCO MUHAMMAD RABEE SHAHEEN LYDIE DU BOUSQUET 22 Octobre 2009 Journée SEmba 1/ 26 Analyse de l introduction d anti-patrons

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

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

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

Discrétisation et génération de hiérarchies de concepts

Discrétisation et génération de hiérarchies de concepts Prétraitement des données 1 Pourquoi prétraiter les données? Nettoyage des données Intégration et transformation Réduction des données Discrétisation et génération de hiérarchies de g concepts Pourquoi

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

Cours de Test Logiciel

Cours de Test Logiciel S.Bardin Test Logiciel 1/ 31 Cours de Test Logiciel Leçon 4 : Tests de régression Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle sebastien.bardin@cea.fr http://sebastien.bardin.free.fr Tests

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

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

Analyse,, Conception des Systèmes Informatiques

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

Plus en détail

Système. Introduction aux systèmes informatiques

Système. Introduction aux systèmes informatiques Introduction aux systèmes informatiques Système Un système est une collection organisée d'objets qui interagissent pour former un tout Objets = composants du système Des interconnexions (liens) entre les

Plus en détail

Bienvenue dans le monde de la construction logicielle

Bienvenue dans le monde de la construction logicielle Chapitre 1 Bienvenue dans le monde de la construction logicielle Sommaire : 1.1 La construction logicielle, qu est-ce que c est? : page 3 1.2 Pourquoi la construction logicielle est-elle importante? :

Plus en détail

Noël NOVELLI ; Université de la Méditerranée ; LIF et Département d Informatique Case 901 ; 163 avenue de Luminy 13 288 MARSEILLE cedex 9

Noël NOVELLI ; Université de la Méditerranée ; LIF et Département d Informatique Case 901 ; 163 avenue de Luminy 13 288 MARSEILLE cedex 9 Noël NOVELLI ; Université de la Méditerranée ; LIF et Département d Informatique Case 901 ; 163 avenue de Luminy 13 288 MARSEILLE cedex 9 Documentation La documentation a pour but de laisser des traces

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

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

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

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

Contrôle sur papier. INF441 Modex Programmation efficace juin 2010. 1. Photo de dés

Contrôle sur papier. INF441 Modex Programmation efficace juin 2010. 1. Photo de dés Contrôle sur papier INF441 Modex Programmation efficace juin 2010 1. Photo de dés Plusieurs dés ont été lancés sur une table, et une photo a été pris de haut. Cette photo est représentée par une matrice.

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

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

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

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

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 3 : Actions, Procédures Université Lille 1 - Polytech Lille Conception Structurée Descendante Les Fonctions Les Actions / les Procédures Résumé Conception Structurée

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

Algorithmique. Mode d application

Algorithmique. Mode d application I - Généralités Algorithmique T ale S Définition: Un algorithme est une suite finie d instructions permettant la résolution systématique d un problème donné. Un algorithme peut-être utilisé pour décrire

Plus en détail

Algorithmique... Complexité. Luc Brun. luc.brun@greyc.ensicaen.fr. A partir de travaux de Habib Abdulrab(Insa de Rouen) Complexité p.

Algorithmique... Complexité. Luc Brun. luc.brun@greyc.ensicaen.fr. A partir de travaux de Habib Abdulrab(Insa de Rouen) Complexité p. Algorithmique... Complexité Luc Brun luc.brun@greyc.ensicaen.fr A partir de travaux de Habib Abdulrab(Insa de Rouen) Complexité p.1/25 Plan... Notion de complexité Comment évaluer la complexité d un algorithme

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

Rédaction de cas d utilisation (Use Case)

Rédaction de cas d utilisation (Use Case) labsticc.univ-brest.fr/pages_perso/babau/ Rédaction de cas d utilisation (Use Case) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Objectif des Cas d Utilisation

Plus en détail

Projet : Plan Assurance Qualité

Projet : Plan Assurance Qualité Projet : Document : Plan Assurance Qualité 2UP_SPEC_DEV1 VERSION 1.00 Objet Ce document a pour objectif de définir la démarche d analyse et de conception objet ainsi les activités liées. Auteur Eric PAPET

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

Évaluation et implémentation des langages

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

Plus en détail

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...

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

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

Modélisation Principe Autre principe

Modélisation Principe Autre principe Modélisation Principe : un modèle est une abstraction permettant de mieux comprendre un objet complexe (bâtiment, économie, atmosphère, cellule, logiciel, ). Autre principe : un petit dessin vaut mieux

Plus en détail

Evaluation et tests d une interface graphique

Evaluation et tests d une interface graphique Evaluation et tests d une interface graphique Tâcheconsidérée considérée Utilisateurs Poste de travail Domaine d activité Analyse de la tâche Contexte de travail Stéréotype d utilisateur Critères d utilité

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

Informatique TP1 : Découverte de Python CPP 1A

Informatique TP1 : Découverte de Python CPP 1A Informatique TP1 : Découverte de Python CPP 1A Romain Casati, Wafa Johal, Frederic Devernay, Matthieu Moy Avril - juin 2014 1 Découverte de l IDE : IDLE IDLE est un environnement de développement (Integrated

Plus en détail

Analyse statique de programmes et interprétation abstraite. Olivier Bouissou

Analyse statique de programmes et interprétation abstraite. Olivier Bouissou Analyse statique de programmes et interprétation abstraite Olivier Bouissou Organisation du cours. Intervenants : cours et TP assurés par Olivier Bouissou (olivier.bouissou@cea.fr) - CEA LIST. Déroulement

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

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 et. Plan CHAPITRE 2: NOTIONS D'ALGORITHMIQUE CONCEPTS DE BASE DU LANGAGE C CHAPITRE 3: LES TABLEAUX LES POINTEURS CHAPITRE 4

Algorithmique et. Plan CHAPITRE 2: NOTIONS D'ALGORITHMIQUE CONCEPTS DE BASE DU LANGAGE C CHAPITRE 3: LES TABLEAUX LES POINTEURS CHAPITRE 4 Université Mohammed V Agdal Ecole Mohammadia d'ingénieurs Département Génie Informatique Rabat CHAPITRE 1: Plan NOTIONS D'ALGORITHMIQUE CHAPITRE 2: Algorithmique et Programmation en Langage C CONCEPTS

Plus en détail

Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost

Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost Institut Galilée Vivien Boyi-Banga INFO 2 Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost Enseignant : M.Feiz Année 2009-2010 1. Définir la borne de notre système Le système est composé

Plus en détail

MODÉLISATION DES BESOINS

MODÉLISATION DES BESOINS MODÉLISATION DES BESOINS Diagrammes de cas d utilisation Cas d'utilisation : Use Case (Jacobson) Permettent déxprimer les attentes/besoins des utilisateurs Permettent de définir les limites du système

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

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

DU MODÈLE À LA PLATE-FORME EMBARQUÉE

DU MODÈLE À LA PLATE-FORME EMBARQUÉE 1 DU MODÈLE À LA PLATE-FORME EMBARQUÉE Versailles, 29 novembre 2011 Journée «Des spécifications à la validation temps réel» 2 DU MODÈLE À LA PLATE-FORME EMBARQUÉE Versailles, 29 novembre 2011 UTILISATION

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

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

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel)

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel) Activer l onglet Développeur (Excel) Programmation VBA Michel Reid Cliquez sur le bouton Office (coin supérieur gauche) Cliquez sur le bouton Options Excel Dans la section Standard, cochez la case Afficher

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

Développement itératif, évolutif et agile

Développement itératif, évolutif et agile Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie

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

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

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

Auto-évaluation Introduction à la programmation

Auto-évaluation Introduction à la programmation Auto-évaluation Introduction à la programmation Document: f0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION INTRODUCTION

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

IN 101 - Cours 05. 7 octobre 2011. Un problème concret Recherche de collisions

IN 101 - Cours 05. 7 octobre 2011. Un problème concret Recherche de collisions Un problème concret Recherche de collisions IN 101 - Cours 05 7 octobre 2011 Le paradoxe des anniversaires dit que 365 élèves sont suffisants (en moyenne) pour avoir une collision d anniversaire, deux

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

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

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

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

Nb de Pages : 11 Taille : 250 368 octets Version : 1.0. Référence : oepa_ieee730_20050120. Auteurs : Pierre Gallice

Nb de Pages : 11 Taille : 250 368 octets Version : 1.0. Référence : oepa_ieee730_20050120. Auteurs : Pierre Gallice OEPA Traduction de la norme IEEE 730 Nb de Pages : 11 Taille : 250 368 octets Version : 1.0 Référence : oepa_ieee730_20050120 Auteurs : Pierre Gallice Validé par : Antoine Tallon, chef de projet Destinataires

Plus en détail

Le Processus Unifié appliqué au projet MOOCS

Le Processus Unifié appliqué au projet MOOCS Le Processus Unifié appliqué au projet MOOCS Violaine Louvet GTN, 7 mai 2003, Orsay Le Processus Unifie applique au projet MOOCS p. 1 L objet Objet = entité regroupant des données (attributs) et des services

Plus en détail

Table des matières. Première partie Situation du test fonctionnel. Préface... Avant-propos...

Table des matières. Première partie Situation du test fonctionnel. Préface... Avant-propos... Préface..................................................................... Avant-propos................................................................ III XIII Première partie Situation du test fonctionnel

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

Algorithmique Distribuée

Algorithmique Distribuée Algorithmique Distribuée Problèmes et Algorithmes Fondamentaux Arnaud labourel http://pageperso.lif.univ-mrs.fr/ arnaud.labourel Aix-Marseille Université 15 janvier 2014 Arnaud Labourel (AMU) Algorithmique

Plus en détail

Cours de Génie Logiciel. David Janiszek. Le projet. En résumé. Troisième partie III. Eléments de gestion de projet

Cours de Génie Logiciel. David Janiszek. Le projet. En résumé. Troisième partie III. Eléments de gestion de projet Troisième partie III Eléments de gestion de projet Un projet informatique est l ensemble des activités et des actions à entreprendre pour répondre au besoin d informatisation d un ensemble de tâches dans

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

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

Analyse statique de programmes Typage et analyse statique au sein de Java

Analyse statique de programmes Typage et analyse statique au sein de Java Analyse statique de programmes Typage et analyse statique au sein de Java Master Professionnel Informatique spécialité FSIL/FSI Jean-Marc Talbot jean-marc.talbot@lif.univ-mrs.fr Aix-Marseille Université

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon MDE Model Driven Engineering http://www.rzo.free.fr Pierre PARREND 1 Mai 2005 Sommaire MDE : principe MDE et le génie logiciel MDE et UML MDE et les Design Patterns

Plus en détail

Cours 1: Introduction à l algorithmique

Cours 1: Introduction à l algorithmique 1 Cours 1: Introduction à l algorithmique Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique 2011-12 Algorithmique 2 Aujourd hui Calcul de x n Maximum Complexité d un problème Problème

Plus en détail