Techniques de test
fonctionnel
Test Fonctionnel: Définition
• Dans cette technique de test, on ne s'intéresse pas à l'aspect
implémentation du code mais uniquement à son aspect extérieur.
C'est-à-dire qu'on va tester le programme à travers ses interfaces et la
sélection des jeux de test va s'effectuer à partir des documents de
spécification et de la conception. On s'attache à vérifier le
comportement réel du logiciel par rapport à son comportement
spécifié.
Test Fonctionnel: Techniques
• Parmi les techniques du test fonctionnel on retrouve les suivantes :
• Analyse partitionnelle
• Test aux limites
• Graphes cause-effet
Analyse partitionnelle
• La méthode de l'analyse partitionnelle fondée sur les spécifications d'un programme
établit des classes équivalentes (partition). Les données de test se baseront sur le choix
d'un représentant quelconque de chaque classe. De manière générale, pour construire
les différentes classes d'équivalence, nous utilisons les spécifications pour en extraire
deux types de matières premières: Les domaines de valeurs d'entrée (par exemple : telle
variable une date, telle autre est une personne, un fichier, etc.) et l'ensemble de
fonctions qui devront être réalisées par le programme en question (par exemple : on
ouvre un fichier, on calcule une date, on estime une moyenne, etc.). On choisit un
représentant de chaque classe issue du partage des domaines des définitions des
données et/ou un représentant de chaque classe concernée par chacune des fonctions
réalisées. On dit alors que les classes crées sont fonctionnellement équivalentes.
L’ensemble des classes doit constituer un recouvrement de l’espace total des valeurs.
Analyse partitionnelle
• Supposons que la donnée à l’entrée est un entier naturel qui doit contenir
cinq chiffres, donc un nombre compris entre 10,000 et 99,999.
• Le partitionnement en classes d’équivalence identifierait alors les trois
classes suivantes (trois conditions possibles pour l’entrée):
a. N < 10000
b. 10000 <= N <= 99999
c. N >= 100000
• On va alors choisir des cas de test représentatif de chaque classe, par
exemple, au milieu et aux frontières (cas limites) de chacune des classes:
a. 0, 5000, 9999
b. 10000, 50000, 99999
c. 100000, 100001, 200000
Test aux limites
• Le test aux limites est considéré comme l'une des méthodes
fonctionnelles les plus efficaces. En effet, la plupart des programmeurs
ont probablement constaté que, souvent, les erreurs sont dues au fait
qu’ils n’avaient pas prévu le comportement d'un programme pour des
valeurs limites (valeurs très élevées, valeurs nulles d'un indice, valeurs
négatives). Les tests aux limites couvrent une large gamme d’erreurs, car
les limites forment l’hôte naturel préféré de la plupart des défauts. Leur
principal défaut est surtout la difficulté (et peut être l’impossibilité) de
formalisation de la notion de limite et de marginalité, ce qui explique
sans doute leur caractère souvent intuitif et heuristique.
Test aux limites
• Valeurs numériques définies par un intervalle
[a..b]: on teste avec a-1, a, a+1, b-1, b, b+1
• Chaînes de caractères (avec au plus n caractères): chaîne
vide, chaîne avec un seul caractère, chaîne avec n-
1, n, n+1 (?) caractères
• Tableaux: tableau vide, avec un seul élément, avec
n-1 ou n éléments
• Fichiers: fichier vide, avec une seule ligne, etc.
Exemple
Day Sunday - Thursday Friday - Saturday
Guest
status
Visitor Member Student Visitor Member Student
Age
(years)
Admission fee
[0, 16) 25 10 20 35 10 30
[16, 60) 50 25 45 70 25 65
[60, 120] 35 15 30 50 15 45
Exemple
Field Valid
equivalent
classes
Valid
representative
values
Invalid
equivalent
classes
Invalid
representative
values
Day Sun - Thu Mon, Sun, Thu
Fri - Sat Fri, Sat
Guest
status
Visitor Visitor
Member Member
Student Student
Age [0, 16) 2, 0, 15 Non-numeric
value
14@a
[16, 60) 34, 16, 59 Age < 0 or
Age > 120
-1, 121
[60, 120] 100, 60, 120
Exemple
Test case ID Day Guest status Age Result
1 Mon Visitor 2 25
2 Fri Member 34 25
3 Mon Student 100 30
4 Sun Visitor 0 25
5 Sat Member 16 10
6 Thu Student 60 30
7 Sun Member 15 10
8 Sat Student 120 45
9 Thu Visitor 59 50
10 Mon Member 14@a Invalid age
11 Fri Student -1 Invalid age
12 Fri Visitor 121 Invalid age
valid
invalid
valid
(boundary)
Graphes cause-effet
• Cette méthode consiste à élaborer un réseau qui relie les effets d'un programme (sorties)
aux causes (entrées) qui sont à leur origine. Ce réseau est constitué par des nœuds et des
segments qui en symbolisent les liaisons logiques. La construction du réseau se base sur
quatre type de symboles usuels exprimant les interdépendances des effets aux causes
(identité, négation, OU logique et ET logique). La méthode de test par graphes cause-
effet peut s’avérer une méthode de test fonctionnel très complète et précise. Le fait
qu’elle utilise un langage de représentation très formalisé rend possible l’automatisation
de certaines de ses phases. Cependant, bien que l'utilisation attentive de cette méthode
permette la production de jeux de test efficaces, son application pratique est en générale
très difficile. En particulier, les graphes peuvent devenir très complexes quand une
fonction fait intervenir un grand nombre de causes.
Les étapes
• 4 étapes sont nécessaires
• Étape - 1: Pour un module donné, identifier les conditions
d'entrée (causes) et les actions en sortie (effets).
• Étape - 2: Développer le graphe cause-effet.
• Étape - 3: Transformer le graphe cause-effet en une table de
décision.
• Étape - 4: Convertir la table de décision en des cas de test.
Chaque colonne de la table de décision représente un cas test.
Symboles de bases
Significations
• Considérons que chaque nœud peut avoir comme valeur 0 ou 1, où 0
représente «état absent » et 1 représente « État présent ». Pour la
fonction identité si c1 est égal à 1, e1 est égal à 1 ou, si c1 est égal à 0
alors e1 est égal à 0.
La fonction NON: que si C1 est égal à 1, e1 est égal à 0 et vice-versa. De
même, les fonctions OU: si C1 ou C2 ou C3 sont égaux à 1, e1 est égal à
1, sinon e1 est égal à 0. La fonction ET : si C1 et C2 sont égaux à 1, e1 est
égal à 1; sinon e1 est égal à 0. Les fonctions ET et OU sont autorisées à
avoir un nombre quelconque d'entrées.
• Soit la spécification suivante :
• Si le client est un nouveau client, offrir 20% de réduction
sur une prochaine commande
• Si le client est un client régulier , offrir une livraison
gratuite
Type de client Nouveau Régulier
20% de remise X
Livraison gratuite X
Conditions
Actions
• CLIENT
• Si le client est un nouveau client, offrir 20% de réduction
sur une prochaine commande
• Si le client est un client régulier, offrir une livraison
gratuite
• NIVEAU DE RISQUE DES MARCHANDISES
• Si le niveau de risque des marchandises est élevé, alors
• Si le client est un nouveau client, vérifier son dossier de crédit
• Si le client est un client régulier, alors:
• Si les commandes dépassent au total> 500 € HT, faire une amende
• Sinon vérifier son dossier de crédit
Type de client Nouveau client Client régulier
Niveau de
risque des
marchandises
Risque élevé Risque bas Risque élevé Risque bas
Commandes
Antérieures
>500 <500 >500 <500 >500 <500 >500 <500
20% de
réduction
X X X X
Livraison
gratuite
X X X X
Vérifier dossier
de crédit
X X X
Faire une
amende
X
Type de client T T T T F F F F
Niveau de
risque des
marchandises
T T F F T T F F
Commandes
Antérieures
- - - - T F - -
20% de
réduction
X X X X
Livraison
gratuite
X X X X
Vérifier dossier
de crédit
X X X
Faire une
amende
X
Type de client T T T T F F F F
Niveau de
risque des
marchandises
T T F F T T F F
Commandes
Antérieures
- - - - T F - -
20% de
réduction
X X
Livraison
gratuite
X X X
Vérifier dossier
de crédit
X X
Faire une
amende
X
Type de client T T F F F
Niveau de
risque des
marchandises
T F T T F
Commandes
Antérieures
- - T F -
20% de
réduction
X X
Livraison
gratuite
X X X
Vérifier dossier
de crédit
X X
Faire une
amende
X
Exemple
• Considérons une application e-commerce. Dans l’interface utilisateur,
nous avons besoin de valider les informations de paiement, en
particulier le type de carte de crédit (CB, Visa, MasterCard), numéro
de carte, le code de la sécurité, le mois d'expiration, l’année
d'expiration et le nom du propriétaire. Nous souhaitons utiliser la
technique des graphes cause-effet pour tester la capacité de
l'application de vérifier les informations de paiement avant de les
envoyer au serveur.
Exemple
Plusieurs questions peuvent être posées
•Le nom de la personne désignée comme propriétaire
de la carte de crédit ainsi que les autres informations
sont-elles correctes?
•La carte est-elle encore active ou est ce qu’elle a été
annulé?
•Le solde du compte permet-il de terminer la
transaction?
•Est-ce que la transaction est émise à partir d'un
endroit normal ou un endroit suspect?
Exemple
Selon la situation plusieurs actions peuvent être entreprises
•Doit-on approuver la transaction?
•Faut-il appeler le titulaire de la carte (par exemple, pour l’avertir au
sujet d'un achat)?
•Faut-il appeler le fournisseur (par exemple, pour lui demander de saisir
la carte annulée)?
Etape 1: identification des causes et des effets
Les causes
C1: Le Compte est réel ?
C2: Le compte est actif?
C3: Solde suffisant ?
C4: Le lieu est habituel ?
Les effet
e1: Approuver ?
e2: Appeler le propriétaire de la carte ?
e3: Appeler le vendeur ?
Etape 2: Construire le graphe cause effet
Le compte
est réel
Le compte
est actif
Solde
suffisant
Le lieu est
habituel
Approuver
Appeler
proprio.
Appeler
vendeur
Et
Ou
Ou
Et
Étape- 3: Transformation en une table de
décision.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Real
account
T T T T T T T T F F F F F F F F
Active
account
T T T T F F F F T T T T F F F F
Within limit T T F F T T F F T T F F T T F F
Location
Okay
T F T F T F T F T F T F T F T F
Approve T F F F F F F F F F F F F F F F
Call
cardholder
F T T T F T T T F F F F F F F F
Call vendor F F F F T T T T T T T T T T T T
Exercice
• 16 cas de test sont nécessaires.
• Peut on réduire le nombre de cas de test ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Real
account
T T T T T T T T F F F F F F F F
Active
account
T T T T F F F F T T T T F F F F
Within limit T T F F T T F F T T F F T T F F
Location
Okay
T F T F T F T F T F T F T F T F
Approve T F F F F F F F F F F F F F F F
Call
cardholder
F T T T F T T T F F F F F F F F
Call vendor F F F F T T T T T T T T T T T T
Dans un système de sécurité sociale, aucun frais n’est remboursé au patient jusqu'à ce qu’un seuil soit
atteint. Si c’est le cas, 50% des frais médicaux dépensés sont remboursés pour les soins dans un cabinet
médical et 80% des frais médicaux dépensés sont remboursés pour des à l'hôpital.
a. Dresser la table de décision
Aucun frais n’est remboursé au patient jusqu'à ce qu’un seuil soit atteint. Si c’est le cas, 50% des frais
médicaux dépensés sont remboursés pour les soins dans un cabinet médical, 80% des frais médicaux
dépensés sont remboursés pour des à l'hôpital et 70% pour les analyses médicales.
c. Dresser la table de décision
Modifions notre exemple : Dans un système de sécurité sociale, aucun frais n’est remboursé au patient
jusqu'à ce qu’un seuil soit atteint. Si c’est le cas, le pourcentage à rembourser dépendra de si oui ou non le
médecin ou à l'hôpital est un « fournisseur privilégié ». Si c’est le cas, les soins dans un cabinet médical
sont remboursés à 65% et les soins à l'hôpital sont remboursés à 95%. Pour les autres types de
fournisseurs, le remboursement est de 50% pour les soins dans un cabinet et de 80% les visites à l'hôpital.
b. Dresser la nouvelle table de décision
Dernière modification : Aucun frais n’est remboursé au patient jusqu'à ce ce qu’un seuil soit atteint. Si
c’est le cas, les visites à l'hôpital sont remboursées à 80% et les analyses médicales sont remboursés à
70%. Les visites au cabinet sont remboursées à 90% pour les « médecins participants » et 50% pour les
autres. La question de savoir si le médecin est un médecin de participants est applicable uniquement pour
les visites dans un cabinet ; elle n’est pas applicable pour les visites à l'hôpital et les analyses médicales.
d. Dresser la dernière table de décision
Exemple
Etape 1: identification des causes et des effets
Les causes
C1: le côté "x" est inférieur à la somme de "y " et "z"
C2: le côté "y" est inférieur à la somme de "x" et "z"
C3: le côté "z" est inférieure à la somme de "x" et "y"
C4: le côté "x" est égal à "y"
C5: le côté "x" est égal à "z"
C6: le côté "y" est égal à "z"
Etape 1: identification des causes et des effets
Les effets
• e1 : N’est pas un triangle
• e2 : le triangle est Scalène
• e3 : le triangle est Isocèles.
• e4 : le triangle est Equilateral
• e5 : Impossible
Conditions R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11
C1: x<y+z? 0 1 1 1 1 1 1 1 1 1 1
C2: y<x+z? - 0 1 1 1 1 1 1 1 1 1
C3:z<x+y? - - 0 1 1 1 1 1 1 1 1
C4:x=y? - - - 1 1 1 1 0 0 0 0
C5:x=z? - - - 1 1 0 0 1 1 0 0
C6:y=z? - - - 1 0 1 0 1 0 1 0
E1: not a triangle 1 1 1
E2:Scalene 1
E3:Isoceles 1 1 1
E4:Equilateral 1
E5:Impossible 1 1 1
i>i+k T F F F F F F F F
i=j - T T T T F F F F
j=k - T T F F T T F F
k=i - T F T F T F T F
N’est pas un
triangle
X
Scalène X
Isocèles X X X
Equilatéral X
Impossible X X X
• On souhaite implanter une commande cp (copy) simplifiée sous Unix.
• Cette commande dispose d'un premier paramètre, -r, optionnel, permettant la copie de
répertoire.
• Le paramètre suivant doit être un nom de fichier ou de répertoire. Dans le deuxième cas, le
paramètre « -r » est obligatoire. Sinon, un message d'erreur «Copie de répertoire impossible »
doit être affiché.
• Le deuxième paramètre peut être un nom ne correspondant à aucun fichier ou bien
correspondant à un répertoire inconnu. Dans le premier cas, le fichier/répertoire à copier est
copié avec le nouveau nom spécifié. Dans le deuxième cas, le nom est gardé mais la copie a lieu
dans le répertoire spécifié.
• Si le fichier source n'existe pas, le message « fichier inexistant » est produit.
• Si la destination n'est pas un répertoire, le message « fichier existant » est renvoyé.
• Si source=destination, erreur « Copie impossible »
C1
C2
C3
C4
C5
C6
E1
E2
E3
E4
E5
E6
• Causes
• C1 : « -r » est présent
• C2 : source existe
• C3 : source est un répertoire
• C4 : destination existe
• C5 : destination est un répertoire
• C6 : source = destination
• Effets
• E1 : Erreur « Copie de répertoire impossible »
• E2 : Erreur « Fichier inexistant »
• E3 : Erreur « Fichier existant »
• E4 : Copie avec le même nom
• E5 : Copie avec un nouveau nom
• E6 : Erreur « Copie impossible »
C1
C2
C3
C4
C5
C6
E1
E2
E3
E4
E5
E6


I1

I2

I4


Le paramètre suivant doit être un nom de fichier ou de
répertoire. Dans le deuxième cas, le paramètre « -r » est
obligatoire. Sinon, un message d'erreur «Copie de répertoire
impossible » doit être affiché
Si le fichier source n'existe pas, le message « fichier
inexistant » est produit.
Si la destination n'est pas un répertoire, le message «
fichier existant » est renvoyé.
Si source=destination, erreur « Copie impossible »
Le deuxième paramètre peut être un nom ne
correspondant à aucun fichier ou bien correspondant à un
répertoire inconnu. Dans le premier cas, le
fichier/répertoire à copier est copié avec le nouveau nom
spécifié. Dans le deuxième cas, le nom est gardé mais la
copie a lieu dans le répertoire spécifié.

« -r » est
présent
source existe
source est un répertoire
destination existe
destination est un répertoire
source = destination
« Copie de répertoire impossible »
« Fichier inexistant »
« Fichier existant »
Copie avec le même nom
Copie avec un nouveau nom
« Copie impossible »
0-7 8-15 16-23 24-31 32-39 40-47 48-55 56-63
20
01010101
21
00110011
22
00001111
23
0 0 0 0 0 0 0 0
24
0 0 0 0 0 0 0 0
25
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14
C1
0
C2
0
C3
1
C4
0 0 1 1 1 1 1 1 1
C5
1 1 0 0 0 0 0 0 0
C6
1
E1
1
E2
1
E3
1 1 1 1 1 1 1
E4
1 1
E5
1 1
E6
1
« -r » est présent
source existe
source est un répertoire
destination existe
destination est un répertoire
source = destination
Copie de répertoire impossible

presentation des Tests fonctionnels.pptx

  • 1.
  • 2.
    Test Fonctionnel: Définition •Dans cette technique de test, on ne s'intéresse pas à l'aspect implémentation du code mais uniquement à son aspect extérieur. C'est-à-dire qu'on va tester le programme à travers ses interfaces et la sélection des jeux de test va s'effectuer à partir des documents de spécification et de la conception. On s'attache à vérifier le comportement réel du logiciel par rapport à son comportement spécifié.
  • 3.
    Test Fonctionnel: Techniques •Parmi les techniques du test fonctionnel on retrouve les suivantes : • Analyse partitionnelle • Test aux limites • Graphes cause-effet
  • 4.
    Analyse partitionnelle • Laméthode de l'analyse partitionnelle fondée sur les spécifications d'un programme établit des classes équivalentes (partition). Les données de test se baseront sur le choix d'un représentant quelconque de chaque classe. De manière générale, pour construire les différentes classes d'équivalence, nous utilisons les spécifications pour en extraire deux types de matières premières: Les domaines de valeurs d'entrée (par exemple : telle variable une date, telle autre est une personne, un fichier, etc.) et l'ensemble de fonctions qui devront être réalisées par le programme en question (par exemple : on ouvre un fichier, on calcule une date, on estime une moyenne, etc.). On choisit un représentant de chaque classe issue du partage des domaines des définitions des données et/ou un représentant de chaque classe concernée par chacune des fonctions réalisées. On dit alors que les classes crées sont fonctionnellement équivalentes. L’ensemble des classes doit constituer un recouvrement de l’espace total des valeurs.
  • 5.
    Analyse partitionnelle • Supposonsque la donnée à l’entrée est un entier naturel qui doit contenir cinq chiffres, donc un nombre compris entre 10,000 et 99,999. • Le partitionnement en classes d’équivalence identifierait alors les trois classes suivantes (trois conditions possibles pour l’entrée): a. N < 10000 b. 10000 <= N <= 99999 c. N >= 100000 • On va alors choisir des cas de test représentatif de chaque classe, par exemple, au milieu et aux frontières (cas limites) de chacune des classes: a. 0, 5000, 9999 b. 10000, 50000, 99999 c. 100000, 100001, 200000
  • 6.
    Test aux limites •Le test aux limites est considéré comme l'une des méthodes fonctionnelles les plus efficaces. En effet, la plupart des programmeurs ont probablement constaté que, souvent, les erreurs sont dues au fait qu’ils n’avaient pas prévu le comportement d'un programme pour des valeurs limites (valeurs très élevées, valeurs nulles d'un indice, valeurs négatives). Les tests aux limites couvrent une large gamme d’erreurs, car les limites forment l’hôte naturel préféré de la plupart des défauts. Leur principal défaut est surtout la difficulté (et peut être l’impossibilité) de formalisation de la notion de limite et de marginalité, ce qui explique sans doute leur caractère souvent intuitif et heuristique.
  • 7.
    Test aux limites •Valeurs numériques définies par un intervalle [a..b]: on teste avec a-1, a, a+1, b-1, b, b+1 • Chaînes de caractères (avec au plus n caractères): chaîne vide, chaîne avec un seul caractère, chaîne avec n- 1, n, n+1 (?) caractères • Tableaux: tableau vide, avec un seul élément, avec n-1 ou n éléments • Fichiers: fichier vide, avec une seule ligne, etc.
  • 8.
    Exemple Day Sunday -Thursday Friday - Saturday Guest status Visitor Member Student Visitor Member Student Age (years) Admission fee [0, 16) 25 10 20 35 10 30 [16, 60) 50 25 45 70 25 65 [60, 120] 35 15 30 50 15 45
  • 9.
    Exemple Field Valid equivalent classes Valid representative values Invalid equivalent classes Invalid representative values Day Sun- Thu Mon, Sun, Thu Fri - Sat Fri, Sat Guest status Visitor Visitor Member Member Student Student Age [0, 16) 2, 0, 15 Non-numeric value 14@a [16, 60) 34, 16, 59 Age < 0 or Age > 120 -1, 121 [60, 120] 100, 60, 120
  • 10.
    Exemple Test case IDDay Guest status Age Result 1 Mon Visitor 2 25 2 Fri Member 34 25 3 Mon Student 100 30 4 Sun Visitor 0 25 5 Sat Member 16 10 6 Thu Student 60 30 7 Sun Member 15 10 8 Sat Student 120 45 9 Thu Visitor 59 50 10 Mon Member 14@a Invalid age 11 Fri Student -1 Invalid age 12 Fri Visitor 121 Invalid age valid invalid valid (boundary)
  • 11.
    Graphes cause-effet • Cetteméthode consiste à élaborer un réseau qui relie les effets d'un programme (sorties) aux causes (entrées) qui sont à leur origine. Ce réseau est constitué par des nœuds et des segments qui en symbolisent les liaisons logiques. La construction du réseau se base sur quatre type de symboles usuels exprimant les interdépendances des effets aux causes (identité, négation, OU logique et ET logique). La méthode de test par graphes cause- effet peut s’avérer une méthode de test fonctionnel très complète et précise. Le fait qu’elle utilise un langage de représentation très formalisé rend possible l’automatisation de certaines de ses phases. Cependant, bien que l'utilisation attentive de cette méthode permette la production de jeux de test efficaces, son application pratique est en générale très difficile. En particulier, les graphes peuvent devenir très complexes quand une fonction fait intervenir un grand nombre de causes.
  • 12.
    Les étapes • 4étapes sont nécessaires • Étape - 1: Pour un module donné, identifier les conditions d'entrée (causes) et les actions en sortie (effets). • Étape - 2: Développer le graphe cause-effet. • Étape - 3: Transformer le graphe cause-effet en une table de décision. • Étape - 4: Convertir la table de décision en des cas de test. Chaque colonne de la table de décision représente un cas test.
  • 13.
  • 14.
    Significations • Considérons quechaque nœud peut avoir comme valeur 0 ou 1, où 0 représente «état absent » et 1 représente « État présent ». Pour la fonction identité si c1 est égal à 1, e1 est égal à 1 ou, si c1 est égal à 0 alors e1 est égal à 0. La fonction NON: que si C1 est égal à 1, e1 est égal à 0 et vice-versa. De même, les fonctions OU: si C1 ou C2 ou C3 sont égaux à 1, e1 est égal à 1, sinon e1 est égal à 0. La fonction ET : si C1 et C2 sont égaux à 1, e1 est égal à 1; sinon e1 est égal à 0. Les fonctions ET et OU sont autorisées à avoir un nombre quelconque d'entrées.
  • 15.
    • Soit laspécification suivante : • Si le client est un nouveau client, offrir 20% de réduction sur une prochaine commande • Si le client est un client régulier , offrir une livraison gratuite Type de client Nouveau Régulier 20% de remise X Livraison gratuite X Conditions Actions
  • 16.
    • CLIENT • Sile client est un nouveau client, offrir 20% de réduction sur une prochaine commande • Si le client est un client régulier, offrir une livraison gratuite • NIVEAU DE RISQUE DES MARCHANDISES • Si le niveau de risque des marchandises est élevé, alors • Si le client est un nouveau client, vérifier son dossier de crédit • Si le client est un client régulier, alors: • Si les commandes dépassent au total> 500 € HT, faire une amende • Sinon vérifier son dossier de crédit
  • 17.
    Type de clientNouveau client Client régulier Niveau de risque des marchandises Risque élevé Risque bas Risque élevé Risque bas Commandes Antérieures >500 <500 >500 <500 >500 <500 >500 <500 20% de réduction X X X X Livraison gratuite X X X X Vérifier dossier de crédit X X X Faire une amende X
  • 18.
    Type de clientT T T T F F F F Niveau de risque des marchandises T T F F T T F F Commandes Antérieures - - - - T F - - 20% de réduction X X X X Livraison gratuite X X X X Vérifier dossier de crédit X X X Faire une amende X
  • 19.
    Type de clientT T T T F F F F Niveau de risque des marchandises T T F F T T F F Commandes Antérieures - - - - T F - - 20% de réduction X X Livraison gratuite X X X Vérifier dossier de crédit X X Faire une amende X
  • 20.
    Type de clientT T F F F Niveau de risque des marchandises T F T T F Commandes Antérieures - - T F - 20% de réduction X X Livraison gratuite X X X Vérifier dossier de crédit X X Faire une amende X
  • 21.
    Exemple • Considérons uneapplication e-commerce. Dans l’interface utilisateur, nous avons besoin de valider les informations de paiement, en particulier le type de carte de crédit (CB, Visa, MasterCard), numéro de carte, le code de la sécurité, le mois d'expiration, l’année d'expiration et le nom du propriétaire. Nous souhaitons utiliser la technique des graphes cause-effet pour tester la capacité de l'application de vérifier les informations de paiement avant de les envoyer au serveur.
  • 22.
    Exemple Plusieurs questions peuventêtre posées •Le nom de la personne désignée comme propriétaire de la carte de crédit ainsi que les autres informations sont-elles correctes? •La carte est-elle encore active ou est ce qu’elle a été annulé? •Le solde du compte permet-il de terminer la transaction? •Est-ce que la transaction est émise à partir d'un endroit normal ou un endroit suspect?
  • 23.
    Exemple Selon la situationplusieurs actions peuvent être entreprises •Doit-on approuver la transaction? •Faut-il appeler le titulaire de la carte (par exemple, pour l’avertir au sujet d'un achat)? •Faut-il appeler le fournisseur (par exemple, pour lui demander de saisir la carte annulée)?
  • 24.
    Etape 1: identificationdes causes et des effets Les causes C1: Le Compte est réel ? C2: Le compte est actif? C3: Solde suffisant ? C4: Le lieu est habituel ? Les effet e1: Approuver ? e2: Appeler le propriétaire de la carte ? e3: Appeler le vendeur ?
  • 25.
    Etape 2: Construirele graphe cause effet Le compte est réel Le compte est actif Solde suffisant Le lieu est habituel Approuver Appeler proprio. Appeler vendeur Et Ou Ou Et
  • 26.
    Étape- 3: Transformationen une table de décision. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Real account T T T T T T T T F F F F F F F F Active account T T T T F F F F T T T T F F F F Within limit T T F F T T F F T T F F T T F F Location Okay T F T F T F T F T F T F T F T F Approve T F F F F F F F F F F F F F F F Call cardholder F T T T F T T T F F F F F F F F Call vendor F F F F T T T T T T T T T T T T
  • 27.
    Exercice • 16 casde test sont nécessaires. • Peut on réduire le nombre de cas de test ?
  • 29.
    1 2 34 5 6 7 8 9 10 11 12 13 14 15 16 Real account T T T T T T T T F F F F F F F F Active account T T T T F F F F T T T T F F F F Within limit T T F F T T F F T T F F T T F F Location Okay T F T F T F T F T F T F T F T F Approve T F F F F F F F F F F F F F F F Call cardholder F T T T F T T T F F F F F F F F Call vendor F F F F T T T T T T T T T T T T
  • 31.
    Dans un systèmede sécurité sociale, aucun frais n’est remboursé au patient jusqu'à ce qu’un seuil soit atteint. Si c’est le cas, 50% des frais médicaux dépensés sont remboursés pour les soins dans un cabinet médical et 80% des frais médicaux dépensés sont remboursés pour des à l'hôpital. a. Dresser la table de décision Aucun frais n’est remboursé au patient jusqu'à ce qu’un seuil soit atteint. Si c’est le cas, 50% des frais médicaux dépensés sont remboursés pour les soins dans un cabinet médical, 80% des frais médicaux dépensés sont remboursés pour des à l'hôpital et 70% pour les analyses médicales. c. Dresser la table de décision Modifions notre exemple : Dans un système de sécurité sociale, aucun frais n’est remboursé au patient jusqu'à ce qu’un seuil soit atteint. Si c’est le cas, le pourcentage à rembourser dépendra de si oui ou non le médecin ou à l'hôpital est un « fournisseur privilégié ». Si c’est le cas, les soins dans un cabinet médical sont remboursés à 65% et les soins à l'hôpital sont remboursés à 95%. Pour les autres types de fournisseurs, le remboursement est de 50% pour les soins dans un cabinet et de 80% les visites à l'hôpital. b. Dresser la nouvelle table de décision Dernière modification : Aucun frais n’est remboursé au patient jusqu'à ce ce qu’un seuil soit atteint. Si c’est le cas, les visites à l'hôpital sont remboursées à 80% et les analyses médicales sont remboursés à 70%. Les visites au cabinet sont remboursées à 90% pour les « médecins participants » et 50% pour les autres. La question de savoir si le médecin est un médecin de participants est applicable uniquement pour les visites dans un cabinet ; elle n’est pas applicable pour les visites à l'hôpital et les analyses médicales. d. Dresser la dernière table de décision
  • 32.
  • 33.
    Etape 1: identificationdes causes et des effets Les causes C1: le côté "x" est inférieur à la somme de "y " et "z" C2: le côté "y" est inférieur à la somme de "x" et "z" C3: le côté "z" est inférieure à la somme de "x" et "y" C4: le côté "x" est égal à "y" C5: le côté "x" est égal à "z" C6: le côté "y" est égal à "z"
  • 34.
    Etape 1: identificationdes causes et des effets Les effets • e1 : N’est pas un triangle • e2 : le triangle est Scalène • e3 : le triangle est Isocèles. • e4 : le triangle est Equilateral • e5 : Impossible
  • 35.
    Conditions R1 R2R3 R4 R5 R6 R7 R8 R9 R10 R11 C1: x<y+z? 0 1 1 1 1 1 1 1 1 1 1 C2: y<x+z? - 0 1 1 1 1 1 1 1 1 1 C3:z<x+y? - - 0 1 1 1 1 1 1 1 1 C4:x=y? - - - 1 1 1 1 0 0 0 0 C5:x=z? - - - 1 1 0 0 1 1 0 0 C6:y=z? - - - 1 0 1 0 1 0 1 0 E1: not a triangle 1 1 1 E2:Scalene 1 E3:Isoceles 1 1 1 E4:Equilateral 1 E5:Impossible 1 1 1
  • 36.
    i>i+k T FF F F F F F F i=j - T T T T F F F F j=k - T T F F T T F F k=i - T F T F T F T F N’est pas un triangle X Scalène X Isocèles X X X Equilatéral X Impossible X X X
  • 37.
    • On souhaiteimplanter une commande cp (copy) simplifiée sous Unix. • Cette commande dispose d'un premier paramètre, -r, optionnel, permettant la copie de répertoire. • Le paramètre suivant doit être un nom de fichier ou de répertoire. Dans le deuxième cas, le paramètre « -r » est obligatoire. Sinon, un message d'erreur «Copie de répertoire impossible » doit être affiché. • Le deuxième paramètre peut être un nom ne correspondant à aucun fichier ou bien correspondant à un répertoire inconnu. Dans le premier cas, le fichier/répertoire à copier est copié avec le nouveau nom spécifié. Dans le deuxième cas, le nom est gardé mais la copie a lieu dans le répertoire spécifié. • Si le fichier source n'existe pas, le message « fichier inexistant » est produit. • Si la destination n'est pas un répertoire, le message « fichier existant » est renvoyé. • Si source=destination, erreur « Copie impossible » C1 C2 C3 C4 C5 C6 E1 E2 E3 E4 E5 E6
  • 38.
    • Causes • C1: « -r » est présent • C2 : source existe • C3 : source est un répertoire • C4 : destination existe • C5 : destination est un répertoire • C6 : source = destination • Effets • E1 : Erreur « Copie de répertoire impossible » • E2 : Erreur « Fichier inexistant » • E3 : Erreur « Fichier existant » • E4 : Copie avec le même nom • E5 : Copie avec un nouveau nom • E6 : Erreur « Copie impossible »
  • 39.
    C1 C2 C3 C4 C5 C6 E1 E2 E3 E4 E5 E6   I1  I2  I4   Le paramètre suivantdoit être un nom de fichier ou de répertoire. Dans le deuxième cas, le paramètre « -r » est obligatoire. Sinon, un message d'erreur «Copie de répertoire impossible » doit être affiché Si le fichier source n'existe pas, le message « fichier inexistant » est produit. Si la destination n'est pas un répertoire, le message « fichier existant » est renvoyé. Si source=destination, erreur « Copie impossible » Le deuxième paramètre peut être un nom ne correspondant à aucun fichier ou bien correspondant à un répertoire inconnu. Dans le premier cas, le fichier/répertoire à copier est copié avec le nouveau nom spécifié. Dans le deuxième cas, le nom est gardé mais la copie a lieu dans le répertoire spécifié.  « -r » est présent source existe source est un répertoire destination existe destination est un répertoire source = destination « Copie de répertoire impossible » « Fichier inexistant » « Fichier existant » Copie avec le même nom Copie avec un nouveau nom « Copie impossible »
  • 40.
    0-7 8-15 16-2324-31 32-39 40-47 48-55 56-63 20 01010101 21 00110011 22 00001111 23 0 0 0 0 0 0 0 0 24 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
  • 41.
    1 2 34 5 6 7 8 9 10 11 12 13 14 C1 0 C2 0 C3 1 C4 0 0 1 1 1 1 1 1 1 C5 1 1 0 0 0 0 0 0 0 C6 1 E1 1 E2 1 E3 1 1 1 1 1 1 1 E4 1 1 E5 1 1 E6 1 « -r » est présent source existe source est un répertoire destination existe destination est un répertoire source = destination Copie de répertoire impossible