• Aucun résultat trouvé

Apport du slicing en classification et temps d’analyse

Dans le document The DART-Europe E-theses Portal (Page 142-146)

Partie II Contributions 65

Chapitre 6 Exp´ erimentations 117

6.7 Apport du slicing en classification et temps d’analyse

? ? ? ? ?

1 7 0 1 7 0 1 7 0 1 7 0 1 7 0 1

2 15 0 1 15 0 1 15 0 1 15 0 1 15 0 1

3 15 0 2 15 0 2 15 0 2 15 0 2 15 0 2

4 0 12 0 0 9 3 4 5 3 0 9 3 4 5 3

5 7 0 1 7 0 1 7 0 1 7 0 1 7 0 1

6 3 11 1 3 11 1 14 0 1 14 0 1 14 0 1

7 27 0 2 27 0 2 27 0 2 27 0 2 27 0 2

8 8 2 0 8 2 0 9 1 0 8 2 0 9 1 0

9 18 0 1 18 0 1 18 0 1 18 0 1 18 0 1

Total 100 25 9 100 22 12 116 6 12 111 11 12 116 6 12

Figure 6.6 – R´esultats de classification avec les diff´erentes options desante

6.7 Apport du slicing en classification et temps d’ana-lyse

Dans cette partie, nous pr´esentons des exp´erimentations avec les diff´erentes options de sante. Afin de montrer l’apport de chaque utilisation duslicing, nous comparons les options les unes avec les autres et avec la m´ethode sante none et un parcours “tous les chemins”, dont on a pr´esent´e les r´esultats dans la partie pr´ec´edente. Dans cette comparai-son, nous allons mesurer les crit`eresC1− C4. Nous comparons les r´esultats de classification des diff´erentes m´ethodes dans la partie 6.7.1 et les temps d’analyse dans la partie 6.7.2.

6.7.1 Comparaison des r´ esultats de classification des diff´ erentes m´ ethodes

La figure 6.6 pr´esente les r´esultats de la classification des alarmes pour chaque tech-nique et pour chaque exemple. On note que tous les bogues connus sont d´etect´es avec les m´ethodes utilisant le slicing. Ce n’est pas le cas avec sante none sur l’exemple 4.

On peut noter que, tous les exemples, sante smart etsante each sont les deux m´e-thodes qui classent le plus d’alarmes. Au total, il reste 6 alarmes non class´ees. Ensuite c’est santemin qui en laisse 11, puissanteall qui en laisse 22 et enfinsantenone qui laisse 25 alarmes non class´ees.

sante none vs sante all.

La g´en´eration de tests dans sante all analyse un programme simplifi´e contenant toutes les alarmes, donc elle consid`ere moins de chemins que sante none. sante all donne au

minimum les mˆemes r´esultats que santenone. Il a plus de chance de d´etecter des bogues que sante none car sante all parcourt moins de chemins. C’est ce qui se produit dans le cas de l’exemple 4 o`u malgr´e un d´epassement de temps limite dans les deux cas,sante all trouve les trois erreurs alors que sante none n’en trouve aucune. sante all pour-rait terminer et classer des alarmes dans des cas ousantenone ferait untime / space out.

Les contre-exemples report´es par sante all sont illustr´es sur un programme simplifi´e ce qui rend l’investigation de la source d’erreur plus facile.

sante all vs sante each.

Dans sante each, la slice minimale pour chaque alarme est analys´ee s´epar´ement par la g´en´eration de tests. sante each laisse moins d’alarmes avec le statut unknown (voir fi-gure 6.6 exemples 4, 6 et 8). santeeach termine dans certains cas o`u santeall fait un time / space out (voir figure 6.7 exemples 4, 6 et 8). Il classe plus d’alarmes comme dans l’exemple 8, o`u l’analyse dynamique analyse deux slices, l’une d’entre elles fait un time / space out et l’autre termine et classe l’alarme cible comme safe. Les contres-exemples report´es sont illustr´es sur des programmes plus simples, voire minimaux, ce qui rend l’in-vestigation de la source d’erreur encore plus facile qu’avec sante all.

sante all, each vs sante min.

Danssantemin, l’analyse dynamique sur certainesslicespeut terminer dans certains cas o`u elle fait un time / space out dans sante all et donc elle peut classer plus d’alarmes (voir figure 6.6 exemple 6). Sur l’ensemble des exemples, santemin classe 11 alarmes de plus que sante all. Toutefois, l’analyse dynamique dans santemin peut aussi faire un time / space out alors quesanteeach termine sur quelquesslices et classe plus d’alarmes (voir figure 6.6 exemples 4 et 8). Sur l’ensemble des exemples,santeeach classe 5 alarmes de plus quesante min. En effet l’analyse dynamique sur la slice de taille minimale pour une alarme a la plus grande chance de la classer.

sante each, min vs sante smart.

En l’absence de time / space out, sante smart se comporte exactement comme sante min (voir figure 6.6 exemples 6, 7 et 9). Si untime / space out est rencontr´e,santesmart analyse des slices de plus en plus petites et ne s’arrˆete que quand il ne peut plus classer d’alarmes. Ainsi, il peut classer plus d’alarmes quesantemin (voir figure 6.6 exemples 4 et 8). Sur l’ensemble des exemples santesmart classe 5 alarmes de plus quesantemin.

sante smart trouve les mˆemes r´esultats que sante each. En effet, il peut aller jusqu’`a analyser la slice minimale pour une alarme, s’il n’a pas r´eussi `a la classer avec les slices de plus grande taille.

6.7. Apport du slicing en classification et temps d’analyse No sante sante sante sante min sante smart

none all each temps slices temps slices it´erations

1 14s 11s 54s 11s 1 11s 1 1

2 10s 7s 15s 7s 1 7s 1 1

3 8min 43s 8min 43s 1h 5min 16s 17min 13s 4 17min 13s 4 1

4 TO TO 3min 24s 1 TO 1 54s 2 2

+ 5 TO + 1 TO

5 1min 12s 1min 12s 4min 48s 1min 12s 1 1min 12s 1 1

6 TO TO 1h 32min 52s 32min 16s 4 32min 16s 4 1

7 1min 31s 1min 20s 7s 7s 9 7s 9 1

8 TO TO 5s 1 TO 1 5s 2 2

+ 1 TO + 1 TO

9 18s 7s 13s 6s 2 6s 2 1

Figure 6.7 – Temps consomm´e par les diff´erentes options de sante

6.7.2 Comparaison des temps d’analyse des diff´ erentes m´ ethodes

La figure 6.7 pr´esente les temps d’analyse pour chaque exemple. Par exemple, 3min 24s + 5TO sur l’exemple 4 signifie que sur l’analyse des 12 slices, 5 terminent en time / space out et les sept autres prennent 3 minutes et 24 secondes pour classer leurs alarmes.

Pour les colonnes min et smart, la figure 6.7 indique le nombre de slices analys´ees.

Pour all, il n’y en a qu’une et pour each, il y en a autant que d’alarmes non class´ees par l’analyse de valeurs indiqu´ees dans la figure 6.2. De plus, la figure 6.7 indique le nombre d’it´erations de l’algorithme smart.

sante none vs sante all.

La g´en´eration de tests dans sante all analyse un programme simplifi´e contenant toutes les alarmes. Donc il consid`ere moins de chemins et donne les mˆemes r´esultats en moins de temps (voir figure 6.7 exemple 9). sante all pourrait terminer dans certains cas o`u santenone ferait untime / space out et doncsanteall pourrait classer plus d’alarmes.

Dans le pire des cas, lorsque le slicing ne simplifie pas ´enorm´ement le programme, sante all prend presque autant de temps que santenone (voir figure 6.7 exemple 7).

sante all vs sante each.

Dans sante each, une slice est analys´ee dynamiquement pour chaque alarme. Le temps complet est la somme des temps n´ecessaires pour analyser toutes les slices. Par exemple,

pour le programme 4, l’analyse de valeurs signale 12 alarmes. Avec l’option each, la m´e-thode produit 12 slices. Chacune des slices est analys´ee s´epar´ement par l’analyse dyna-mique. L’analyse dynamique de 5 de ces slices fait des time / space out alors que les 7 restantes terminent et classent les 7 alarmes correspondantes. La dur´ee totale requise pour analyser le programme initial avec l’analyse de valeurs, puis produire les 12slices, ensuite analyser ces 7slices et classer ces 7 alarmes par l’analyse dynamique est de 3 minutes 24 secondes.

sante each peut ˆetre plus lent que sante all (voir figure 6.7 exemple 9). De plus, l’analyse dynamique de certainesslices avec santeeach peut ne pas donner de nouvelles informations (voir parties 4.6 et 4.8) et c’est alors une perte de temps. C’est le cas avec l’exemple 9 de la figure 6.7. Pour cet exemple, on peut dire quesanteall est une meilleure m´ethode que sante each. Elle classe autant d’alarmes en moins de temps.

Dans certains cas sante each peut ˆetre plus rapide que sante all et laisser autant d’alarmes, comme dans le cas de l’exemple 7, o`u l’analyse de valeurs signale 10 alarmes qui sont toutes ind´ependantes. L’analyse dynamique analyse 10slices dont les tailles sont largement inf´erieures `a celles du programme initial. Le nombre de chemins trait´es (fai-sables et infai(fai-sables) est beaucoup plus faible et surtout la taille des chemins trait´es est beaucoup plus petite.

sante all, each vs sante min.

Dans sante min, l’analyse dynamique analyse moins de programmes que dans sante each, elle est donc plus rapide (voir figure 6.7 exemples 6 et 9). De plus, l’analyse dyna-mique desslices dans sante min n’est jamais une perte de temps.

sante min peut terminer dans des cas o`u sante all fait un time / space out (voir figure 6.7 exemple 6).

N´eanmoins, sante min peut faire un time / space out dans des cas o`u sante each termine sur certaines slices et classe certaines alarmes (voir figure 6.7 exemples 4 et 8).

En effet l’analyse dynamique sur la slice de plus petite taille pour une seule alarme a la plus grande chance de la classer.

sante each, min vs sante smart.

sante smart peut prendre plus de temps que sante min, mais offre de meilleures r´e-ponses dans certains cas (voir figure 6.7 exemples 4 et 8).

sante smart est plus rapide que sante each (voir figure 6.7 exemples 6 et 9). De plus, l’analyse dynamique des slices dans sante smart n’est jamais une perte de temps au sens o`u c’est l’option qui a le meilleur taux de classification, taux identique `a celui de sante each (voir figure 6.7 exemples 6, 4 et 9).

Dans le document The DART-Europe E-theses Portal (Page 142-146)