23
« About two instances of Coverage-Based Statistical Testing » Frédéric Voisin

« About two instances of Coverage-Based Statistical Testing » Frédéric Voisin

  • 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

Page 1: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

« About two instances of Coverage-Based

Statistical Testing »

Frédéric Voisin

Page 2: « 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

Page 3: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 4: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 5: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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.

Page 6: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 7: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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.

Page 8: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 9: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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)

Page 10: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 11: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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 ?

Page 12: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 13: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 14: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 15: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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.

*

Page 16: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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.

*

Page 17: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

Novembre 2008 Exposé Fortesse 17

FCT4

Choix de n ?n ≥ 6 + 12 x 19 => n ≥ 234

> 1030 chemins à considérer, bcp de chemins infaisables

Page 18: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

Novembre 2008 Exposé Fortesse 18

Deux sous-graphes indépendants mauvaise couverture

Transformation de la structure combinatoire

Page 19: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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'

Page 20: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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}

Page 21: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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

Page 22: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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 )

Page 23: « About two instances of  Coverage-Based  Statistical Testing »  Frédéric Voisin

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)