Utilisation des Structures Combinatoires pour le Test Statistique - PowerPoint PPT Presentation

About This Presentation
Title:

Utilisation des Structures Combinatoires pour le Test Statistique

Description:

La sp cification de structures combinatoires consiste en un ensemble de r gles ... En ex cutant le programme sur un ensemble de donn es qu'on appelle jeu de test. ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 53
Provided by: ass51
Category:

less

Transcript and Presenter's Notes

Title: Utilisation des Structures Combinatoires pour le Test Statistique


1
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

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 lapproche
  • Le prototype AuGuSTe
  • Résultats expérimentaux
  • Bilan et Perspectives

3
Contexte
4
Les 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)

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 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

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 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)?

7
Sé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

8
Sé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

9
Exemple 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.
10
Exemple 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
11
Pourquoi 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.

12
Qualité 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

13
Relation 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

14
Le 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

15
Objectif 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

16
Nouvelle approche pour le Test Statistique
17
Nouvelle 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

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.

19
Exemple 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
20
Graphe 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
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
22
Gé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?

24
Tirage 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.

25
Exemple
  • 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 !
26
Exemple
  • 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?
27
Probabilité 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

28
Calcul 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

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,

30
Maximiser pmin sous les contraintes
Spmin
  • On résout ce problème doptimisation par un
    simplex et on en déduit les p1(ei).

31
Exemple
  • Critère tous les sommets carrés
  • Distribution uniforme pour les chemins
  • 5 chemins de longueur ? 11.

32
Des 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)

33
Exemple
  • 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

34
Des 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

35
Validation de lapproche
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
37
AuGuSTe
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
38
Les 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

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
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

41
Les programmes et leurs mutants
Nom mutants mutants équivalents
Fct1 265 14
Fct2 548 69
Fct3 1416 2130
Fct4 587 99
42
Les programmes et leurs mutants
Nom mutants mutants équivalents
Fct1 265 143
Fct2 548 69
Fct3 1416 213016
Fct4 587 9949
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 sassurer de la stabilité, il
    y a 5 séries de tests.

44
Ré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

45
Graphe 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
46
Premiè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

47
pmin
  • Graphe équilibré
  • gt Tirage uniforme parmi
  • les chemins
  • Deux sous-graphes indépendants ? mauvaise
    couverture
  • Idée Transformation automatique de la structure
    combinatoire

48
Ré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

49
Bilan et Perspectives
50
Contribution
  • 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

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 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?

52
Perspectives (2/2)
  • Mieux exploiter les structures combinatoires pour
    limiter les chemins infaisables
  • Analyse statique
  • ? Meilleure distribution
  • Application à dautres techniques
  • Test statistique fonctionnel
  • Model checking

53
Des questions?
54
Modification de la structure combinatoire
55
Distribution 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

56
Distribution 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
Write a Comment
User Comments (0)
About PowerShow.com