Techniques de test fonctionnel Test Fonctionnel Dfinition Dans
- Slides: 42
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 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. b. c. • N < 10000 <= N <= 99999 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. b. c. 0, 5000, 9999 10000, 50000, 99999 100000, 100001, 200000
Test aux limites • Le test aux limites est considéré comme l'une des méthodes fonctionnelles 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 Guest status Visitor Age (years) Member Friday - Saturday Student Visitor Member Student 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 Day Sun - Thu Mon, Sun, Thu Fri - Sat Fri, Sat Visitor Member Student [0, 16) Guest status Age Invalid equivalent classes Invalid representative values 2, 0, 15 Non-numeric value 14@a [16, 60) 34, 16, 59 -1, 121 [60, 120] 100, 60, 120 Age < 0 or Age > 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 (boundary) invalid
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 c 1 est égal à 1, e 1 est égal à 1 ou, si c 1 est égal à 0 alors e 1 est égal à 0. La fonction NON: que si C 1 est égal à 1, e 1 est égal à 0 et vice-versa. De même, les fonctions OU: si C 1 ou C 2 ou C 3 sont égaux à 1, e 1 est égal à 1, sinon e 1 est égal à 0. La fonction ET : si C 1 et C 2 sont égaux à 1, e 1 est égal à 1; sinon e 1 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 Conditions Actions Type de client Nouveau 20% de remise X Livraison gratuite Régulier X
• 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 Commandes Antérieures >500 <500 X X X 20% de réduction Livraison gratuite Vérifier dossier de crédit Faire une amende X X X
Type de client T T F F Niveau de risque des marchandises T T F F Commandes Antérieures - - T F - - 20% de réduction X X X X Livraison gratuite Vérifier dossier de crédit Faire une amende X X
Type de client T T F F Niveau de risque des marchandises T T F F Commandes Antérieures - - T F - - X X 20% de réduction X Livraison gratuite Vérifier dossier de crédit Faire une amende X X 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 X Livraison gratuite Vérifier dossier de crédit Faire une amende X X X
Exemple
Etape 1: identification des causes et des effets Les causes C 1: le côté "x" est inférieur à la somme de "y " et "z" C 2: le côté "y" est inférieur à la somme de "x" et "z" C 3: le côté "z" est inférieure à la somme de "x" et "y" C 4: le côté "x" est égal à "y" C 5: le côté "x" est égal à "z" C 6: le côté "y" est égal à "z"
Etape 1: identification des causes et des effets Les effets • e 1 : N’est pas un triangle • e 2 : le triangle est Scalène • e 3 : le triangle est Isocèles. • e 4 : le triangle est Equilateral • e 5 : Impossible
Conditions R 1 R 2 R 3 R 4 R 5 R 6 R 7 R 8 R 9 R 10 R 11 C 1: x<y+z? 0 1 1 1 1 1 C 2: y<x+z? - 0 1 1 1 1 1 C 3: z<x+y? - - 0 1 1 1 1 C 4: x=y? - - - 1 1 0 0 C 5: x=z? - - - 1 1 0 0 C 6: y=z? - - - 1 0 1 0 E 1: not a triangle 1 1 1 E 2: Scalene 1 E 3: Isoceles E 4: Equilateral E 5: Impossible 1 1 1 1
i>i+k T F F F F i=j - T T F F j=k - T T F F k=i - T F T F N’est pas un triangle X Scalène X Isocèles Equilatéral Impossible X X X 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, Master. Card), 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 C 1: Real account ? C 2: Active account? C 3: Within limit ? C 4: Location Okay ? Les effet e 1: Approve ? e 2: Call card holder ? e 3: Call vendor ?
Etape 2: Construire le graphe cause effet
Étape - 3: Transformation en une table de décision.
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 F F F F Active account T T T T F F F F Within limit T T F F Location Okay T F T F Approve T F F F F Call cardholder F T T T F F F F Call vendor F F T T T
• 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. C 1 • Le paramètre suivant doit être un nom de fichier ou de répertoire. Dans le C 3 deuxième cas, le paramètre « -r » est obligatoire. Sinon, un message E 1 d'erreur «Copie de répertoire impossible » doit être affiché. C 4 • 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 E 5 fichier/répertoire à copier est copié avec le nouveau nom spécifié. Dans le deuxième cas, le nom est gardé mais la copie E 4 a lieu dans le répertoire spécifié. C 2 • Si le fichier source n'existe pas, le message « fichier inexistant » est produit. E 2 • Si la destination n'est pas un répertoire, le message « fichier existant » est C 5 E 3 renvoyé. • Si source=destination, erreur « Copie impossible » C 6 E 6
• Causes • • • C 1 : « -r » est présent C 2 : source existe C 3 : source est un répertoire C 4 : destination existe C 5 : destination est un répertoire C 6 : source = destination C 7 : pas d'argument ; C 8 : un argument C 9 : 2 arguments C 10 : 3 arguments; C 11 : plus de 3 arguments
• Effets • • E 1 : Erreur « Copie de répertoire impossible » E 2 : Erreur « Fichier inexistant » E 3 : Erreur « Fichier existant » E 4 : Copie avec le même nom E 5 : Copie avec un nouveau nom E 6 : Erreur « Copie impossible » E 7 : Erreur « Mauvais nombre d'arguments »
• Causes • • • C 1 : « -r » est présent C 2 : source existe C 3 : source est un répertoire C 4 : destination existe C 5 : destination est un répertoire C 6 : source = destination • Effets • • • E 1 : Erreur « Copie de répertoire impossible » E 2 : Erreur « Fichier inexistant » E 3 : Erreur « Fichier existant » E 4 : Copie avec le même nom E 5 : Copie avec un nouveau nom E 6 : Erreur « Copie impossible »
« -r » est présent « Copie de répertoire impossible » C 1 E 1 source existe C 2 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é source est un répertoire C 3 I 1 I 2 I 4 « Fichier inexistant » E 2 « Fichier existant » E 3 destination existe C 4 Si le fichier source n'existe pas, le message « fichier inexistant » est produit. Copie avec le même nom E 4 destination est un répertoire C 5 Si la destination n'est pas un répertoire, le message « fichier existant » est renvoyé. 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 C 6 fichier/répertoire à copier est copié avec le nouveau nom spécifié. Dans le deuxième cas, le nom est gardé mais la source = destination copie a lieu dans le répertoire spécifié. Si source=destination, erreur « Copie impossible » Copie avec un nouveau nom E 5 « Copie impossible » E 6
0 -7 8 -15 16 -23 24 -31 32 -39 40 -47 48 -55 56 -63 20 0101 21 0011 22 00001111 23 0 0 24 0 0 25 0 0 1 1 0 0 0 0
1 « -r » est présent C 1 source existe C 2 source est un répertoire C 3 destination existe destination est un répertoire source = destination Copie de répertoire impossible 2 3 4 5 8 9 10 11 12 13 14 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 C 5 1 1 C 6 E 2 7 0 C 4 E 1 6 1 1 E 3 1 E 4 1 E 5 E 6 1 1 1
- Dfinition
- Pansement sec définition
- Le protecteur arno breker
- Harclement
- Dfinitions
- Dfinition
- Je nais dans l'eau et je meurs dans l'eau qui suis je
- Schéma fonctionnel ordinateur
- Organigramme structurel et fonctionnel
- Signes fonctionnel
- Groupe fonctionnel
- Cahier des charges fonctionnel voiture
- Schéma fonctionnel svt
- Formeller text
- Groupe fonctionnel
- Schéma fonctionnel de la digestion
- Domaine fonctionnel chorus
- Aliment fonctionnel définition
- Schéma passage des nutriments dans le sang
- Organigramme structurel et fonctionnel
- Bilan fonctionnel définition
- Organigramme eple
- Organigramme fonctionnel nominatif
- Test palm up
- Bilan d'ouverture
- Amdec processus exemple
- Domaine fonctionnel sifac
- Fonctions techniques
- Viens dans mon cœur seigneur
- Panneau tout le monde apporte de la joie dans ce bureau
- Macro cible exemple
- Acht stappen dans
- Horaireq
- Portrait moral de robinson crusoé
- Dans un coin perdu de montagne
- Zone bilaminaire atm
- Circuit propre sale cuisine
- Dans son vieux pardessus paroles
- Pas bien dans sa vie
- Venez approchez vous soyez bénis
- Volume d'un cylindre
- Entrez dans ma demeure
- Candide voltaire utopie