Upload
marja
View
19
Download
0
Embed Size (px)
DESCRIPTION
« About two instances of Coverage-Based Statistical Testing » Frédéric Voisin. Deux exemples de travaux sur ce thème. test statistique « structurel », orienté vers la satisfaction de « critères de couverture » Applicable à différents types de formalismes - PowerPoint PPT Presentation
Citation preview
« About two instances of Coverage-Based
Statistical Testing »
Frédéric Voisin
Novembre 2008 Exposé Fortesse 2
Deux exemples de travaux sur ce thème
test statistique « structurel », orienté vers la satisfaction de « critères de couverture »
Applicable à différents types de formalismes
AUGUSTE: Graphe de flot de contrôle / flot de données pour du test unitaire (programmes C-like)
SALLUSTE: description LUSTRE
Novembre 2008 Exposé Fortesse 3
Principes de base
Classique: test aléatoire (uniforme ou non) sur les données Avantages:
automatisationtest intensif possibleIntéressant si on connaît la distribution opérationnelle des
données Inconvénient:
faible couverture de cas « rares »,pas de relation avec des critères de couverture (qualité) lié à
la réalisation de l’objet sous test,La couverture réelle des tests ne s’améliore pas forcément si
on accroît la taille du jeu de test
Novembre 2008 Exposé Fortesse 4
Plus novateur: test statistique structurel !
La « complexité » de la réalisation est prise en compte à travers des « critères de couverture »
On introduit un « biais » par rapport à une distribution uniforme des données de manière à ne pas sous-représenter les cas rares.
Idées : Plutôt que de faire des tirages uniformes sur des données, on fait
du tirage uniforme sur des chemins dans une représentation en graphe (par ex. Chemins d’exécution dans le graphe de flot de contrôle)
On pondère les différents éléments du graphe pour aboutir à une uniformité sur les chemins (de longueur donnée)
Il existe un outil pratique pour cela: les structures combinatoires
Novembre 2008 Exposé Fortesse 5
Les « structures combinatoires »
Structure combinatoire ? un objet atomique ou obtenu en appliquant un opérateur à des objets
combinatoires… Objets « décomposables » construits de manière unique
à partir d’objets plus petits
Problème de base: étant donné un ensemble d’objets combinatoires et un entier n, engendrer aléatoirement un ou une séquence d’objets de taille n dans cet ensemble.
Novembre 2008 Exposé Fortesse 6
Les « spécifications combinatoires »
Un ensemble particulier de règles de constructions: Des objets « vide » de taille 0 (noté 1, ou ) Des « atomes » de taille 1 Un ensemble d’opérateurs:
+ : union disjointeX : produitSéquence(A): suite finie d’éléments de A
– la séquence peut être bornée ou de longueur donnée.Set(A): l’ensemble des ensembles finis d’éléments de ACycle(A): cycles finis d’éléments de A
Exemples: si F est un atome: A = F + A x A -- arbres binaires complets dont les feuilles sont
des atomes A = S + S x A x A – les sommets sont les atomes
Novembre 2008 Exposé Fortesse 7
Les spécifications combinatoires sont mises sous forme « standard », équivalente à une famille d’ équations aux langages.
Les algos de tirage se décomposent en deux étapes: Dénombrement des objets de taille n (ou ≤ n)
Étape de tirage basée sur le dénombrement précédent…
Il existe des algo très efficaces de génération quand la spécification combinatoire correspond à un langage algébrique ou rationnel
Dans la suite on ne garde que +, x, et * (lang. rationnel !)
On peut ajouter une extension « syntaxique » seq (n) ou seq (≤ n), n étant fixé, sans sortir du cadre rationnel.
Novembre 2008 Exposé Fortesse 8
Un exemple de génération uniforme
Langage de Fibonacci : L = (a+bb)* S aS | bbS |
Une instance de taille 4: S aS aaS aabbS Toutes les instances:
S4
aS3 bbS2
aaS2 abbS1 bbaS1 bbbbS0
aaaS1 aabbS0 abbaS0 bbaaS0 bbbb
aaaaS0 aabb abba bbaa
aaaa
Novembre 2008 Exposé Fortesse 9
Counting and randomising:
S4
aS3 bbS2
aaS2 abbS1 bbaS bbbbS0
aaaS1 aabbS0 abbaS0 bbaaS0 bbbb
aaaaS0 aabb abba bbaa
aaaa
3/5 2/5
2/3 1/3 1/2 1/2
1/21/2
Counting: S aS | bbS | S(0) = 1 ; S(1) = 1 ; S(n) = S(n-1) + S(n-2) (n≥2)
Novembre 2008 Exposé Fortesse 10
Structures combinatoires et graphe de flot de contrôle
Atomes= arcsSequence d’arcs= cheminsStructure Combinatoire :
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
e4e6
e7
S C
Novembre 2008 Exposé Fortesse 11
Là où ça coince….
Si on se base sur la description (le graphe) Tous les chemins ne correspondent pas à des chemins réels Il est indécidable de savoir si un chemin est exécutable On se repose sur la résolution de contraintes pour tester si le
chemin est faisable et déterminer des valeurs d’entrée
Comment éviter de tirer des chemins infaisables ?Comment détecter qu’un chemin est infaisable ?Que fait-on des chemins infaisables (on retire ?)
Que fait-on si le critère de couverture ne se traduit pas facilement en termes de tirage de chemins ?
Novembre 2008 Exposé Fortesse 12
SALLUSTEOptimisations adaptées à LUSTRE:
Dépendances entre données
Dépendances entre cycles temporels consécutifs
Heuristiques de résolution de contraintes
Traduction de la spécification Lustre en structures combinatoires
Génération basée sur le dépliage d’opérateurs Lustre
Novembre 2008 Exposé Fortesse 13
AUGUSTE
Test unitaire de programmes impératifs:
techniques de compilation (traduction optimisée)
critères de couvertures classiques
benchmark de la méthode
Novembre 2008 Exposé Fortesse 14
Auguste: principe général
Compilateur en une (ou plusieurs) spécifications de structuresCombinatoires
Si besoin, calcul de la distribution sur les éléments du critère
Programme N Critèren
Tirages de N chemins(précédé, si besoin, du tirages de N éléments du critère)
Construction des prédicats des N cheminsRésolution
Échec(s) de résolution? N données de test
Novembre 2008 Exposé Fortesse 15
AUGUSTE – V0: architecture logicielle
Programme C-like, N, Nb, critère
Analyse syntaxiqueTransformation(s)
Génération de S.C.
Calcul d’automates (Ce,e’)
DénombrementResolution de SystèmesLinéairesTirageGénération de code C
Tirageensemble de cheminsConstruction des prédicatsDe cheminement
Résolution de contraintes
Prédicat de chemin
Valeurs d’entrée / Échec(s)Jeu de N tests
S.C.
*
Novembre 2008 Exposé Fortesse 16
AUGUSTE – V1: architecture logicielle
CIL
Génération de S.C.
Calcul d’automates (Ce,e’)
DénombrementResolution de SystèmesLinéairesTirageGénération de code C
Tirageensemble de cheminsConstruction des prédicatsDe cheminement
Résolution de contraintes
Prédicat de chemin
Valeurs d’entrée / Échec(s)Jeu de N tests
S.C.
*
Novembre 2008 Exposé Fortesse 17
FCT4
Choix de n ?n ≥ 6 + 12 x 19 => n ≥ 234
> 1030 chemins à considérer, bcp de chemins infaisables
Novembre 2008 Exposé Fortesse 18
Deux sous-graphes indépendants mauvaise couverture
Transformation de la structure combinatoire
Master Rech, 2006 19
All-vertices and all-edges
First naive approach:1. Draw uniformly N elements e1, …, eN among those to be
covered2. For each ek, generate a path among those traversing ek, of
length ≤ n Let S be the set of elements to be covered (statements,
branches, …); eS, the probability of e to be activated is
where is the nb of paths traversing e andis the nb of paths traversing both e and e’
Cne
p(e) 1
S
1
S
Cne,e'
Cne'
e 'S \{e}
Cne,e'
Master Rech, 2006 20
Test Quality
What does it mean to “satisfy” a coverage criteria in a randomised framework?
The test quality qN is the weakest probability that any element of S has to be covered when N tests are exercised
qqNN =1-(1- p =1-(1- pminmin))NN
where pmin = min{p(e), eS}
Master Rech, 2006 21
How to increase mineS p(e) ?
By drawing non uniformly from S: let S = {e1, …, em}, and p(ei) the probability of ei
let , then
Given the ci,j, the problem of finding the values {p(e1) , …, p(em)} such that: min{p(ei), i = 1, …, m} is maximum and p(e1) + …+ p(em) = 1 is a classical one in combinatorial optimisation
c i, j Cn
ei ,e j
Cne j
p(ei) p e j 1jm
c i, j
Master Rech, 2006 22
PB : Maximise pmin under these constraints
This optimisation problem is solved by a Simplex algorithm.
The p1(ei) give the distribution for drawing from S
minp c1,1
1p (
1e ) ... c1, S 1
p (Se )
...
minp c S ,1
1p (
1e ) ... c S , S 1
p (Se )
11
p (1e )
1p (
2e ) ...1
p (Se )
Novembre 2008 Exposé Fortesse 23
Extensions à Auguste
« Industrialisation » du prototype Test de différents solveurs de contraintes Passage à un sous-ensemble de vrai C
Extensions « syntaxiques » Extensions « sémantiques »
Annotations intelligentes de programmes C Apprentissage des chemins infaisables Traduction plus « fine » en structures combinatoires
Transformations de la structure combinatoire Analyse statique et évaluation symbolique Program slicing
Autres méthodes de tirage aléatoires (cas non rationnels)