23.11.2014 Views

Méthodes pour la validation de modèles formels pour la ... - ISAE

Méthodes pour la validation de modèles formels pour la ... - ISAE

Méthodes pour la validation de modèles formels pour la ... - ISAE

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.6 Implémentation <strong>de</strong>s critères <strong>de</strong> couverture 133<br />

OUT = case { p 1 : ω 1 ,<br />

p 2 : ω 2 ,<br />

...<br />

p n−1 : ω n−1<br />

else ω n } ;<br />

L’idée générale, simi<strong>la</strong>ire à celle utilisée <strong>pour</strong> <strong>la</strong> mesure <strong>de</strong> <strong>la</strong> couverture <strong>de</strong>s transitions,<br />

est <strong>de</strong> déplier les différents prédicats <strong>de</strong> l’assertion puis <strong>de</strong> créer <strong>de</strong>s « drapeaux » sous forme<br />

<strong>de</strong> variables d’état. Ainsi, on créera n variables d’état booléennes f<strong>la</strong>g_OUT _suff i où OUT<br />

sera le nom <strong>de</strong> <strong>la</strong> variable <strong>de</strong> sortie concernée par l’assertion et suff i prendra différentes formes<br />

permettant <strong>de</strong> différencier les drapeaux (e.g. suff i = i ou suff i = c j _t). On initialisera chacun<br />

<strong>de</strong> ces drapeaux à <strong>la</strong> valeur faux. Des transitions instantannées (l’évènement <strong>de</strong> <strong>la</strong> transition<br />

se produit dès que <strong>la</strong> gar<strong>de</strong> est satisfaite) se chargeront <strong>de</strong> leur faire prendre <strong>la</strong> valeur vrai. Le<br />

principe est illustré par les trois applications ci-<strong>de</strong>ssous (E désigne un évènement instantané -<br />

section 2.2.3).<br />

4.6.2.2 Application 1 : Critère <strong>de</strong> <strong>de</strong> couverture simple <strong>de</strong>s prédicats d’une assertion<br />

Un drapeau et une transition sont créés <strong>pour</strong> chaque prédicat p i <strong>de</strong> l’assertion. Ce critère<br />

peut être satisfait avec n + 1 tests ou n est le nombre <strong>de</strong> prédicats <strong>de</strong> l’assertion (i.e. un test <strong>pour</strong><br />

chaque prédicat et un test <strong>pour</strong> le « else » où il sera nécessaire d’évaluer l’ensemble <strong>de</strong>s prédicats<br />

à faux). Par exemple <strong>pour</strong> l’assertion ci-<strong>de</strong>ssus, l’implémentation du critère <strong>de</strong> couverture simple<br />

<strong>de</strong>s prédicats d’une assertion est telle que :<br />

state<br />

f<strong>la</strong>g_OUT _1 : bool ;<br />

...<br />

f<strong>la</strong>g_OUT _n : bool ;<br />

init<br />

f<strong>la</strong>g_OUT _1 :=false, ..., f<strong>la</strong>g_OUT _n :=false ;<br />

trans<br />

f<strong>la</strong>g_OUT _1=false and p 1 =true |- E -> f<strong>la</strong>g_OUT _1 :=true ;<br />

...<br />

f<strong>la</strong>g_OUT _n − 1=false and (p 1 =false and . . . and p n−2 =false) and p n−1 =true |- E -><br />

f<strong>la</strong>g_OUT _n :=true ;<br />

f<strong>la</strong>g_OUT _n=false and (p 1 =false and ... and p n−1 =false) |- E -> f<strong>la</strong>g_OUT _n :=true ;<br />

Ainsi, à chaque fois qu’un « cas » <strong>de</strong> l’assertion est activé (lorsque p i est vrai et que p j<br />

est faux <strong>pour</strong> j < i), une transition est franchie et un drapeau f<strong>la</strong>g_OUT _i est évalué à vrai.<br />

Il le restera tout au long <strong>de</strong> <strong>la</strong> simu<strong>la</strong>tion du scénario <strong>de</strong> test et <strong>pour</strong>ra être observé à <strong>la</strong> fin <strong>de</strong><br />

celle-ci. Comme <strong>pour</strong> les transitions, il sera nécessaire d’effectuer une observation par scénario <strong>de</strong><br />

test effectué.<br />

4.6.2.3 Application 2 : Critère <strong>de</strong> couverture <strong>de</strong>s conditions / décisions <strong>de</strong>s prédicats<br />

Ici, l’objectif est, tout en satisfaisant le critère précé<strong>de</strong>nt, <strong>de</strong> s’assurer que les conditions<br />

présentes dans les prédicats sont évaluées à vrai et à faux. Illustrons le principe grâce à une<br />

assertion simple : « case { c 1 ∨ c 2 : v 1 , else v 2 } ; ».

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!