• Aucun résultat trouvé

12 Introduction 117

13 R`egles d’association 121

13.1 Introduction . . . 121

13.2 D´efinition d’une r`egle d’association . . . 122

13.3 ´Evaluation des r`egles d’association . . . 122

13.3.1 Support . . . 123

13.3.2 Confiance . . . 123

13.3.3 Lift . . . 124

13.4 L’algorithme LCM . . . 124

14 Recherche de r`egles d’association en utilisant une seule trace

d’ex´ecution 127

14.1 Introduction . . . 127

14.2 Groupement des cycles . . . 128

14.3 Fiabilit´e des r`egles d’association . . . 129

15 ´Evaluation 133 15.1 Programmes et erreurs . . . 133 15.2 R´esultats . . . 134 16 CoMET 139 16.1 Architecture . . . 139 16.2 Fonctionnalit´es . . . 140 17 Conclusion 145

R´esum´e

Notre approche de localisation de faute, pr´esent´ee dans le chapitre 9, est bas´ee sur l’hypoth`ese que les cycles d’une trace d’ex´ecution sont ind´ependants. Par cons´equent, elle risque d’ˆetre peu efficace dans le cas o`u les cycles d’une mˆeme ex´ecution interagissent entre eux.

Pour faire de la localisation de faute pour ce type de cas, dans cette partie de la th`ese, nous nous int´eressons `a lafouille de donn´ees et sp´ecialement `a la

recherche de r`egles d’association, pr´esent´ees dans le chapitre13. La principale motivation de l’utilisation de la fouille de donn´ees dans notre approche est l’extraction d’informations de comportements consid´er´es comme bons et des comportements consid´er´es comme fautifs, afin de les comparer et ainsi localiser la faute. Ainsi bas´ee sur l’utilisation des cycles d’une trace d’ex´ecution, notre approche est pr´esent´ee dans le chapitre14.

Le chapitre15concerne l’´evaluation de cette contribution et le chapitre16

Chapitre 12

Introduction

Au cours du d´eveloppement d’une application, des fautes peuvent ˆetre introduites dans le code. L’ex´ecution des instructions fautives peut entrainer des erreurs et des d´efaillances pourront (ou non) ˆetre observ´ees. Une fois une d´efaillance identifi´ee, il est n´ecessaire de la corriger : c’est l’´etape de d´ebogage. Cela consiste en premier lieu `a rechercher la cause de la d´efaillance, c’est-`a-dire l’instruction erron´ee. On parle alors de localisation de faute.

La localisation de faute(s) peut ˆetre d´efinie comme ´etant le processus de rep´erage de faute(s) conduisant `a des d´efaillances. Le rep´erage pr´ecis de fautes ´

etant tr`es difficile, la plupart des m´ethodes de localisation de faute(s) essayent plutˆot d’identifier les parties du code source susceptibles de contenir la faute. Dans la deuxi`eme partie de cette th`ese, nous avons pr´esent´e une approche de localisation de faute utilisant une seule trace d’ex´ecution. Notre approche effectue en premier une d´etection de cycles. Le r´esultat obtenu est une trace divis´ee en cycles. Notre approche utilise ensuite les«m´ethodes par diff´erence de traces » sur la trace d´ecoup´ee pour localiser l’instruction fautive. Cette approche est bas´ee sur l’analogie entre les ex´ecutions du programme et les cycles. Nous sommes conscients que l’analogie n’est pas parfaite et que l’ind´ e-pendance entre les cycles ne peut pas ˆetre garantie. Cependant, les r´esultats de nos exp´erimentations (chapitre 10), ont montr´e la pertinence de cette hy-poth`ese.

Par ailleurs, il existe ´egalement des cas o`u les multiples cycles d’une mˆeme ex´ecution interagissent entre eux de plusieurs fa¸cons. Notre approche de loca-lisation de faute risque donc d’ˆetre peu efficace pour ce type de cas.

Ainsi, dans le but de faire de la localisation de faute(s) pour des pro-grammes o`u les cycles d’une mˆeme ex´ecution interagissent entre eux, nous nous sommes int´eress´e `a la fouille de donn´ees.

La fouille de donn´ees tire son nom du terme anglais data mining. C’est une m´ethode qui a pour objectif de trouver la p´epite, non pas d’or, mais de connaissances. Elle est d´efinie comme ´etant «the non trivial process of identi-fying valid, novel, potentially useful, and ultimately understandable patterns in data» [33]. La fouille de donn´ees est ainsi constitu´e d’un ensemble d’ou-tils informatique servant `a rechercher et `a extraire de l’information (utile et inconnue) de gros volumes de donn´ees stock´ees dans des bases ou des entre-pˆots de donn´ees. La fouille de donn´ees s’effectue en respectant un ensemble de

Figure 12.1 – Treillis des d´efaillance

processus d’extraction de l’information, en passant par les phases de stockage de donn´ees, d’interpr´etation des r´esultats, aussi de filtrage et nettoyage. Selon le probl`eme trait´e, de nombreuses techniques de fouille de donn´ees existent, comme le regroupement, la classification ou la recherche de r`egles d’associa-tion.

Dans cette partie de la th`ese nous nous int´eressons `a la recherche de r`egles d’association dans le but de localiser la faute dans les programmes de micro-contrˆoleurs. Ce travail est inspir´e des travaux de Cellier et al. [21] concernant la localisation de faute(s) en utilisant la fouille de donn´ees. La localisation de faute(s) propos´ee par Cellier et al. [21] est bas´ee sur la recherche de r`egles d’as-sociation [13] mais ´egalement sur l’analyse formelle de concepts [64, 20], qui est une m´ethode de classification non supervis´ee (clustering). Comme illustr´e dans la Figure12.1, le r´esultat propos´e est un treillis des d´efaillances que l’in-g´enieur doit parcourir et explorer pour localiser la faute. Chaque concept dans le treillis repr´esente une ou plusieurs lignes du code source, avec les valeurs du

lift etsupport correspondant au concept. L’ing´enieur commence par analyser le treillis de bas en haut, c’est-`a-dire en commen¸cant par analyser le concept d´efaillant, puis analyser les concepts d’au-dessus et ainsi de suite jusqu’`a la localisation de la faute.

Il est important de pr´eciser que la localisation de faute, dans cette partie, concerne des programmes qui continuent leurs ex´ecutions un certain moment apr`es l’apparition de la d´efaillance. C’est pr´ecis´ement une situation o`u une m´ethode de localisation de faute bas´ee sur l’analyse statistique des cycles de la

119

trace, peut fournir un mauvais diagnostic. Ainsi, la principale motivation pour utiliser la fouille de donn´ees est d’extraire des informations de comportements consid´er´es comme bons et des comportements consid´er´es comme fautifs, afin de les comparer et localiser la faute. La technique de fouille de donn´ees utilis´ee par notre approche est la recherche de r`egles d’association, discut´ee dans le chapitre13. Dans le chapitre14nous pr´esentons notre approche de localisation de faute bas´ee sur l’utilisation des r`egles d’association.

Chapitre 13