2006-20071 outils danalyse statique année : 2006/2007 glg101 : test et validation du logiciel nom...

45
2006-2007 1 Outils d’analyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur : Jean-Yves Bouttery Présentation: le 15 mai 2007 Auditoire : Mr ANDRZEJAK Willy et Auditeurs CNAM

Upload: meraud-barbe

Post on 03-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 1

Outils d’analyse statique

Année : 2006/2007GLG101 : Test et Validation du logiciel

Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT

Rédacteur : Jean-Yves Bouttery Présentation: le 15 mai 2007

Auditoire : Mr ANDRZEJAK Willy et Auditeurs CNAM

Page 2: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 2

INTRODUCTION

Augmentation puissance des ordinateurs.

Augmentation complexité des programmes.

Risque de catastrophes .*Airbus 88.*Ariane V en 96.*Pb de tous les jours.

Page 3: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 3

Comment éviter cela?

En effectuant des tests

Boite noire Boite blanche

Page 4: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 4

Différences

Tests boîtes noires• Tests fonctionnels • Méconnaissance de l’implémentation

technique du besoin fonctionnel• Les jeux d’essai dépendent des spécification

du besoin Tests boîtes blanches

• Tests structurels• Les jeux d’essai dépendent de l’analyse du

code source

Page 5: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 5

Plan de l’exposé

I. Différentes utilisations des outils.

II. Informations produites.III. Méthodes d’analyse.IV. Les outils.

Page 6: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 6

Différentes utilisations.

1. La recherche de métriques.-La proportion de code à l’intérieur

de boucles.-Le taux de commentaires.-Le nombre de lignes

plus lisibles et faciles à maintenir.

Page 7: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 7

Différentes utilisations.

2. Erreurs pouvant survenir à l’exécution.

-Etendre le travail du compilateur.

-ex: l’accès à un tableau à l’extérieur de ses bornes

gain de temps pour régler les pb

Page 8: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 8

Différentes utilisations.

3. Le découpage ou slicing.-Réutilisation d’une partie de

code.-Faciliter la compréhension.

Faire ressortir certaines instructions d’un programme en relation avec une propriété.Possibilité de réduire le problème de l’indécidabilité de l’analyse statique.

Page 9: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 9

Différentes utilisations.

4. Politique de sécurité.

Recherche de codes malicieux .

Page 10: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 10

Plan de l’exposé

I. Différentes utilisations des outils.

II. Informations produites.III. Méthodes d’analyse.IV. Les outils.

Page 11: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 11

Informations produites.

1. l’ arbre syntaxique.-La syntaxe d’un langage étant

représentée par une grammaire, il est possible de faire un arbre syntaxique du programme.

-départ pour acquérir les informations

Page 12: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 12

Informations produites.

2. Le graphe de flot de contrôle. -les noeuds = instructions.-arc vers nœuds=instruction

suivante-Il met en évidence les boucles,

instructions conditionnelles

Un chemin = scénario d’exécution.

Page 13: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 13

Informations produites.

void main() { int x = 0; int y = 1; while (y < 10) { y = 2 * y; x = x + 1;}printf ("%d",x); printf ("%d",y); }

Page 14: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 14

Informations produites.

3. Le graphe de dépendance de contrôle. -montre quelles instructions seront

exécutées en fonction de la valeur d’une expression dans le programme.

-Pour deux noeuds p et q, un arc va de p vers q si la valeur de l’expression p a un impact sur le fait que l’instruction q soit exécutée ou non.

Page 15: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 15

Informations produites.

Page 16: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 16

Informations produites.4. L’analyse du flot de données.

-informe sur le déplacement des données dans le programme.

Une information de base qui peut être très utile

est l’ensemble des variables utilisées et celui des

variables modifiées pour chaque instruction duprogramme.

Page 17: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 17

Informations produites.void main()

{ int x = 0; Utilise={} Définit={x}int y = 1; Utilise={} Définit={y}while (y < 10) Utilise={y} Définit={}

{ y = 2 * y; Utilise={y} Définit={y}

x = x + 1; Utilise={x} Définit={x}

} printf ("%d",x); Utilise={x} Définit={}

printf ("%d",y); Utilise={y} Définit={} }

Page 18: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 18

Informations produites.

5. Le graphe de dépendance de données.

-Dans ce graphe, un arc va de p vers q s’il est possible que la valeur d’une des variables modifiées à l’instruction p soit utilisée à l’instruction q sans qu’elle ne soit modifiée entre temps.

Page 19: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 19

Informations produites.

Page 20: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 20

Informations produites.

5. Graphe de dépendance du programme.

-l’union du graphe de dépendance de contrôle et du graphe de dépendance de données.

Page 21: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 21

Informations produites.

Page 22: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 22

Informations produites.

6. Il existe toute une série de graphes qui peuvent être créer en fonction des besoins.(dépendance système)

Page 23: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 23

Informations produites.

7. Le découpage.-Le découpage arrière:

Les noeuds qui peuvent atteindre le nœud choisi en suivant les arcs à contresens. -Le découpage avant:

Les noeuds que l’on peut atteindre à partir du noeud choisi en suivant les arcs.

Page 24: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 24

Informations produites.

Page 25: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 25

Informations produites.

Page 26: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 26

Informations produites.int somme(int a,int b)

{ int c;

c = a + b;return c;

}void main()

{ int x;int y; x

=somme(2,3); printf("%d",x); y =

somme(x,3); printf("%d",y);

}

Page 27: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 27

Informations produites.

Page 28: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 28

Plan de l’exposé

I. Différentes utilisations des outils.

II. Informations produites.III. Méthodes d’analyse.IV. Les outils.

Page 29: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 29

Les méthodes

1. analyse lexicale et syntaxique.-L’analyse lexicale consiste à

découper le programme en petites entités appelées ’’tokens’’  (opérateurs, mots réservés, variables, constantes numériques, alphabétiques…).

Page 30: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 30

Les méthodes

1. analyse lexicale et syntaxique.-L’analyse lexicale consiste à

découper le programme en petites entités appelées ’’tokens’’  (opérateurs, mots réservés, variables, constantes numériques, alphabétiques…).

Page 31: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 31

Les méthodes

Lors de l'analyse syntaxique, on vérifie quel'ordre des tokens correspond à l'ordre définipour le langage. On dit que l'on vérifie lasyntaxe du langage à partir de la définitionde sa grammaire.

arbre de la suite des tokens obtenus lors de la phase récédente

Page 32: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 32

Les méthodes.

Page 33: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 33

Les méthodes

Les métriques de Halstead sont basées surl'interprétation du code comme une séquence demarqueurs, classifiés chacun comme étant unopérateur ou une opérande. nombre d'opérateurs uniques (distints)(n1) nombre d'opérandes uniques (distinctes)(n2) nombre total d'opérateurs (N1) nombre total d'opérandes (N2)

Page 34: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 34

Les méthodes

On peut obtenir: Longueur du programme (N) :N1+N2 Taille du vocabulaire (n) : n1+n2 Volume du programme (V) : V=N*

Log2(n) Nbre de lignes de programme et de

commentaire… Le niveau de difficulté (D) /de

programme (L)…

Page 35: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 35

Les méthodes

Le nombre cyclomatique de McCabe v(G).Il mesure le nombre de chemins linéairesindépendants dans un module de programme.La complexité McCabe est l'un des métriquesde software les plus largement acceptées, elleest conçue pour être indépendante dulangage et du format de langage.

Page 36: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 36

Les méthodes

2. Par interprétation abstraite.Les chercheurs ont développé desméthodes de preuve de la correction desprogrammes. Ceci consiste à fournir unesémantique décrivant formellement lesexécutions d'un programme, puis

démontrerun théorème exprimant que ces exécutionsont une certaine propriété = impossible

Page 37: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 37

Les méthodes

L'interprétation abstraite procède parapproximation correcte de la sémantique. Sil'approximation est suffisamment grossière, elle

estcalculable par un ordinateur. Si elle estsuffisamment fine, elle permet d'obtenir unepreuve formelle de correction. L'objectif est

doncde rechercher des approximations suffisammentprécises et peu coûteuses à calculer.

Page 38: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 38

Les méthodes

L'interprétation abstraite procède parapproximation correcte de la sémantique. Sil'approximation est suffisamment grossière, elle

estcalculable par un ordinateur. Si elle estsuffisamment fine, elle permet d'obtenir unepreuve formelle de correction. L'objectif est

doncde rechercher des approximations suffisammentprécises et peu coûteuses à calculer.

Page 39: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 39

Les méthodes

Avec cette description, il est possible de vérifier statiquement (sans exécution duprogramme) des propriétés dynamiques,c'est-à-dire dépendantes de l'exécution

(codemort, débordement de tableau, flot dedonnées, etc.).

Page 40: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 40

Plan de l’exposé

I. Différentes utilisations des outils.

II. Informations produites.III. Méthodes d’analyse.IV. Les outils.

Page 41: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 41

Les outils

Page 42: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 42

Les outils

Page 43: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 43

Page 44: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 44

Conclusion.

Réponse à beaucoup de questions Mais l’analysestatique n’est pas suffisante pourgarantir le bon fonctionnement d’un programme.

Eneffet il y a toujours le problème de l’indécidabilitéDe certaines actions, c’est pour cela que l’analysestatique doit être couplée à l’analyse

fonctionnelle.

Page 45: 2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

2006-2007 45

Conclusion.

Questions???

Examen: différence boites noires et blanches. Qu’est ce que l’indécidabilité en

analyse statique.