plus pr ´ecis que (b)
6.6.3/ COUVERTURE DES TESTS
Dans la Sec. 6.3, on a pr ´esent ´e une m ´ethode de calcul d’un RA `a partir d’un STPTIO donn ´e. Notre algorithme qui calcule ce RA a pour crit `ere d’arr ˆet la couverture de toutes les transitions du STPTIO. Il ajoute une nouvelle π−transition (lT, π, lT0) si et seulement si son chemin π couvre au moins une nouvelle transition entre les localit ´es symboliques calcul ´ees lTet lT0par rapport aux autres transitions d ´ej `a calcul ´ees. Les chemins de toutes
les π−transitions qui partent d’une localit ´e initiale symbolique pour atteindre une localit ´e finale du STPTIO sont pris comme cas de test. Mais, on ne peut pas affirmer que tous les cas de tests g ´en ´er ´es sont concr ´etisables. Donc, il n’est pas garanti que tous les cas de tests g ´en ´er ´es concrets couvrent toutes les transitions du STPTIO. Par contre, si tous les cas de tests g ´en ´er ´es sont concr ´etisables, alors, toutes les localit ´es et toutes les transitions du TPAIO sont couvertes. C’est le cas de notre exemple de la Fig. 6.3.
6.7/
C
ONCLUSIONOn a pr ´esent ´e dans ce chapitre une m ´ethode de g ´en ´eration de tests `a partir d’un programme r ´ecursif temporis ´e qui est mod ´elis ´e par un automate `a pile tempo- ris ´e d ´eterministe avec sorties seulement. La m ´ethode consiste `a d ´efinir un testeur d ´eterministe STPTIO d’un TPAIO donn ´e en adaptant la m ´ethode de d ´eterminisation de Krichen et Tripakis au cas des TPAIO pour ajouter le verdict f ail et enlever les localit ´es symboliques non atteignables `a cause de contraintes temporelles. Puis, elle calcule un automate d’atteignabilit ´e qui est un automate fini avec des π-transitions prenant en compte les contraintes de la pile o `u π est un chemin du STPTIO. Enfin, la m ´ethode g ´en `ere des cas de tests couvrant les localit ´es et les transitions atteignables du TPAIO.
Le mod `ele utilis ´e dans ce chapitre est un TPAIO d ´eterministe dont toutes les dead- lines sont delayable. On propose une g ´en ´eralisation de cette m ´ethode `a des TPAIO non d ´eterministes avec un choix libre des deadlines dans le chapitre suivant.
TEST DE CONFORMITE´
A PARTIR D`
’UN
TPAIO
AVEC DEADLINES
Sommaire
7.1 Construction d’un STPTIO `a partir d’un TPAIO . . . 110
7.2 G ´en ´eration d’arbres de test . . . 114 7.3 Correction de la m ´ethode . . . 115 7.4 Exp ´erimentation . . . 115 7.5 Incompl ´etude . . . 121 7.6 Conclusion . . . 123
Dans le chapitre pr ´ec ´edent, nous avons propos ´e une m ´ethode de g ´en ´eration de tests `a partir d’un automate `a pile temporis ´e d ´eterministe avec sorties seulement et avec des deadlines delayable seulement. On propose dans ce chapitre une m ´ethode pour un mod `ele qui est un TPAIO non d ´eterministe et avec deadlines quelconques. Il pr ´esente trois caract ´eristiques diff ´erentes par rapport au mod `ele utilis ´e dans le chapitre pr ´ec ´edent : TPAIO non d ´eterministe, prise en compte des deadlines lazy, delayable et eager et prise en compte des actions d’entr ´ee. Les deadlines imposent des conditions de progression au temps dans des localit ´es du TPAIO. On propose une m ´ethode de g ´en ´eration de tests qui tient compte non seulement d’une observation d’une action non sp ´ecifi ´ee ou non autoris ´ee, mais qui d ´etecte aussi les violations des ACV avec n’importe quelle deadline. Cette contribution a donn ´e lieu aux publications [MJMR15d][MJMR15c].
Nous g ´en ´eralisons le processus de g ´en ´eration de tests `a partir d’un TPAIO d ´eterministe avec sorties seulement et deadline delayable au cas des TPAIO non d ´eterministes et avec entr ´ees/sorties et trois types de deadlines. La premi `ere ´etape est la construction d’un STPTIO `a partir d’un TPAIO donn ´e pour r ´esoudre les contraintes d’horloges et les contraintes de pile, d ´eterminiser le TPAIO et aussi ajouter des transitions qui m `enent `a de nouvelles localit ´es f ail et inconc afin de d ´etecter la non conformit ´e. La deuxi `eme ´etape est le calcul d’un automate d’atteignabilit ´e RA `a partir du STPTIO obtenu afin de calculer un ou plusieurs chemins entre deux localit ´es symboliques. Cette ´etape a d ´ej `a ´et ´e pr ´esent ´ee dans la Sec. 6.3 du chapitre pr ´ec ´edent. La troisi `eme ´etape consiste `a g ´en ´erer des cas de tests en utilisant chaque π-transition du RA qui part d’une localit ´e symbolique initiale vers une localit ´e symbolique finale. Les cas de tests sont individualisables et individualis ´es pour v ´erifier si l’une des ex ´ecutions d’un mod `ele d’impl ´ementation conduit `a f ail. Dans le cadre d’une ex ´ecution des tests sur une v ´eritable impl ´ementation, il est pr ´ef ´erable de consid ´erer un arbre de tests afin de poursuivre l’observation le plus loin
possible, selon les sorties de l’impl ´ementation, pour limiter les verdicts inconclusifs. Nous ´evaluons la capacit ´e de notre m ´ethode `a d ´etecter des impl ´ementations non-conformes obtenues par une technique de mutation qui permet de modifier automatiquement un TPAIO donn ´e par l’application d’un op ´erateur de mutation. Nos r ´esultats exp ´erimentaux montrent que la grande majorit ´e des mutants non-conformes sont d ´etect ´es.
On applique le m ˆeme processus de g ´en ´eration de tests que celui pr ´esent ´e dans le chapitre pr ´ec ´edent. On pr ´esente seulement les modifications li ´ees aux deadlines sur les deux ´etapes modifi ´ees : construction du STPTIO et g ´en ´eration de tests. La premi `ere ´etape est la construction d’un STPTIO `a partir d’un TPAIO. Elle est pr ´esent ´ee dans la Sec. 7.1. La Sec. 7.2 pr ´esente la derni `ere ´etape qui est la g ´en ´eration de tests. La Sec. 7.3 discute de la correction de notre m ´ethode. Nous d ´efinissons des op ´erateurs de mutation et le produit synchronis ´e qui mod ´elise l’ex ´ecution d’un test sur un mutant utilis ´e comme mod `ele d’impl ´ementation dans la Sec. 7.4. Cette section pr ´esente aussi nos r ´esultats exp ´erimentaux. Enfin, nous concluons en Sec. 7.6.
7.1/
C
ONSTRUCTION D’
UNSTPTIO `
A PARTIR D’
UNTPAIO
D ´efinition 29 : Testeur symbolique `a pile temporis ´e d ´eterministe STPTIO
Un STPTIO TT = hLT, lT0, ΣTout∪ΣTin, Γ, {y}, ∆T, FTid’un TPAIO T = hL, l0, Σout∪Σin∪
{τ}, Γ, X, ∆, Fi est un TPAIO `a horloge unique y, qui est diff´erente des horloges de X, o `u :
• lT0 est la localit ´e symbolique initiale,
• LT ⊆ 2(L×CC(X∪{y})×Γ∗)∪ { f ail, inconc} est un ensemble de localit´es symbol- iques,
• ΣTin= Σout∪ {othw} ∪ {time},
• ΣT
out = Σin,
• FT = {lT | ∃(l, v, p).((l, v, p) ∈ lT ∧ l ∈ F)} est un ensemble de localit ´es symboliques finales,
• ∆T ⊆ LT ×ΣT
out ∪Σin ∪Γ+−× Grd({y}) × {y} × LT est un ensemble fini de
transitions.
On propose d’adapter la m ´ethode de [KT09] d ´efinie pour les TAIO non d ´eterministes avec deadlines pour calculer un testeur `a partir d’un TPAIO non d ´eterministe avec deadlines. Le testeur calcul ´e est appel ´e STPTIO ( pour Symbolic Timed Pushdown Tester with Inputs and Outputs) qui est un observateur des impl ´ementations test ´ees. Il int `egre des localit ´es symboliques, des nouvelles localit ´es f ail et inconc et des transitions qui les atteignent `a partir d’une autre localit ´e symbolique. C’est un TPAIO avec une seule horloge qui se remet `a z ´ero `a chaque franchissement d’une action, et dont toutes les transitions ont la deadline lazy. N’ayant qu’une seule horloge, toutes les gardes de ce testeur sont satisfiables. Afin de d ´etecter la non-conformit ´e entre une impl ´ementation et un TPAIO, les actions d’entr ´ees du STPTIO sont les actions de sorties (Σout) du
TPAIO, les actions de sorties du STPTIO sont les actions d’entr ´ees (Σin) du TPAIO,
et les actions de la pile sont celles de la pile (Γ) du TPAIO. Nous notons othw un nom d’action quelconque diff ´erent de chaque nom de Σout, de Γ+− et de τ et time une action
couples (localit ´e du TPAIO, contraintes). Les contraintes portent sur les horloges du TPAIO et sur la nouvelle horloge y du STPTIO.
Un STPTIO est formellement d ´efini dans la Def. 29.
Les localit ´es sont dites symboliques car elles repr ´esentent un ensemble de localit ´es pour l’ensemble des valeurs d’horloges qui satisfont la contrainte. La localit ´e f ail est atteignable selon l’une de ces trois possibilit ´es :
• observation d’une action de la pile (Γ+−) ou de sortie (Σout) non sp ´ecifi ´ee ou arrivant
plus t ˆot ou plus tard que sp ´ecifi ´ee,
• observation d’un instant ne satisfaisant pas l’ACV dans l’ ´etat courant,
• observation d’une action non autoris ´ee dans T , mais qui peut ˆetre ex ´ecut ´ee par l’impl ´ementation.
Le syst `eme est parfois autoris ´e `a laisser le temps s’ ´ecouler ind ´efiniment, par exemple dans les localit ´es o `u les deadlines de toutes les transitions sortantes sont lazy. On propose dans ce cas d’ajouter des transitions qui m `enent `a inconc afin d’ ´eviter l’attente infinie et le blocage de l’observation dans une localit ´e. La localit ´e inconc est atteignable en cas de non observation d’une action de sortie ou de la pile au cours d’un d ´elai arbi- trairement fix ´e pour l’arriv ´ee des actions de la pile et de sortie dans la localit ´e courante. Ce cas de figure est inconclusif car ´etant dans une localit ´e o `u le temps peut s’ ´ecouler ind ´efiniment, pass ´e le d ´elai o `u des actions peuvent se produire, s’il n’est pas arriv ´e d’action, on ne sait pas s’il n’en arrivera jamais (cas pass) o `u s’il y en arrivera une plus tard (cas f ail). Donc, un d ´elai maximum d’observation de l’impl ´ementation est choisi arbi- trairement, mais, il doit ˆetre sup ´erieur au plus grand d ´elai d’arriv ´ee d’une action autoris ´ee.
Avant de pr ´esenter les d ´efinitions des transitions d’un STPTIO `a partir d’un TPAIO, on a besoin de red ´efinir les notations suivantes pour le cas des STPTIO :
• usucc(lT) = {lT 0 | ∃(l, v, p).((l, v, p) ∈ lT ∧ ∃ρ.(ρ ∈ RT ({τ}) ∧ (l, v, p) →ρ (l0, v0, p) ∧ (l0, v0, p) ∈ lT 0))}. C’est l’ensemble des localit ´es symboliques atteignables `a partir de la localit ´e symbolique lT par une s ´equence d’actions non observables.
• dsucc(lT, a) = {lT 0 | ∃(l, v, p).((l, v, p) ∈ lT ∧ (l, v, p) →a (l0, v0, p0) ∧ (l0, v0, p0) ∈ lT 0)}. C’est l’ensemble de localit ´es symboliques atteignables `a partir de lT par l’action a.
On a besoin aussi de d ´efinir la notation suivante :
• tsucc(lT, u) = {lT 0| ∃(l, v, p).((l, v, p) ∈ lT∧ (l, v, p) →u (l, v+ u, p) ∧ (l, v + u, p) ∈ lT 0)} est l’ensemble de localit ´es symboliques atteignables `a partir de lT par l’ ´ecoulement de
temps avec un intervalle u.
Formalisons maintenant la notion de transition du STPTIO dans la Def. 30.
La localit ´e symbolique initiale lX∪{y}0 est ´egale `a usucc(lT0) o `u toutes les horloges de T et l’horloge y sont initialis ´ees `a z ´ero. Le principe de calcul des localit ´es symboliques, des transitions entre localit ´es symboliques et des transitions du STPTIO et de r ´ep ´eter les ´etapes suivantes : s ´election d’une localit ´e qui n’est pas encore ajout ´ee dans LT et puis
application de l’une de ces possibilit ´es pour ajouter des nouvelles transitions `a∆T :
1. La transition (lT, ?othw, y > 0, {y}, f ail) est ajout´ee `a ∆T.
2. La transition (lT, ?time, y > K, {y}, inconc) est ajout´ee `a ∆T dans le cas o `u le temps
peut s’ ´ecouler ind ´efiniment dans la localit ´e symbolique lT et o `u K est la dur ´ee max- imale d’observation qui est choisie arbitrairement par l’ing ´enieur de test comme
´etant sup ´erieure `a toutes les valeurs qui apparaissent dans les gardes de son TPAIO.
3. La transition (lT, ?time, u, {y}, f ail) est ajout´ee dans ∆T dans le cas d’un d ´epassement
de temps dans la localit ´e de lT d ˆu `a la violation d’ACV si ∀(l, v, p) ∈ lT.(ACV
l(v,p,v+
u)= f alse), c’est `a dire que le temps ne peut pas s’´ecouler au del`a de l’intervalle de temps u dans chaque (l, v, p) ∈ lT
4. Pour chaque grande partition u calcul ´ee, on applique les pas suivants :
• actions d’entr ´ees : pour chaque action d’entr ´ee A ∈Σinsi usucc(dsucc(lT∩ u, A) ,
∅, alors la transition (lT, A, u, {y}, usucc(dsucc(lT∩ u, A))) est ajout´ee `a ∆T;
• actions de sorties ou de pile : pour chaque action a ∈Σout∪Γ+−, si usucc(dsucc(lT∩
u, a)) = ∅, alors la transition (lT, a, u, {y}, f ail) est ajout´ee `a ∆T. Sinon, la transition (lT, a, u, {y}, usucc(dsucc(lT ∩ u, a))) est ajout´ee `a ∆T.
D ´efinition 30 : Transitions du Testeur `a pile temporis ´e STPTIO
Soit K un d ´elai d’observation des impl ´ementations qui soit sup ´erieur au plus grand d ´elai de d ´eclenchement d’une action quelconque quand le temps peut s’ ´ecouler ind ´efiniment. Un STPTIO TT = hLT, lT
0, Σ T
out ∪ΣTin, Γ, {y}, ∆
T, FTi d’un
TPAIO T = hL, l0, Σout ∪Σin ∪ {τ}, Γ, X, ∆, Fi non d´eterministe est un TPAIO. Les
transitions de∆T sont d ´efinies comme suit :
(I) (lT, ?othw, y > 0, {y}, f ail) ∈ ∆T.
(II) (lT, ?time, y > K, lazy, {y}, inconc) ∈ ∆T si tsucc(lT, y > 0) , ∅.
(III) (lT, ?time, u, {y}, f ail) ∈ ∆T si tsucc(lT, u) = ∅.
(IV) (lT, act, u, {y}, usucc(dsucc(lT∩ u, act))) ∈ ∆T si usucc(dsucc(lT∩ u, act)) , ∅ et
act ∈Σin∪Σout∪Γ+−,
(V) (lT, act, u, {y}, f ail) ∈ ∆T si usucc(dsucc(lT∩ u, act)) = ∅ et act ∈ Σ
out∪Γ+−.
L’application r ´ep ´etitive du cas (IV) de la Def. 30 peut produire un nombre infini de transi- tions et de localit ´es. On propose d’utiliser comme dans le chapitre pr ´ec ´edent une variable afin de limiter le nombre d’empilement possible. Les diff ´erences entre la m ´ethode de cal- cul du testeur dans le chapitre pr ´ec ´edent et dans ce chapitre sont :
• une localit ´e symbolique est un ensemble de triplets (l, v, p) au lieu d’un seul triplet au chapitre 6 o `u l est une localit ´e, v est une valuation d’horloges p le contenu de la pile.
• le testeur de ce chapitre peut avoir des transitions ´etiquet ´ees par une action de sortie, ce qui n’est pas le cas dans le chapitre 6 qui calcule un testeur avec des transitions ´etiquet ´ees par une action d’entr ´ee seulement ;
• le calcul de successeur de chaque localit ´e symbolique tient compte non seulement de la deadline delayable mais ´egalement des deadlines lazy et eager.
`
A partir du STPTIO engendr ´e par cette ´etape, un RA est calcul ´e comme au chapitre pr ´ec ´edent (voir Sec. 6.3)
Exemple 7.1.1. La Fig. 7.1 pr ´esente un exemple d’un TPAIO non d ´eterministe T o `u
l0 l1 l2 l3 ?A, x 6 2, lazy, {x} a+, x 6 3, delayable, {x} a−, x 6 3, delayable, {x} a−, 1 6 x 6 4, lazy, {x}