• Aucun résultat trouvé

Sommaire

8.1 Spectre d’ex´ecution . . . 72 8.2 M´ethodes par diff´erence de spectres . . . 72 8.2.1 Union Model. . . 73

8.2.2 Intersection Model . . . 75

8.2.3 Le voisin le plus proche . . . 76

8.3 M´ethodes utilisant les scores de suspicion . . . 77 8.3.1 Pr´eliminaires . . . 78 8.3.2 Tarantula . . . 80 8.3.3 Jaccard. . . 81 8.3.4 Ample . . . 82 8.3.5 Ochiai . . . 83 8.3.6 Le cœfficientOp . . . 84

8.3.7 Algorithme g´en´eral de la SBFL . . . 85

8.4 Inconv´enients de la SBFL . . . 86

Comme nous l’avons dit plus tˆot, une partie importante du diagnostic consiste `a localiser les fautes. Plusieurs outils de d´ebogage automatis´e et de diagnostic de syst`emes utilisent la localisation de faute bas´ee sur les spectres (SBFL). La SBFL est une approche de diagnostic bas´ee sur l’analyse des diff´ e-rences dans les spectres d’un programme [37, 66]. Cette analyse de diff´erence concerne des ex´ecutions qui sont des succ`es et des ex´ecutions qui sont des ´

echecs. Si le r´esultat de l’ex´ecution d’un programme est celui attendu alors l’ex´ecution est un succ`es, sinon on dit que cette ex´ecution est un ´echec. Une ex´ecution en ´echec est une ex´ecution dans laquelle une d´efaillance a ´et´e d´ e-tect´ee.

Un spectre d’ex´ecution est une abstraction de la trace d’ex´ecution, il in-dique quelles parties du programme sont actives, pendant une ex´ecution sp´ e-cifique. Ainsi, la localisation de faute bas´ee sur les spectres identifie la partie du programme dont l’activit´e est la plus corr´el´ee avec la d´etection d’erreurs.

Des exemples d’outils qui mettent en œuvre cette approche sont Tarantula [42], pour l’analyse des programmes en C, ou Ample [28], qui met l’accent sur les programmes orient´es objet.

Dans le but d’am´eliorer le diagnostic en utilisant la SBFL, la plupart des techniques utilisent un cœfficient de similarit´e pour classer les instructions pouvant contenir la faute. Par cons´equent, la pr´ecision du diagnostic est in-fluenc´ee par le cœfficient de similarit´e utilis´e, mais ´egalement par la qualit´e et la quantit´e des observations utilis´ees dans l’analyse. Ces observations sont g´en´eralement r´esum´ees dans les spectres d’ex´ecution, qui sont discut´es dans la section suivante.

8.1 Spectre d’ex´ecution

Un spectre d’ex´ecution est un ensemble de donn´ees qui fournit une vue sp´ecifique sur le comportement dynamique du programme [66]. La vue est dite sp´ecifique parce qu’elle d´epend du type de traitement qui sera effectu´e sur le spectre d’ex´ecution.

Par exemple l’ensemble de donn´ees fourni par un spectre d’ex´ecution pour-rait ˆetre des variables et leurs valeurs, ou bien l’ensemble de lignes ex´ecut´ees. Par cons´equent, diff´erentes formes de spectres d’ex´ecutions existent [37].

Le tableau 8.1 ´enum`ere quelques exemples de spectre et les types de don-n´ees auxquels ils s’int´eressent.

Comme pour une trace d’ex´ecution, les donn´ees fournies par un spectre d’ex´ecution sont collect´ees pendant l’ex´ecution du programme. Ils sont prin-cipalement utilis´es pour localiser les fautes, comme expliqu´e dans les sections suivantes.

8.2 M´ethodes par diff´erence de spectres

Souvent, la localisation de faute utilisant des m´ethodes par diff´erence de spectres met en œuvre des spectres de type «statement-hit». Ce type de spectre d’ex´ecution s’int´eresse aux instructions parcourues pendant l’ex´ ecu-tion du programme (Figure 8.1). La principale id´ee utilis´ee par les m´ethodes par diff´erence de spectres est la comparaison de spectres lors d’ex´ecutions en ´

echec et en succ`es. Ces m´ethodes sont bas´ees sur deux intuitions. La premi`ere suppose que les instructions ex´ecut´eesuniquement pendant les ex´ecutions en succ`es ne sont pas li´ees aux d´efaillances observ´ees, alors que les lignes qui sont ex´ecut´ees pendant les ex´ecutions en ´echec peuvent ˆetre `a l’origine des d´efaillances. La deuxi`eme intuition suppose que l’absence des instructions ex´ e-cut´ees pendant les ex´ecutions en succ`es, dans les ex´ecutions en ´echecs, est li´ee

8.2. M´ethodes par diff´erence de spectres 73

Forme du spectre Description de l’ensemble de donn´ees produit

Statement-hit instructions ex´ecut´ees Statement-count instructions ex´ecut´ees et

nombre de fois qu’une instruction a ´et´e ex´ecut´ee Block-hit branchements conditionnels ex´ecut´es

Block-count branchements conditionnels ex´ecut´es et nombre de fois qu’un branchement conditionnel a ´et´e ex´ecut´e Path-hit chemins (complets ou incomplets) ex´ecut´es

Path-count chemins (complets ou incomplets) ex´ecut´es et nombre de fois qu’un chemin a ´et´e ex´ecut´e Complete-path chemins complets ex´ecut´e

Data-dependence-hit paires d´efinition-utilisation (def-use) ex´ecut´ees Data-dependence-count paires d´efinition-utilisation ex´ecut´ees et nombre de

fois qu’une paire d´efinition-utilisation a ´et´e ex´ecut´e Output sorties (r´esultats) produites

Execution trace trace d’ex´ecution produite

Time Spectra temps d’ex´ecution, i.e. temps d’ex´ecution de fonctions

Table 8.1 – ´Enum´eration de spectres d’ex´ecution et leurs ensembles de don-n´ees

aux d´efaillances observ´ees.

Dans cette section, trois m´ethodes propos´ees par Renieris et Reiss sont pr´ e-sent´ees [65] : union model, intersection model, et nearest neighbor. Ces trois m´ethodes exposent les diff´erences entre deux ensembles de spectres d’ex´ ecu-tions. Le premier ensemble contient un ou plusieurs spectres des ex´ecutions en succ`es, alors que le second ensemble ne contient que le spectre de l’ex´ecution en ´echec. Le r´esultat produit par chacune de ces trois m´ethodes est un en-semble d’instructions suspectes, qu’il faut inspecter afin de localiser la faute.

8.2.1 Union Model

Cette m´ethode vise `a rep´erer les instructions qui apparaissent uniquement dans le spectre de l’ex´ecution en ´echec mais dans aucun spectre des ex´ecutions en succ`es. Intuitivement, cela correspond `a l’id´ee qu’une d´efaillance apparaˆıt (syst´ematiquement) lorsqu’une instruction fautive est ex´ecut´ee. Si elle n’est pas ex´ecut´ee, alors aucune d´efaillance n’est observ´ee. Cela se traduit math´ e-matiquement par : spectre´echec − (S

Figure 8.1 – Exemple de spectre statement-hit

La Figure8.1 illustre un programme et quatre spectres de son ex´ecution : trois spectres d’ex´ecutions en succ`es (verdict = P) et un spectre d’une ex´ e-cution en ´echec (verdict = F). Chaque spectre contient la liste des lignes (instructions) parcourues pendant l’ex´ecution du programme, par exemple le spectre de l’ex´ecution en ´echec contient les lignes : 1, 2, 3, 4, 12, 13, 16.

Sur l’exemple de la Figure 8.1, la m´ethode fournit un ensemble com-pos´e de deux suspects : la ligne 4 et la ligne 13. Ces deux lignes n’appa-raissent que dans le spectre de l’ex´ecution en ´echec, c’est-`a-dire {4, 13} =

spectreechec´ − (S

spectresucces` ) o`u spectreechec´ ={1,2,3,4,12,13,16} et S

spectresucces` ={1,2,3,5,6,7,8,9,10,11,12,14,15,16}. Le r´esultat de l’ap-plication de la m´ethode union model est illustr´e dans la Figure8.2.

Ainsi, la m´ethodeunion model est bas´ee sur le calcul de l’ensemble de lignes caract´erisant une ex´ecution en ´echec. Cependant, l’ex´ecution d’une instruction fautive n’entraˆıne pas toujours un ´echec. Par cons´equent, une ex´ecution en ´

echec et une ex´ecution en succ`es peuvent fournir des spectres identiques, dans ce cas, cette m´ethode perd en efficacit´e et son application renvoie un ensemble vide.

8.2. M´ethodes par diff´erence de spectres 75

Figure 8.2 – R´esultat de la m´ethode union model

8.2.2 Intersection Model

`

A l’inverse de la m´ethodeunion model, l’ensemble produit par la m´ethode

intersection model ne contient pas les instructions (lignes) qui ne sont pr´ e-sentent que dans l’ex´ecution en ´echec. L’ensemble g´en´er´e contient les ins-tructions (lignes) qui sont pr´esentes dans tous les spectres des ex´ecutions en succ`es, mais qui sont absentes dans le spectre de l’ex´ecution en ´echec. Intuiti-vement, cela correspond au fait que l’absence d’une instruction peut conduire `

a une d´efaillance. Cela se traduit math´ematiquement par : (T

spectresucc`es) −

spectre´echec.

L’application de l’intersection model sur l’exemple de la Figure8.1fournit un ensemble compos´e de deux suspects : la ligne 14 et la ligne 15. Ces deux lignes apparaissent dans tous les spectres des ex´ecutions en succ`es mais n’ap-paraissent pas dans le spectre de l’ex´ecution en ´echec, c’est-`a-dire{14, 15}= (T

spectresucc`es) − spectreechec´ , o`u T

spectresucces` = {1,2,12,14,15,16} et

spectre´echec={1,2,3,4,12,13,16}. Le r´esultat de l’application de la m´ethode

intersection model est illustr´ee dans la Figure 8.3.

L’ex´ecution d’une instruction fautive n’entraˆıne pas toujours un ´echec. Par cons´equent, cette m´ethode poss`ede la mˆeme faiblesse que le m´ethode

union model, c’est-`a-dire qu’une ex´ecution en ´echec et une ex´ecution en suc-c`es peuvent fournir des spectres identiques, ainsi l’application de la m´ethode

Figure 8.3 – R´esultat de la m´ethode intersection model

Il est important de noter que les deux m´ethodesunion model etintersection model sont compl´ementaires. La m´ethode union model cherche `a localiser la faute en identifiant ce qui apparait en plus dans une ex´ecution qui ´echoue par rapport `a des ex´ecutions en succ`es, alors que la m´ethode intersection model

cherche `a localiser la faute en identifiant ce qui manque `a l’ex´ecution en ´echec pour ˆetre en succ`es. Ainsi, un raisonnement est n´e `a partir du fait que ces deux m´ethodes soient compl´ementaires et a permis de d´efinir une nouvelle m´ethode appel´eevoisin le plus proche.

8.2.3 Le voisin le plus proche

Le voisin le plus proche (en anglais Nearest neighbor) est une m´ethode propos´ee ´egalement par Renieris et Reiss [65].

Cette m´ethode met en ´evidence un spectre d’ex´ecution particulier, appel´e

«plus proche voisin ». Ce «plus proche voisin» est le spectre d’ex´ecution en succ`es qui partage le plus d’instructions avec le spectre de l’ex´ecution en ´

echec. Pour trouver le «plus proche voisin», la m´ethode Nearest neighbor

calcule une distance entre le spectre de l’ex´ecution en ´echec et chaque spectre d’ex´ecution en succ`es.

Ensuite, la m´ethode cherche `a identifier les diff´erences entre le spectre de l’ex´ecution en ´echec et son «plus proche voisin». Cela se traduit math´ emati-quement par : spectreechec´ − spectreppv.

illus-8.3. M´ethodes utilisant les scores de suspicion 77

Figure 8.4 – R´esultat de la m´ethode nearest neighbor

tr´ee dans la Figure 8.4. La m´ethode fournit un ensemble compos´e de deux suspects : la ligne 4 et la ligne 13. Ces deux lignes apparaissent dans le spectre de l’ex´ecution en ´echec, mais n’apparaissent pas dans le spectre d’ex´ e-cution en succ`es s´electionn´e comme ´etant le«plus proche voisin», c’est-`a-dire

{4, 13}=spectreechec´ − spectreppv o`uspectre´echec ={1,2,3,4,12,13,16} et

spectreppv ={1,2,3,5,6,12,14,15,16}.

Comme pour les deux m´ethodes pr´ec´edentes, union model et intersection model, la m´ethode du plus proche voisin ne donne pas de r´esultat dans le cas o`u une ex´ecution en ´echec et une ex´ecution en succ`es fournissent des spectres identiques.

8.3 M´ethodes utilisant les scores de suspicion

Jones, Harold et Stasko ont propos´e un autre type de localisation de faute bas´ee sur l’utilisation de spectres [42]. Ce type de localisation de faute vise `

a identifier les ´el´ements (lignes) du spectre, dont la pr´esence ou l’absence est

fortement corr´el´ee avec l’´echec de l’ex´ecution. Ces ´el´ements (lignes) sont consi-d´er´es comme ´etant probablement `a l’origine de la d´efaillance constat´ee. Ainsi, pour avoir cet ensemble d’´el´ement suspects, pour chaque ´el´ement (ligne) du spectre d’ex´ecution, un score de suspicion (appel´e aussi degr´e de similarit´e) est calcul´e. Le score de suspicion est d´efini comme ´etant une mesure de

cor-r´elation entre l’ex´ecution de l’´el´ement (ligne) et l’´echec de l’ex´ecution. Ainsi, l’´el´ement ayant le degr´e de suspicion le plus ´elev´e est interpr´et´e comme ´etant probablement l’´el´ement d´efectueux, et doit ˆetre examin´e avec une priorit´e plus ´

elev´ee.

Pour calculer les degr´es de similarit´e et identifier les ´el´ements suspects, ce type de localisation de faute utilise un ensemble de spectres de type statement-hit, mais ´egalement les verdicts des ex´ecutions (succ`es/´echec). Ce type de localisation n´ecessite la pr´esence d’au moins un spectre d’ex´ecution en ´echec. Les calculs n´ecessaires `a l’identification des ´el´ements suspects et cinq m´ethodes utilisant les scores de suspicion sont pr´esent´es dans les sections suivantes.

x

1,1

x

1,2

· · · x

1,N

x

2,1

x

2,2

· · · x

2,N

... ... . . . ...

x

M,1

x

M,2

· · · x

M,N

e

1

e

2

...

e

M

N ´el´ements

M spectres