Title: Utilisation des Structures Combinatoires pour le Test Statistique
1Utilisation 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
2Plan
- Contexte
- Structures combinatoires
- Test statistique et qualité de test
- Nouvelle approche du test statistique
- Tirer des chemins
- Optimiser la qualité de test
- Validation de lapproche
- Le prototype AuGuSTe
- Résultats expérimentaux
- Bilan et Perspectives
3Contexte
4Les structures combinatoires décomposables
- La spécification de structures combinatoires
consiste en un ensemble de règles de production
construites à partir - dobjets de base e (de taille 0) et atome (de
taille 1) - dopérateurs union(), produit(x), sequence,
etc. - de contraintes de cardinalité
- Exemples
- Arbre binaire complet non vide A F AxA
- où F est latome de base représentant une feuille
- Séquence de 3 à 5 feuilles S Sequence(F,Card3..
5)
5Les 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 nlog n pour des structures
combinatoires de taille n - Complexité linéaire dans certains cas
particuliers - Outils disponibles pour lenvironnement MuPAD
- Le package CS Corteel, Denise,Dutour,Sarron,Zimme
rmann - Le package MuPAD-Combinat Thiery al
6Le test de logiciel
- Objectif trouver des fautes/erreurs dans les
programmes - Comment? En exécutant le programme sur un
ensemble de données quon 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)?
7Sélection dun jeu de test?
- Le test fonctionnel (boîte noire) sélection
basée sur une spécification du système - Ce que le système devrait faire
- Le test structurel (boîte de verre) sélection
basée sur le programme i.e. on sintéresse à
différents chemins dexécution - Ce 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
8Sélection dun jeu de test structurel/fonctionnel
- Pour sélectionner un jeu de tests, on part
- Dune modélisation du système/programme
- Dun 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
9Exemple estTrie(tab,t)
Spécification le programme prend en entrée un
tableau tab dau 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.
10Exemple estTrie
bool estTrie (tab array 0..5 of int, t int)
int i0 bool reptrue if (t0) then
rep true else while ((iltt1) and rep)
rep tabitabi1 i
i1 return rep
11Pourquoi le test statistique?
- Avantages
- Possibilité de faire du test plus intensif
quavec les autres méthodes - Inconvénients
- Mauvaise couverture des cas particuliers (ex cas
dexception) - Solution?
- Le combiner avec une autre méthode de test
Thévenod-Fosse,Waeselynck,1991.
12Qualité dun test statistique TF,Wa
- Soit E lensemble des éléments à couvrir
- N le nombre de tests
- La qualité de test qN est la probabilité
minimale dun élément de E dêtre couvert lors
des N tests - qN 1-(1- pmin)N
- où pmin minp(e), ?e?E
- Pour maximiser qN, il faut maximiser pmin
- Une solution (pas toujours possible)
- Tirage uniforme dans E
13Relation entre N et qN TF,Wa
- qN 1-(1- pmin)N
- 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
14Le test Statistique Structurel TF,Wa
- Construction dune distribution sur le domaine
des entrées qui - Maximise la qualité de test donc la probabilité
minimale datteindre un élément du critère de
couverture structurel considéré - Nécarte aucun point du domaine dentrée
- Avantages
- Bons résultats expérimentaux
- Inconvénients
- Distribution déterminée de manière empirique dans
certains cas
15Objectif de cette thèse
- Méthode de test statistique
- qui sapplique à 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
16Nouvelle approche pour le Test Statistique
17Nouvelle approche pour le Test Statistique
- Tirage aléatoire de chemins
- Lensemble des chemins dun graphe peut se
représenter facilement sous forme dune
spécification de structures combinatoires - Génération aléatoire de complexité linéaire
- 2 étapes
- 1) Tirer un ensemble de chemins adéquat
- 2) Passer des chemins aux données dentrée qui
permettent de les parcourir
18Test 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.
19Exemple quel n choisir?
INIT
- 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
1
I0
2
C1
3
5
I2
I4
B3
4
6
I5
7
EXIT
20Graphe et structure combinatoire
- Atomes arcs
- Séquence darcs chemin
- S v.S v.e0.C.e7
- C e1.e2 e3.B.e6
- B e4.I e
- I e5.B
S
C
21Gé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
22Génération tirage
S v.S v.e0.C.e7 C e1.e2 e3.B.e6 B e4.I
e I e5.B
S7
?
?
2/3
1/3
vS6
ve0C4e7
0
1
1
ve0e3B2e6e7
vvS5
vve0C3e7
0
1
vvvS3
vvve0C2e7
1/2
1/2
vvve0e1e2e7
vvve0e3e6e7
ve0e3e4e5e6e7
Longueur7
23- Si le critère consiste à couvrir un ensemble de
chemins on construit la structure combinatoire
correspondante - Exemples
- tous les chemins passant par larc 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 dautres éléments?
24Tirage de chemins
- Soit N le nombre de tests à générer.
- Tirer aléatoirement, selon une distribution
adéquate, N éléments e1,,eN parmi les éléments à
couvrir - Pour chaque ei, tirer aléatoirement et
uniformément un chemin (de longueur n) parmi
ceux qui passent par ei.
25Exemple
- Critère tous les sommets carrés
- SI2,I0,I4,I5
- 5 chemins de longueur ? 11.
- Distribution uniforme
- p(I2) 1/4
- 1/4?1/5
- 1/4?0
- 1/4?1/5
- 7/20 0.35
- De même p(I4)11/20, p(I0)1, p(I5)1
- pminp(I2) 0.35
On nobtient pas le pmin optimal !
26Exemple
- Critère tous les sommets carrés
- SI2,I4
- 5 chemins de longueur ? 11.
- Distribution uniforme
- pmin0.5
Comment pourrais-je maximiser automatiquement le
pmin?
27Probabilité dun élément
- La probabilité p(e) dun élément e dêtre atteint
lors dune 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
28Calcul des c(e,e) exemple de c(B3,I4)
v
v
INIT
INIT
v
v
I0
I0
e0
e0
A
C1
C1
e5
e5
?
X
e3
e4
e3
e4
e5
I4
B3
B3
I4
I4
B3
e4
e4
A
e6
e6
I5
I5
e7
e7
EXIT
EXIT
- On en déduit la structure combinatoire puis la
fonction de dénombrement
29Une manière de définir la distribution
- Pour optimiser la qualité de test, il faut
maximiser pmin. - Or pour tout e de E,
30Maximiser pmin sous les contraintes
Spmin
- On résout ce problème doptimisation par un
simplex et on en déduit les p1(ei).
31Exemple
- Critère tous les sommets carrés
- Distribution uniforme pour les chemins
- 5 chemins de longueur ? 11.
32Des chemins aux entrées
- Deuxième étape
- Déterminer les entrées permettant
- dexé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)
33Exemple
- Spécification t?0..6
- Chemin I0-C1-I2-I5
- Prédicat calculé t0
- Ce chemin est faisable
- Entrées possibles
- t0
- tab arbitraires
- Chemin I0-C1-B3-I5
- Prédicat calculé (tgt0) ? (t-1)
- Ce chemin est infaisable
34Des chemins aux entrées
- Plusieurs cas possibles pour la résolution de
chaque prédicat - Le prédicat a une solution cest notre donnée de
test - Le prédicat na pas de solution le chemin
associé est infaisable - Le prédicat est indéterminé
- Le calcul théorique des p1(ei) ne prend pas en
compte les chemins infaisables
35Validation de lapproche
36Application 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
37AuGuSTe
P,C,N,n
À partir du programme P, on construit la
spécification combinatoire du graphe de
contrôle Construction de lensemble des éléments
à tirer en fonction de C Pour chaque élément,
construire lensemble des chemins passant par
cet élément Déterminer la distribution sur les
éléments
Tirage des N éléments Tirage des N chemins de
longueur inférieure ou égale à n
Construction des prédicats associés aux chemins
tirés Résolution randomisée des prédicats
associés aux chemins
Oui
Non
Echec?
Ensemble de données de test
38Les expériences
- Objectifs valider lapproche
- Comparer à lapproche 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
39Les 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
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
lenvironnement dexécution des tests - Exemple présence de variables non initialisées
- ? Mutants équivalents différents
41Les programmes et leurs mutants
Nom mutants mutants équivalents
Fct1 265 14
Fct2 548 69
Fct3 1416 2130
Fct4 587 99
42Les programmes et leurs mutants
Nom mutants mutants équivalents
Fct1 265 143
Fct2 548 69
Fct3 1416 213016
Fct4 587 9949
43Critè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 sassurer de la stabilité, il
y a 5 séries de tests.
44Résultats pour Fct1, Fct2 et Fct3
Score de mutation Score de mutation Score de mutation
Uniforme LAAS AuGuSTe
Fct1 Fct1 1 1 1
Fct2 Fct2 1 1 1
Fct3 Min 0.55 1 0.9951
Fct3 Moy 0.698 1 0.9989
Fct3 Max 0.85 1 1
- Fct3
- Reflète la dépendance vis-à-vis de
lenvironnement - Lié aux variables non initialisées ? détectables
par un bon compilateur
45Graphe de contrôle de FCT4
Choix de n? n?612?19 soit n?234
Soit plus de 1030 chemins à considérer Présence
dun nombre considérable de chemins infaisables
46Première expérience avec Fct4
- 1020 chemins dont 99,98 de chemins infaisables
- AuGuSTe (v1)
- pmin0.5
- Mais en pratique tous les enchaînements ne sont
pas couverts - AuGuSTe (v2)
- pmin0.5
- Mais en pratique, tous les enchaînements ne sont
pas couverts - Distribution sur les éléments ? tirage uniforme
parmi les chemins
47pmin
- Graphe équilibré
- gt Tirage uniforme parmi
- les chemins
- Deux sous-graphes indépendants ? mauvaise
couverture - Idée Transformation automatique de la structure
combinatoire
48Résultats pour Fct4 expérience 2
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
Score de mutation
- 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
49Bilan et Perspectives
50Contribution
- Premiè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 dexpériences
- Expériences aux résultats positifs
- Efficacité comparable à celle du LAAS et
automatisation - Approche stable
- Passage à léchelle possible
51Perspectives (1/2)
- Adapter/améliorer la distribution des p1(ei) en
fonction des différents problèmes rencontrés - Les chemins infaisables
- Méthodes dapprentissage Sebag al
- Méthodes probabilistes Maume al
- Borner la longueur des chemins peut masquer des
erreurs - Méthode Boltzmann Duchon,Flajolet,Louchard,Schaef
fer,2002 - Prendre en compte plus daspects sémantiques
- Exemple les cas exceptionnels doivent-ils être
autant testés que les cas standards?
52Perspectives (2/2)
- Mieux exploiter les structures combinatoires pour
limiter les chemins infaisables - Analyse statique
- ? Meilleure distribution
- Application à dautres techniques
- Test statistique fonctionnel
- Model checking
53Des questions?
54Modification de la structure combinatoire
55Distribution basée sur les dominances (1/2)
- Classe déquivalence
- Une classe A domine une classe B, si tout chemin
qui passe par les éléments de B passe par les
éléments de A
56Distribution basée sur les dominances (2/2)
- Choisir un représentant des classes aux feuilles
- SI2,I4
- Rajouter éventuellement à S un représentant de la
classe racine. - SI2,I4,I0
- Faire du tirage uniforme dans lensemble S.
- pmin0.4