• Nenhum resultado encontrado

Caract´erisation des propri´et´es testables

No documento Yliès Falcone (páginas 93-97)

4.4 Testabilit´e dans la classification Safety-Progress

4.4.2 Caract´erisation des propri´et´es testables

Le cadre desr-propri´et´es permet de d´eterminer selon chaque relation la testabilit´e des diff´erents types de propri´et´es. De plus, ce cadre permet de fournir un oracle calculable, qui est une condition suffisante pour le test. Aussi, nous serons capables de caract´eriser quelles s´equences de test permettent d’´etablir les verdicts recherch´es. Ensuite, nous ´etablirons le verdict `a donner pour chaque s´equence d’ex´ecution qu’un programme peut produire.

Nous caract´erisons maintenant l’espace des propri´et´es testables selon la relation recherch´ee entre Exec(PΣ)etΠ.

Testabilit´e vis-`a-vis de la relationExec(PΣ)⊆Π

Nous ´etudions la testabilit´e desr-propri´et´es vis-`a-vis de la relationExec(PΣ)⊆Π.

Verdicts obtenables et condition suffisante. Pour cette relation, les seuls verdicts qu’il est possible d’obtenir sont les verdictsfailet inconc. Ce que nous expliquons ci-dessous.

Un verdictpasssignifie que toutes les s´equences d’ex´ecution dePΣ appartiennent `aΠ. L’unique cas o`u il est possible d’´etablir un verdictpassest dans le cas trivial o`uΠ =(Σω),i.e., la propri´et´eΠest toujours v´erifi´ee. ´Evidemment toutes les implantations satisfont cette relation. Dans les autres cas, il est impossible d’obtenir un tel verdict quelle que soit la classe de propri´et´e consid´er´ee d`es lors que le programme exhibe des comportements infinis.

Un verdictfailsignifie que les s´equences produites par le programme ne sont pas toutes dansΠ, il y a donc une s´equenceσ∈Exec(PΣ)qui n’appartient pas `aΠ. Il nous faut donc observer une telle s´equence σ, forc´ement finie, qui est le pr´efixe d’une s´equence d’ex´ecution du programme. De plus, pour pouvoir arrˆeter le test, il faut ˆetre sˆur qu’il n’existe pas de continuation deσ qui appartienne `aΠ. Autrement dit, il faut exhiber une s´equence d’ex´ecution dePΣ telle queΠsoitn´egativement d´etermin´ee par cette s´equence. Ce qui peut s’exprimer assez simplement par le th´eor`eme suivant :

Th´eor`eme ϑ (Condition suffisante pour ´etablir un verdict pourExec(PΣ)⊆Π) : Il est pos- sible d’´etablir que la relationExec(PΣ)⊆Πn’est pas v´erifi´ee, s’il existe une ex´ecution du programme telle que lar-propri´et´eΠsoit n´egativement d´etermin´ee. Ce que nous ´ecrivons comme suit :

∃σ∈Σ∩Exec(PΣ),∀σ∈Σ,¬Π(σ·σ)

⇒ verdict(σ,Exec(PΣ)⊆Π)=fail (4.3)

Preuve : La preuve de ce th´eor`eme est ´evidente. En effet, si le programme produit une s´equence d’ex´ecutionσqui ne peut ˆetre continu´ee en une s´equence d’ex´ecution finie ou infinie appartenant `a la r-propri´et´eΠ, alors la relationExec(PΣ)⊆Πest forc´ement non v´erifi´ee.

Testabilit´e de cette relation dans la classificationSafety-Progress. Pour chacune des classes suivantes, nous montrons `a quelles conditions les propri´et´es de cette classe sont testables. De plus, nous exhibons les s´equences de tests qu’il est possible d’essayer de jouer sur l’implantation pour d´eterminer un verdictfailpour la relationExec(PΣ)⊆Π.

– Pour lesr-propri´et´es de safety. SoitΠuner-propri´et´e de safety, alors il existeψ⊆Σtelle queΠ puisse s’exprimer(Af(ψ),A(ψ)). Cetter-propri´et´e est testable si l’ensembleψ est non vide. En effet, prenonsσ∈Σ∩ψ. Alors nous savons d’apr`es la Propri´et´e1(p.41) sur la fermeture desr-propri´et´es de safety que :

4.4 : Testabilit´e dans la classification Safety-Progress – toutes les continuations finies deσn’appartiennent pas `a Af(ψ); et

– toutes les continuations infinies de σn’appartiennent pas `aA(ψ).

Ainsi toutes les continuations finies et infinies deσn’appartiennent pas `a(Af(ψ),A(ψ)). La seule r-propri´et´e de safety qui n’est donc pas testable, sous ces conditions, est lar-propri´et´e toujours vraie : (Σω). Comme dit pr´ec´edemment, il est bien ´evident que tout programme dont le vocabulaire observable estΣsatisfait cette sp´ecification.

– Pour lesr-propri´et´es de guarantee. SoitΠuner-propri´et´e de guarantee, alors il existeψ⊆Σ telle que Πpuisse s’exprimer(Ef(ψ),E(ψ)). Cetter-propri´et´e est testable si l’ensemble{σ∈ψ|pref(σ)⊆ ψ∧cont(σ)⊆ψ}est non vide. En effet, soit σ une s´equence appartenant `a cet ensemble. Alors tous les pr´efixes de σ et toutes ses continuations n’appartiennent pas `a ψ. Par cons´equent, ces continuations ne peuvent ´egalement pas appartenir `aEf(ψ)ni `aE(ψ)ni `aΠ.

– Pour lesr-propri´et´es d’obligation. Soit Πuner-propri´et´e d’obligation, alorsΠpeut s’exprimer en forme normale conjonctive et en forme normale disjonctive (cf. Lemmeα, p.44).

– Lorsque Πest exprim´ee en forme normale conjonctive, alors il existe k ∈ N, t.q. Π s’exprime Tk

i=1(Sii)∪Gii)) o`u Sii) (resp. Gii)) est une r-propri´et´e de safety (resp. de guarantee) construite `a partir deψi (resp. deψi). Cette r-propri´et´e est testable si l’ensembleSk

i=1 ψi∩ {σ∈ ψi|cont(σ)⊆ψi}est non vide.

– Lorsque Π est exprim´ee en forme normale disjonctive, alors il existe k ∈ N, t.q. Π s’exprime Sk

i=1(Sii)∩Gii))o`u Si (resp.Gi) est uner-propri´et´e de safety (resp. de guarantee) construite

`

a partir deψi (resp. deψi). Cetter-propri´et´e est testable si l’ensembleTk

i=1ψi est non vide.

Pour montrer qu’une s´equence appartenant `a l’un des ensembles d´efinis a toutes ses continuations finies et infinies qui ne satisfont pas lar-propri´et´e, il suffit de r´ealiser une induction surket d’utiliser les raisonnements utilis´es pour lesr-propri´et´es de safety et guarantee.

– Pour les r-propri´et´es de response et persistence. Le raisonnement est similaire `a celui pour les r-propri´et´es de guarantee. SoitΠ uner-propri´et´e de response (resp. persistence), alors il existe ψ⊆Σtelle queΠpuisse s’exprimer(Rf(ψ),R(ψ))(resp.(Pf(ψ),P(ψ))). Cetter-propri´et´e est testable si l’ensemble{σ∈ψ|cont(σ)⊆ψ}est non vide. La diff´erence est ici pour que lar-propri´et´e soit n´egativement d´etermin´ee, elle peut avoir des s´equences qui ont certains pr´efixes dansψ.

Verdicts `a d´elivrer. Chacune des conditions de testabilit´e exprim´ee ci-dessus est de la forme f(ψ1, . . . , ψn),∅

o`u les ψi sont les propri´et´es finitaires utilis´ees pour construire la r-propri´et´e et f une composition d’op´erations ensemblistes sur les ψi. Par exemple, pour les r-propri´et´es exprim´ees en forme normale conjonctive, la condition de testabilit´e s’exprimeSk

i=1 ψi∩ {σ∈ψi|cont(σ)⊆ψi},∅

L’appartenance d’une s´equence `a f(ψ1, . . . , ψn) est ´evidemment d´ecidable (lesψi sont des langages r´eguliers). En cons´equence `a partir des propri´et´es finitairesψiutilis´ees pour d´efinir une r-propri´et´e il est possible de d´efinir un oracle de test permettant de d´elivrer un verdict pour les s´equences d’ex´ecution du programme :

Lorsqu’une s´equence d’ex´ecution σ ∈ Σ∩Exec(PΣ) appartient `a f(ψ1, . . . , ψn), l’oracle de test peut d´elivrer un verdict failpour cette relation. En effet, pour chaque classe der-propri´et´es, lorsqu’une s´equence finie appartient `a l’ensemble f(ψ1, . . . , ψn), alors lar-propri´et´e construite `a partir desψi

est d´etermin´ee n´egativement.

Inversement, lorsqu’une s´equence d’ex´ecutionσ∈Σ∩Exec(PΣ)n’appartient pas `a f(ψ1, . . . , ψn), l’oracle de test peut d´elivrer un verdictinconcpour cette relation.

Quand arrˆeter le test ? Le programme test´e produisant une s´equence d’ex´ecution σ∈Σ, la question qui peut se poser est celle du moment de l’arrˆet du test. Bien sur, une premi`ere r´eponse ´evidente est

“lorsque l’on a trouv´e un verdictfail”. Mais dans les autres cas, lorsque l’interaction avec le programme produit une suite d’´ev´enements qui jusque l`a donnent une ´evaluation inconclusive pour la relation, la question est enti`ere. Alors le test peut ˆetre arrˆet´e dans les deux cas suivants. Le premier est lorsque la r-propri´et´e est n´egativement d´etermin´ee par une s´equence d’ex´ecution produite par le programme ou qu’il n’existe pas de continuation de cette s´equence telle que lar-propri´et´e soit positivement d´etermin´ee.

Dans les autres cas, cela reste `a l’expertise du testeur de d´ecider lorsque le test doit ˆetre arrˆet´e.

Exec(PΣ)⊆Π Verdicts possibles Condition de testabilit´e Safety fail,inconc

(Af(ψ),A(ψ)) ψ,∅

Guarantee fail,inconc

(Ef(ψ),E(ψ)) {σ∈ψ|pref(σ)⊆ψ∧cont(σ)⊆ψ},∅ Obligation fail,inconc

Tk

i=1(Sii)∪Gii)) Sk

i=1 ψi∩ {σ∈ψi|cont(σ)⊆ψi},∅ Sk

i=1(Sii)∩Gii)) Tk

i=1ψi,∅ Response fail,inconc

(Rf(ψ),R(ψ)) {σ∈ψ|cont(σ)⊆ψ},∅ Persistence fail,inconc

(Pf(ψ),P(ψ)) {σ∈ψ|cont(σ)⊆ψ},∅ Table4.1 – R´esum´e des r´esultats de testabilit´e pour la relationExec(PΣ)⊆Π

Exemple 14 (Testabilit´e de certaines r-propri´et´es vis-`a-vis de Exec(PΣ)⊆Π) Nous pr´esentons la testabilit´e de troisr-propri´et´es.

Consid´erons un vocabulaire Σ = {a,b,c}. Le DFA repr´esent´e sur la Fig. 3.11 (p.53) reconnaˆıt la propri´et´e finitaireψ1=a· b+c·(c+a)·b+(introduite dans l’Exemple7). Lar-propri´et´e de safety construite `a partir de ψ1, reconnue par l’automate de Streett repr´esent´e sur la Fig. 3.12 (p.53), est testable vis-`a-vis de la relationExec(PΣ)⊆Π. En effet, elle satisfait la condition de testabilit´e : l’automate reconnaissantψ1poss`ede un ´etat non accepteur atteignable depuis l’´etat initial. Les s´equences int´eressantes

`a jouer pour obtenir un verdictfailsont celles menant `a l’´etatsinksur l’automate de Streett ou aux ´etats 3et 4sur le DFA.

Consid´erons le vocabulaire Σ ={a,b}, et la propri´et´e finitaireψ=(a·b)+d´efinie surΣ. La propri´et´eψ est reconnue par le DFA repr´esent´e sur la Fig.3.13(p.54).

– La r-propri´et´e de guarantee construite `a partir deψ, et repr´esent´ee par l’automate de Streett de la Fig.3.14(p.54), est testable. En effet elle satisfait la condition de testabilit´e pour les propri´et´es de guarantee : il y a des s´equences appartenant `aψtelles que tous les pr´efixes de ces s´equences et toutes leur continuations sont dans ψ´egalement. Les s´equences int´eressantes `a jouer pour obtenir un verdict failsont celles menant `a l’´etat 5.

– Lar-propri´et´e de response construite `a partir deψ, et repr´esent´ee par l’automate de Streett de la Fig.3.15(p.54), est testable. En effet, elle satisfait la condition de testabilit´e pour les propri´et´es de response : il y a des s´equences appartenant `aψ telles que tous les continuations de ces s´equences appartiennent `aψ´egalement. Les s´equences int´eressantes `a jouer pour obtenir un verdictfailsont celles menant `a l’´etat 5.

Les r´esultats de testabilit´e pour la relationExec(PΣ)⊆Πsont r´esum´es sur la Table4.1. Ainsi, nous avons ´etendu et pr´ecis´e certains r´esultats expos´es dans [NGH93]. Notamment, nous avons montr´e qu’il existait une r-propri´et´e de safety qui n’´etait pas testable. De plus, nous avons montr´e que certaines r-propri´et´es des autres classes pouvaient ˆetre testables ´egalement.

Testabilit´e vis-`a-vis de la relationExec(PΣ)= Π

Les raisonnements appliqu´es pour la testabilit´e vis-`a-vis de la relationExec(PΣ)⊆Πs’appliquent de la mˆeme mani`ere. La caract´erisation desr-propri´et´es testables est donc la mˆeme. En effet, lorsque l’on trouve une s´equenceσ∈Σ telle qu’il soit possible de trouver un verdictfailpourExec(PΣ)⊆Π, alors ce mˆeme verdict s’applique pourExec(PΣ)= Π,i.e.,Exec(PΣ)*Π⇒Exec(PΣ),Π.

Testabilit´e vis-`a-vis de la relationExec(PΣ)∩Π,∅

Nous ´etudions la testabilit´e desr-propri´et´es vis-`a-vis de la relationExec(PΣ)∩Π,∅.

Verdicts obtenables et condition suffisante. Les seuls verdicts qu’il est possible d’obtenir pour cette relation sont les verdictspasset inconc. Ce que nous expliquons ci-dessous.

4.4 : Testabilit´e dans la classification Safety-Progress Un verdict fail signifie queΠ∩Exec(PΣ)=∅. Il est impossible d’obtenir un tel verdict dans le cas g´en´eral9. Mˆeme si l’on trouve un ensemble de s´equences d’ex´ecution de PΣ qui n’appartiennent pas `aΠ, on ne pourra jamais ˆetre sˆur qu’il n’existe pas une autre ex´ecution du programme sous test exhibant une s´equence d’ex´ecution qui appartiendra `aΠ.

Un verdictpasssignifie queΠ∩Exec(PΣ),∅. Pour pouvoir produire un tel verdict, il faut pouvoir trouver une s´equence d’ex´ecutionσ∈Σ qui appartient `aΠ, et dont toutes les extensions appartiennent

´egalement `aΠ. Autrement dit, il faut exhiber une s´equence d’ex´ecution dePΣ telle queΠsoit d´etermin´ee positivement par cette s´equence. Ce qui peut s’exprimer assez simplement par le th´eor`eme suivant :

Th´eor`eme ι(Condition suffisante pour la relation Exec(PΣ)∩Π,∅ et un verdict pass) : La relationExec(PΣ)∩Π,∅est v´erifi´ee, s’il existe une ex´ecution du programme telle que lar-propri´et´e Πsoit positivement d´etermin´ee. Ce que nous ´ecrivons comme suit :

∃σ∈Σ,∀σ∈Σ,Π(σ·σ) ⇒ verdict(σ,Exec(PΣ)∩Π,∅)=pass (4.4) Preuve : La preuve de ce th´eor`eme est aussi simple que celle du th´eor`emeϑ. En effet, si nous pouvons trouver une s´equence d’ex´ecution du programme qui a toutes ses continuations qui satisfont lar-propri´et´e Π, alors cette s´equence montre que le programme et la propri´et´e ont au moins une s´equence en commun.

Testabilit´e de cette relation dans la classificationSafety-Progress. Nous ´etablissons maintenant pour chaque classe de propri´et´es les conditions sous lesquelles la partie gauche de l’implication est v´erifi´ee.

Ce qui, grˆace au th´eor`eme pr´ec´edemment exprim´e, permet d’´etablir qu’il existe une s´equence d’ex´ecution du programme nous donnant un verdictpasspour la relationExec(PΣ)∩Π,∅.

– Pour lesr-propri´et´es de safety. SoitΠuner-propri´et´e de safety, alors il existeψ⊆Σtelle queΠ puisse s’exprimer(Af(ψ),A(ψ)). Cetter-propri´et´e est testable si l’ensemble{σ∈ψ|cont(σ)⊆ψ}est non vide. Les s´equences appartenant `a cet ensemble sont dansψet toutes leurs extensions le sont

´egalement. D’apr`es la d´efinition desr-propri´et´es de safety, ces s´equences et toutes leur extensions appartiennent `a Π.

– Pour lesr-propri´et´es de guarantee. SoitΠuner-propri´et´e de guarantee, alors il existeψ⊆Σ telle queΠpuisse s’exprimer(Ef(ψ),E(ψ)). Cetter-propri´et´e est testable si l’ensembleψest non vide. En effet, soitσ∈ψ, alors d’apr`es la d´efinition desr-propri´et´es de guarantee, une s´equence appartenant

`

a ψa toutes ses extensions finies (resp. infinies) appartenant `aEf(ψ)(resp.E(ψ)).

– Pour lesr-propri´et´es d’obligation. Soit Πuner-propri´et´e d’obligation, alorsΠpeut s’exprimer en forme normale conjonctive ou en forme normale disjonctive (cf. Lemme αp.44).

– SiΠest exprim´ee en forme normale conjonctive, alors il existek∈N,t.q.Πs’exprimeTk

i=1(Sii)∪ Gii)) o`u Sii) (resp. Gii)) est une r-propri´et´e de safety (resp. de guarantee) construite `a partir de ψi(resp. deψi). Cetter-propri´et´e est testable si l’ensembleTk

i=1ψi est non vide.

– SiΠest exprim´ee en forme normale disjonctive, alors il existek∈N,t.q.Πs’exprimeSk

i=1(Sii)∩ Gii))o`uSii)(resp.Gii)) est uner-propri´et´e de safety (resp. de guarantee) construite `a partir deψi(resp. deψi). Cetter-propri´et´e est testable si l’ensembleSk

i=1({σ∈ψi|cont(σ)⊆ψi} ∩ψi) est non vide.

Pour montrer qu’une s´equence appartenant `a l’un des ensembles d´efinis a toutes ses continuations finies et infinies qui satisfont uner-propri´et´e dek−Obligation, il suffit de r´ealiser une induction sur ket d’utiliser les raisonnements utilis´es pour lesr-propri´et´es de safety et guarantee.

– Pour lesr-propri´et´es de response et persistence. Le raisonnement est similaire `a celui desr-propri´et´es de safety. Soit Π uner-propri´et´e de response (resp. persistence), alors il existe ψ⊆Σ telle que Πpuisse s’exprimer(Rf(ψ),R(ψ))(resp. (Pf(ψ),P(ψ))). Cetter-propri´et´e est testable si l’ensemble {σ ∈ ψ | cont(σ) ⊆ψ} est non vide. La diff´erence est la suivante : pour que lar-propri´et´e soit positivement d´etermin´ee, elle peut avoir des s´equences qui ont certains pr´efixes qui ne sont pas dans ψ.

Pour chaque classe de propri´et´es, sous les conditions exprim´ees, si l’on arrive `a jouer une s´equence de l’ensemble mis en ´evidence, il est possible d’´etablir le verdictpasspour la relationExec(PΣ)∩Π,∅. Verdicts `a d´elivrer. De mani`ere similaire `a la relation pr´ec´edente, les conditions de testabilit´e exprim´ees ci-dessus sont de la forme

f(ψ1, . . . , ψn),∅

9. Rappelons que nous pla¸cons dans le cas o`u ne poss´edons pas le code source du syst`eme test´e ni de sp´ecification.

Exec(PΣ)∩Π,∅ Verdicts obtenables Condition de testabilit´e Safety pass,inconc

(Af(ψ),A(ψ)) {σ∈ψ|pref(σ)⊆ψ∧cont(σ)⊆ψ}

Guarantee pass,inconc

(Ef(ψ),E(ψ)) ψ,∅

Obligation pass,inconc Tk

i=1(Sii)∪Gii)) Tk

i=1ψi ,∅ Sk

i=1(Sii)∩Gii)) Sk

i=1({σ∈ψi| ∀σ∈Σ, ψi(σ·σ)} ∩ψi),∅ Response pass,inconc

(Rf(ψ),R(ψ)) {σ∈ψ|cont(σ)⊆ψ},∅ Persistence pass,inconc

(Pf(ψ),P(ψ)) {σ∈ψ|cont(σ)⊆ψ},∅ Table4.2 – R´esum´e des r´esultats de testabilit´e pour la relationExec(PΣ)∩Π,∅

o`u les ψi sont les propri´et´es finitaires utilis´ees pour construire la r-propri´et´e. L’appartenance d’une s´equence `a f(ψ1, . . . , ψn)est ´evidemment d´ecidable. En cons´equence, `a partir des propri´et´es finitairesψi

utilis´ees pour d´efinir uner-propri´et´e, il est possible de d´efinir un oracle de test permettant de d´elivrer un verdict pour les s´equences d’ex´ecution du programme :

Lorsqu’une s´equence d’ex´ecution σ ∈ Σ∩Exec(PΣ) appartient `a f(ψ1, . . . , ψn), l’oracle de test peut d´elivrer un verdictpasspour cette relation.

Inversement, lorsqu’une s´equence d’ex´ecutionσ∈Σ∩Exec(PΣ)n’appartient pas `a f(ψ1, . . . , ψn), l’oracle de test peut d´elivrer un verdictinconcpour cette relation.

Quand arrˆeter le test ? De mani`ere similaire `a la relation pr´ec´edente, il est possible d’arrˆeter le test dans les cas suivants. D’abord lorsqu’un verdictpassest ´etabli. Et deuxi`emement, lorsque la r-propri´et´e est n´egativement d´etermin´ee par la s´equence d’ex´ecution produite par le programme ou lorsqu’il n’existe pas de continuation de cette s´equence d’ex´ecution telle que lar-propri´et´e soit n´egativement d´etermin´ee.

Exemple 15 (Testabilit´e de certaines propri´et´es vis-`a-vis de Exec(PΣ)∩Π,∅) Consid´erons le vocabulaireΣ ={a,b}, et la propri´et´e finitaireψ=(a·b)+d´efinie surΣ. La propri´et´eψest reconnue par le DFA repr´esent´e sur la Fig.3.13(p. 54).

La r-propri´et´e de guarantee construite `a partir de ψ, et repr´esent´ee par l’automate de Streett de la Fig.3.14(p.54), est testable. En effet elle satisfait la condition de testabilit´e pour les propri´et´es de guarantee :ψ,∅. Les s´equences int´eressantes `a jouer pour obtenir un verdictpasssont celles menant `a l’´etat 3.

Les r´esultats de testabilit´e pour la relationExec(PΣ)∩Π,∅ sont r´esum´es sur la Table4.2. Ainsi, nous avons ´etendu et pr´ecis´e certains r´esultats expos´es dans [NGH93]. Notamment, nous avons montr´e qu’il existait uner-propri´et´e de guarantee qui n’´etait pas testable. De plus, nous avons montr´e que certaines r-propri´et´es des autres classes pouvaient ˆetre testables ´egalement.

Testabilit´e vis-`a-vis de la relationΠ⊆Exec(PΣ)

Il n’est pas possible d’´etablir de verdict pour cette relation, ce que nous explicitons ci-dessous.

Pour ´etablir un verdictpasspour cette relation, il faudrait montrer que toutes les s´equences d’ex´ecution d´ecrites par la propri´et´e sont des s´equences du programme. Ce qui est impossible d`es que l’ensemble des s´equences d´ecrites par lar-propri´et´e est infini.

Pour ´etablir un verdictfail, il faudrait ´etablir qu’au moins une s´equence d´ecrite par la propri´et´e ne peut pas ˆetre jou´ee sur l’implantation. Mˆeme en trouvant une s´equence du programme qui ne satisfait pas la r-propri´et´e, cela ne permet pas d’affirmer que la relation n’est pas v´erifi´ee. En effet, une autre ex´ecution de l’implantation pourrait exhiber une telle s´equence.

No documento Yliès Falcone (páginas 93-97)