Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Ascenseur
Variables
étage : l’étage de la porte
Comportement
• Attendre que l’ascenseur soit à l’arrêt à l’étage de la porte
• Ouvrir la porte
• Attendre un certain laps de temps
• Fermer la porte
• Signaler à l’ascenseur qu’il peut redémarrer
Choisir la direction :
• Selon la direction courante, chercher un appel ou une destination
vers le haut ou le bas
• S’il n’y a aucune direction courante, commencer à chercher
vers le haut
• S’il existe un appel à l’étage courant, indiquer qu’il n’y a pas de
direction courante
• S’il existe un appel ou une destination vers la direction courante et
que l’ascenseur n’est pas à l’étage le plus haut (resp. le plus bas)
• Maintenir la direction courante
• Sinon, chercher pour un appel ou une destination dans la
direction opposée
• S’il existe un appel ou une destination dans la direction opposée et
que l’ascenseur n’est pas à l’étage le plus bas (resp. le plus haut)
• Changer la direction à la direction opposée
• Sinon, indiquer qu’il n’y a pas de direction courante
Comportement global
Exemple de simplification :
• Un seul ascenseur,
Entrée x=16
DT1={x=16} Calcul de la Résultat 4
racine carrée
DT2={x=1}
…/… Testeur
Spécifications de
OK !
la racine carrée Résultat attendu 4
Entrée x=1
DT1={x=16} Calcul de la Résultat 0
racine carrée
DT2={x=1}
…/… Testeur
Spécifications de
NON OK !
la racine carrée Résultat attendu 1
Entrée Calcul de la
DT1={x=16} racine carrée Résultat
DT2={x=1}
…/…
Résultat2=Entrée
Spécifications de
OK ou pas OK
la racine carrée
Fiabilité : Un critère est dit fiable s'il produit uniquement des jeux
de test réussis ou des jeux de test non réussis.
Complétude : Un critère est dit complet pour un programme s'il
produit uniquement des jeux de test qui suffisent à déterminer la
correction du programme (pour lequel tout programme passant
le jeu de test avec succès est correct)
Remarque : Tout critère valide et fiable est complet.
Exemples de classes :
3. Manuel / Automatique
Quelques exemples :
Boî
Boîte noire
Boî
Boîte blanche
Systè
Système
Module
Inté
Intégration
Unitaire
Niveau d’accessibilité
Fonctionnelle
Robustesse
Performance
Ergonomie
Sûreté
reté
Sécurité
curité
D’aprè
après J. Tretmans – Univ.
Univ. Nijmegen
Test de systèmes
• Techniques de test d'intégration lors de la phase d'assemblage
• Aspects méthodologiques
• Test système.
2: Le test fonctionnel
1.2: Le test fonctionnel
1.2.1: Le test de conformité de systèmes
réactifs
Types d’application
Typologie du test
Test d’interopérabilité
Types d’application
• Test de Conformité
– Une seule entité est testée.
Objectif : déterminer si une implémentation est
conforme à sa spécification.
• Test d’Interopérabilité
– Deux ou plusieurs entités sont testées.
Objectif : déterminer si ces implémentations peuvent interagir
ensemble comme prévu par la spécification.
Conformité Conformité
IP Spéc
Vendeur A Vendeur B
Routeur A Routeur B
Test d’Interopérabilité:
– But final dans le développement d’un produit de systèmes
communicants (exemple : routeur)
– Grand champ d’application : systèmes distribués (systèmes
réactifs, systèmes embarqués, systèmes à base de
composants, protocoles…)
Dérivation
Conforme à ?
Verdicts
Spécification OK
IST {Cas de Test}
Pas OK
Inconcluant
Exactitude de l’implémentation
PCO Verdicts
OK
IST Testeur
Pas OK
Inconcluant
IOLTS M=(QM,∑M,→M,q0M), où :
τ τ
!x !y !x
τ τ
M
1 1
!z !z
?a ?a
2 2
τ τ τ τ
3 4 3 4
!x !y !x !x !y !x
5 6 7 5 6 7
τ τ τ τ
S S
8 8
=> Nous considérons le IOLTS déterministe dét(S) qui a les mêmes traces que
S.
1
!z
?a
2 1
τ τ !z ?a
3 4 2,3,4
Déterminisation !x !y
!x !y !x
5 6 7 5,7,8 6
τ τ
S dét(S)
8
Mais la déterminisation ne préserve pas les silences !
⇒ Une solution consiste à expliciter les silences [TRE96].
Pour expliciter les silences, l’absence de comportement visible est modélisée par un
événement de sortie !δ (silence) :
• Automate de suspension Δ(S) = S + boucle de !δ sur chaque ‘état de silence’
• Traces Suspendues de S : STraces(S) = Traces(Δ(S)).
• dét(Δ(S))
(S caractérise les comportements visibles de S.
1
!z
?a !δ
2 1
τ τ !z
?a !δ
3 4 2,3,4
Déterminisation !x !y
!x !y !x
5 6 7 5,8,7 6
τ τ
!δ !δ !δ !δ !δ
8
Δ(S) dét(Δ(S))
!δ
CNAM ~ Test et Validation du Logiciel – Novembre 2007 82
Relation de Conformité Tretmans96
!z
?a ?b
!δ IUT1 ioco S
!x !y
!z
!z ?a
Δ(IUT1)
!δ !δ
!x !y !δ
!δ !z
!z
?a ?a
!δ
!δ !δ ¬(IUT2 ioco S) ¬(IUT3 ioco S)
!x !y !x !y
Dét(Δ(S))
!z !δ !δ
Δ(IUT2) !δ Δ(IUT3)
!δ !δ
CNAM ~ Test et Validation du Logiciel – Novembre 2007 84
Relation de Conformité
?a
τ IUT3 ioconf S ?
!δ !x !y OUI
!z ?a
τ
!x !y IUT3
!δ
!z
?a
!δ
!δ !δ τ
IUT3 ioco S ?
Det(Δ(S)) !x !y
NON
out(Δ(IUT3) after ?a) = {!x,!y,!δ} !δ
τ
out(Δ(S) after ?a) = {!x,!y} !δ
Δ(IUT3 )
CNAM ~ Test et Validation du Logiciel – Novembre 2007 85
Exercice
I S
?jeton ?jeton
?jeton
!café !café
?jeton
I ioco S ?
I S
?jeton ?jeton
?jeton
!café !café
?jeton ?jeton
I ioco S ?
• Un testeur :
• exécute un cas de test,
• observe les réactions/comportements de l’IST,
• les compare avec les comportements attendus du cas de test et
• déduit le verdict correspondant.
!δ ?otherwise
?δ
!z Fail
?a
!a
!x !y
?otherwise
?x
?y ?δ
Inc Fail Fail
!δ !δ ?δ ?otherwise
?z
Det(Δ(S))
Inc Pass Fail TC
CNAM ~ Test et Validation du Logiciel – Novembre 2007 90
Cas de Test : Définition
• QPass ⊆ QTC and QFail ⊆ QTC and QInconc ⊆ QTC (verdict states).
?δ ?otherwise
Fail
!a
?otherwise
?x
?y ?δ
Inc Fail Fail
?δ ?z ?otherwise
L’exécution d’un cas de test TC avec une implémentation IST est modélisée par
la composition parallèle TC//Δ(IUT) avec une synchronisation sur les actions
visibles communes (l’événement ?a synchronisé avec !a).
≡ ?!δ
Exemple : (TC1 may pass IUT1) mais ¬(TC1 may fail IUT1) 3,2
?!x
?!y
4,3 Inc,4
?! δ ?!z
Inc,3 Pass,1
TC1 // Δ(IUT1)
CNAM ~ Test et Validation du Logiciel – Novembre 2007 95
Propriétés attendues des cas de test
Formellement, une suite de test TS est non biaisée pour S et ioco ssi :
Problème:
Etant donnée une spécification S, une relation de conformité R
(comme ioco), et une propriété P, comment générer des cas de test
pour une implémentation de S vérifiant P.
⇒ TS=GenTest(S,R,P).
!δ ?δ ?otherwise
*
2 Fail
!z ?a !x
!a
*
3
!x !y ?otherwise
!z ?x
?y ?δ
Accept 4 Inc Fail Fail
?δ ?z ?otherwise
!δ !δ
Det(Δ(S)) OT Inc Pass Fail TC
1
!δ ?δ ?otherwise
2 Fail
!z ?a
!a
!x !y 3
?otherwise
?x
?y ?δ
4 Inc Fail Fail
!δ !δ ?δ ?z ?otherwise
Dét(Δ(S))
Inc Pass Fail TC
1 !δ
1
?δ ?otherwise
!z
?a ?b
2 Fail
2 5
!a !x !y
!z
3
?otherwise
?x 3 4 6
?y ?δ
4 Inc Fail Fail !δ !δ
?δ ?z ?otherwise
1
?otherwise !δ
?δ !z
2 Fail ?a
!a
!x !y
3
?otherwise
?x !z !δ
?y ?δ
4 Inc Fail Fail !δ
!δ
?δ ?z ?otherwise