utilisation des structures combinatoires pour le test statistique sandrine-dominique gouraud Équipe...
TRANSCRIPT
![Page 1: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/1.jpg)
Utilisation des Structures Combinatoires
pour le Test Statistique
Sandrine-Dominique GOURAUDÉquipe “Programmation et Génie Logiciel”, L.R.I.
Co-encadrants: M.-C. Gaudel et A. Denise
![Page 2: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/2.jpg)
2
Plan
Contexte Structures combinatoires Test statistique et qualité de test
Nouvelle approche du test statistique Tirer des chemins Optimiser la qualité de test
Validation de l’approche Le prototype AuGuSTe Résultats expérimentaux
Bilan et Perspectives
![Page 3: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/3.jpg)
Contexte
![Page 4: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/4.jpg)
4
Les structures combinatoires décomposables
La spécification de structures combinatoires consiste en un ensemble de règles de production construites à partir: d’objets de base: ε (de taille 0) et atome (de taille 1) d’opérateurs: union(+), produit(x), sequence, etc. de contraintes de cardinalité
Exemples: Arbre binaire complet non vide: A= F+ AxA
où F est l’atome de base représentant une feuille Séquence de 3 à 5 feuilles: S= Sequence(F,Card=3..5)
![Page 5: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/5.jpg)
5
Les structures combinatoires décomposables
Résultats théoriques sur la génération aléatoire uniforme de telles structures [Flajolet,Zimmermann,VanCutsem,1994]
Complexité en n*log n pour des structures combinatoires de taille n
Complexité linéaire dans certains cas particuliers Outils disponibles pour l’environnement MuPAD:
Le package CS [Corteel, Denise,Dutour,Sarron,Zimmermann] Le package MuPAD-Combinat [Thiery & al]
![Page 6: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/6.jpg)
6
Le test de logiciel
Objectif: trouver des fautes/erreurs dans les programmes
Comment? En exécutant le programme sur un ensemble de données qu’on appelle jeu de test.
Les difficultés: Trouver les bons jeux de test Exécution et dépouillement Quand arrêter les tests (critère)?
![Page 7: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/7.jpg)
7
Sélection d’un jeu de test?
Le test fonctionnel (boîte noire): sélection basée sur une spécification du systèmeCe que le système devrait faire…
Le test structurel (boîte de verre): sélection basée sur le programme i.e. on s’intéresse à différents chemins d’exécutionCe que le programme fait et comment
Le test statistique (ou aléatoire): sélection aléatoire (uniforme ou opérationnelle) dans le domaine des entrées du programme
![Page 8: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/8.jpg)
8
Sélection d’un jeu de test structurel/fonctionnel
Pour sélectionner un jeu de tests, on part:D’une modélisation du système/programmeD’un critère de test adapté à cette modélisation
Exemples: Spécification algébriques / Couverture des axiomes Système à transitions étiquetées / Couverture des
arcs Texte du programme / Couverture des instructions
![Page 9: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/9.jpg)
9
Exemple: estTrie(tab,t)
Spécification: le programme prend en entrée un tableau tab d’au plus 6 entiers et un nombre 0≤ t ≤6.
Si les t premières valeurs du tableau tab sont triés en ordre croissant, alors il retourne vrai.
Si les t premières valeurs du tableau tab ne sont pas triés en ordre croissant, alors il retourne faux.
![Page 10: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/10.jpg)
10
Exemple: estTrie
bool estTrie (tab: array 0..5 of int, t: int){ int i:=0; bool rep:=true; if (t≤0) then rep:= true; else{
while ((i<t+1) and rep){ rep:= tab[i]≤tab[i+1]; i:= i+1; } } return rep;}
INIT
EXIT
I0
C1
I2
I5
I4B3
![Page 11: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/11.jpg)
11
Pourquoi le test statistique?
Avantages: Possibilité de faire du test plus intensif qu’avec
les autres méthodes
Inconvénients: Mauvaise couverture des cas particuliers (ex:
cas d’exception)
Solution? Le combiner avec une autre méthode de test
[Thévenod-Fosse,Waeselynck,1991].
![Page 12: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/12.jpg)
12
Qualité d’un test statistique [TF,Wa]
Soit E l’ensemble des éléments à couvrir N le nombre de tests
La qualité de test qN est la probabilité minimale d’un élément de E d’être couvert lors des N tests
qqNN =1-(1- p =1-(1- pminmin))NN
où pmin = min{p(e), eE}
Pour maximiser qN, il faut maximiser pmin
Une solution (pas toujours possible):
Tirage uniforme dans E
![Page 13: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/13.jpg)
13
Relation entre N et qN [TF,Wa]
qqNN =1-(1- p =1-(1- pminmin))NN
Si je choisis de faire N tests, quelle sera ma qualité de test qN?
Si je désire atteindre une qualité de test qN, combien de tests suis-je censé effectuer?
Avec pmin{0,1}
)min1log(
)1log(
p
qNN
![Page 14: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/14.jpg)
14
Le test Statistique Structurel [TF,Wa]
Construction d’une distribution sur le domaine des entrées qui: Maximise la qualité de test donc la probabilité minimale
d’atteindre un élément du critère de couverture structurel considéré
N’écarte aucun point du domaine d’entrée Avantages:
Bons résultats expérimentaux Inconvénients:
Distribution déterminée de manière empirique dans certains cas
![Page 15: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/15.jpg)
15
Objectif de cette thèse
Méthode de test statistique: qui s’applique à différents types de modélisation
représentable sous forme de graphes, qui optimise la qualité de test par rapport à un
critère donné, qui est automatisée
Apport possible des structures combinatoires pour le test
![Page 16: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/16.jpg)
Nouvelle approche pour le Test Statistique
![Page 17: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/17.jpg)
17
Nouvelle approche pour le Test Statistique
Tirage aléatoire de cheminsTirage aléatoire de chemins
L’ensemble des chemins d’un graphe peut se représenter facilement sous forme d’une spécification de structures combinatoires
Génération aléatoire de complexité linéaire
2 étapes:1) Tirer un ensemble de chemins adéquat2) Passer des chemins aux données d’entrée qui
permettent de les parcourir
![Page 18: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/18.jpg)
18
Test et structures combinatoires
Première étape:Tirer un ensemble de chemins
tel que la qualité de test soit optimale
Remarque: Idéalement, tirage parmi tous les chemins du graphe. En pratique, tirage dans un sous-ensemble de chemins:
la présence de circuits dans le graphe implique une infinité de chemins.
En pratique, on limite la longueur n des chemins.
![Page 19: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/19.jpg)
19
Exemple: quel n choisir?
Longueur du chemin élémentaire le plus long: 7
Choix de n pour la suite: 11 Nombre de passages dans la boucle
entre 0 et 3
5 chemins de longueur ≤11 à considérer
INIT
EXIT
I0
C1
I2
I5
I4B3
2
3 5
46
1
7
![Page 20: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/20.jpg)
20
Graphe et structure combinatoire
Atomes= arcs
Séquence d’arcs= chemin
S= v.S + v.e0.C.e7
C= e1.e2 + e3.B.e6
B= e4.I + ε
I= e5.B
INIT
EXIT
I0
C1
I2
I5
I4B3
v
e1
e2
v
e0
e3e5
e4
e6
e7
S C
![Page 21: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/21.jpg)
21
Génération: dénombrement
0 1 2 3 4 5 6 7 8 9 10 11
C 0 0 2 0 1 0 1 0 1 0 1 0
B 1 0 1 0 1 0 1 0 1 0 1 0
I 0 1 0 1 0 1 0 1 0 1 0 1
S 0 0 0 0 0 2 2 3 3 4 4 5
3 chemins issus de S de longueur 7
![Page 22: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/22.jpg)
22
Génération: tirage
Longueur=7
INIT
EXIT
I0
C1
I2
I5
I4B3
v
e1
e2
v
e0
e3e5
e4
e6
e7vvve0e1e2e7 vvve0e3e6e7 ve0e3e4e5e6e7
S7
vS6 ve0C4e7
ve0e3B2e6e7vvS5
vvve0C2e7
S= v.S + v.e0.C.e7
C= e1.e2 + e3.B.e6
B= e4.I + εI= e5.B
vve0C3e7
vvvS3
? ?
1
1
0
0
1
2/3 1/3
1/21/2
![Page 23: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/23.jpg)
23
Si le critère consiste à couvrir un ensemble de chemins : on construit la structure combinatoire correspondante
Exemples: tous les chemins passant par l’arc a,tous les chemins passant par le sommet B3 puis par le sommet I4…
Si le critère consiste à couvrir un ensemble d’éléments quelconque : ???
Exemples:tous les sommets, tous les arcs …
Comment un tirage uniforme parmi des chemins peut-il assurer une bonne qualité de test pour une couverture d’autres éléments?
![Page 24: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/24.jpg)
24
Tirage de chemins
Soit N le nombre de tests à générer.
1. Tirer aléatoirement, selon une distribution adéquate, N éléments e1,…,eN parmi les éléments à couvrir
2. Pour chaque ei, tirer aléatoirement et uniformément un chemin (de longueur ≤ n) parmi ceux qui passent par ei.
![Page 25: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/25.jpg)
25
Exemple:
Critère: tous les sommets carrés S={I2,I0,I4,I5} 5 chemins de longueur 11. Distribution uniforme
p(I2)= 1/4 +1/41/5 +1/40 +1/41/5 =7/20 = 0.35
De même: p(I4)=11/20, p(I0)=1, p(I5)=1
pmin=p(I2)= 0.35
On n’obtient pas le pmin optimal !
INIT
EXIT
I0
C1
I2
I5
I4B3
![Page 26: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/26.jpg)
26
Exemple:
Critère: tous les sommets carrésS={I2,I4}5 chemins de longueur 11.Distribution uniforme
pmin=0.5
Comment pourrais-je maximiser automatiquement le pmin?
INIT
EXIT
I0
C1
I2
I5
I4B3
![Page 27: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/27.jpg)
27
Probabilité d’un élément
La probabilité p(e) d’un élément e d’être atteint lors d’une exécution est:
p(e)=p1(e)+p2(e) Probabilité de tirer l’élément (étape 1): p1(e) Un chemin passant par cet élément a été tiré (étape 2):
où e’ est l’élément qui a été tiré (étape 1),
c(e’) est le nombre de chemins passant par e’
c(e,e’) est le nombre de chemins passant par e et e’
e'e)'(1)'c(
)',c()(2 ep
eee
ep
![Page 28: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/28.jpg)
28
Calcul des c(e,e’): exemple de c(B3,I4)
On en déduit la structure combinatoire puis la fonction de dénombrement
INIT
EXIT
I0
C1
I5
I4B3
v
v
e0
e3
e5
e4
e6
e7
X
INIT
EXIT
I0
C1
I5
I4B3
v
v
e0
e3
e5
e4
e6
e7
B3 I4e5
e4A
A
e4
![Page 29: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/29.jpg)
29
Une manière de définir la distribution
Pour optimiser la qualité de test, il faut maximiser pmin.
Or pour tout e de E,
e'e)'(1)'c(
)',c()(1min ep
eee
epp
![Page 30: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/30.jpg)
30
Maximiser pmin sous les contraintes
On résout ce problème d’optimisation par un simplex et on en déduit les p1(ei).
)(1...)2(1)1(11
)(1)(
),(...)1(1)1(
)1,(min
...
)(1)(
),1(...)1(1)1(
)1,1(min
e Epepep
e Epe Ec
e Ee Ecep
ec
ee Ecp
e Epe Ec
e Eecep
eceec
p
Spmin=
![Page 31: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/31.jpg)
31
Exemple:
Critère: tous les sommets carrés Distribution uniforme pour les
chemins 5 chemins de longueur 11.
21
)4(1
21
)2(1
21
min
Ip
Ip
p
INIT
EXIT
I0
C1
I2
I5
I4B3
![Page 32: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/32.jpg)
32
Des chemins aux entrées
Deuxième étape:
Déterminer les entrées permettant
d’exécuter les chemins tirés
Construction des prédicats associés aux chemins tirés (algorithme classique).
Résolution des prédicats (problème indécidable dans le cas général)
![Page 33: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/33.jpg)
33
Exemple: Spécification: t[0..6] Chemin I0-C1-I2-I5 Prédicat calculé: t≤0
Ce chemin est faisable Entrées possibles:
t=0 tab arbitraires
Chemin I0-C1-B3-I5 Prédicat calculé: (t>0) (t≤-1)
Ce chemin est infaisable
I0
C1
I2
I5
I4B3
I0
C1
I2
I5
I4B3
![Page 34: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/34.jpg)
34
Des chemins aux entrées
Plusieurs cas possibles pour la résolution de chaque prédicat:
1. Le prédicat a une solution: c’est notre donnée de test
2. Le prédicat n’a pas de solution: le chemin associé est infaisable
3. Le prédicat est indéterminé
Le calcul théorique des p1(ei) ne prend pas en compte les chemins infaisables
![Page 35: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/35.jpg)
Validation de l’approche
![Page 36: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/36.jpg)
36
Application au test statistique structurel
Modèle: graphe de contrôle du programme Critères:
Tous les chemins de longueur ≤n Tous les enchaînements Toutes les instructions
Un prototype: AuGuSTe1
Version 1: distribution basée sur les dominances Version 2: distribution basée sur la résolution du
système linéaire
1: Automated Generation of Statistical Tests
![Page 37: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/37.jpg)
37
AuGuSTeÀ partir du programme P, on construit la spécification combinatoire du graphe de contrôleConstruction de l’ensemble des éléments à tirer en fonction de CPour chaque élément, construire l’ensemble des chemins passant par cet élémentDéterminer la distribution sur les éléments
Tirage des N élémentsTirage des N chemins de longueur inférieure ou égale à n
Construction des prédicats associés aux chemins tirésRésolution randomisée des prédicats associés aux chemins
Echec?Oui Non
Ensemble de données de test
P,C,N,n
![Page 38: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/38.jpg)
38
Les expériences
Objectifs: valider l’approche Comparer à l’approche du LAAS Évaluer la stabilité Passage à l’échelle possible?
Comment? En utilisant les programmes et les mutants fournis par le
LAAS Plus de 10000 exécutions réalisées sur plus 2900
mutants
![Page 39: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/39.jpg)
39
Les programmes
Nom #lignes #chemins #blocs #arcs #choix
Fct1 30 17 14 24 5
Fct2 43 9 12 20 4
Fct3 135 33 (14) 19 41 12
Fct4 77 infini 19 41 12
![Page 40: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/40.jpg)
40
Évaluation par mutation des méthodes de test
Principe: détecter le maximum de mutants « non équivalents »
La proportion de mutants détectés est appelée score de mutation
La notion d’équivalence dépend en partie de l’environnement d’exécution des testsExemple: présence de variables non initialisées
Mutants équivalents différents
![Page 41: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/41.jpg)
41
Les programmes et leurs mutants
Nom #mutants #mutants équivalents
Fct1 265 14
Fct2 548 6+9
Fct3 1416 21+30
Fct4 587 9+9
![Page 42: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/42.jpg)
42
Les programmes et leurs mutants
Nom #mutants #mutants équivalents
Fct1 265 14+3
Fct2 548 6+9
Fct3 1416 21+30+16
Fct4 587 9+9+49
![Page 43: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/43.jpg)
43
Critère de couverture, qN et N
Nom Critère choisi #tests
Fct1 Tous les chemins 170
Fct2 Tous les chemins 80
Fct3 Tous les chemins 5x405
Fct4 Tous les enchaînements 5x850
Qualité de test visée: 0.9999 Fct3 et Fct4: pour s’assurer de la stabilité, il y a
5 séries de tests.
![Page 44: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/44.jpg)
44
Résultats pour Fct1, Fct2 et Fct3
Score de mutation
Uniforme LAAS AuGuSTe
Fct1 1 1 1
Fct2 1 1 1
Fct3
Min 0.55 1 0.9951
Moy 0.698 1 0.9989
Max 0.85 1 1
Fct3: Reflète la dépendance vis-à-vis de l’environnement Lié aux variables non initialisées détectables par un bon compilateur
![Page 45: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/45.jpg)
45
Graphe de contrôle de FCT4
Choix de n?n6+1219 soit n234
Soit plus de 1030 chemins à considérerPrésence d’un nombre considérable de chemins infaisables
![Page 46: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/46.jpg)
46
Première expérience avec Fct4… 1020 chemins dont 99,98% de chemins infaisables AuGuSTe (v1):
pmin=0.5 Mais en pratique tous les enchaînements ne
sont pas couverts AuGuSTe (v2):
pmin=0.5 Mais en pratique, tous les enchaînements ne
sont pas couverts Distribution sur les éléments tirage uniforme
parmi les chemins
![Page 47: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/47.jpg)
47
Graphe équilibré
=> Tirage uniforme parmi
les chemins
Deux sous-graphes indépendants mauvaise couverture
Idée: Transformation automatique de la structure combinatoire
pmin
![Page 48: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/48.jpg)
48
Résultats pour Fct4: expérience 2
Environ 1016 chemins de longueur ≤234 Environ 50% de chemins infaisables AuGuSTe (v1): pmin =0.3324
Mais en pratique, tous les enchaînements ne sont pas forcément couverts
AuGuSTe (v2): pmin =0.4923 En pratique, tous les enchaînements sont couverts
Uniforme LAAS AuGuSTe(v1) AuGuSTe(v2)
Min 0.895 0.9898 0.9726 0.9854
Moy Nc 0.9901 0.9773 0.9854
Max 0.915 0.9915 0.9854 0.9854
Sco
re d
e m
utat
ion
![Page 49: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/49.jpg)
Bilan et Perspectives
![Page 50: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/50.jpg)
50
ContributionPremière utilisation des méthodes de tirage
uniforme dans les structures combinatoires pour le test de logiciel Définition une méthode générale et automatisée
pour le test statistique Importante campagne d’expériences
Expériences aux résultats positifs: Efficacité comparable à celle du LAAS et
automatisation Approche stable Passage à l’échelle possible
![Page 51: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/51.jpg)
51
Perspectives (1/2)
Adapter/améliorer la distribution des p1(ei) en fonction des différents problèmes rencontrés: Les chemins infaisables
Méthodes d’apprentissage [Sebag & al]Méthodes probabilistes [Maume & al]
Borner la longueur des chemins peut masquer des erreurs
Méthode Boltzmann [Duchon,Flajolet,Louchard,Schaeffer,2002]
Prendre en compte plus d’aspects sémantiquesExemple: les cas exceptionnels doivent-ils être autant testés que les
cas standards?
![Page 52: Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:](https://reader035.vdocuments.pub/reader035/viewer/2022062621/551d9d82497959293b8bb858/html5/thumbnails/52.jpg)
52
Perspectives (2/2)
Mieux exploiter les structures combinatoires pour limiter les chemins infaisables Analyse statique
Meilleure distribution
Application à d’autres techniques Test statistique fonctionnel Model checking