Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parColombain Delarue Modifié depuis plus de 11 années
1
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests
2
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Revue Quelle est la différence entre une abstraction, le masquage dinformation et l encapsulation? Quelles sont les deux composantes dun module?
3
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Synopsis Tests – Le concept Tests boîte blanche Tests boîte noir
4
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Plusieurs études ont été conduites et indiquent quentre 30 et 85 erreurs sont introduites pour chaque 1000 lignes de code produites. Même pour le logiciel qui est testé de façon intensive, tel que le logiciel à sécurité critique, 0.5 à 3 erreurs seront encore présentent dans 1000 lignes de code – Myers 1986 IEEE computer Les bons tests sont aussi difficiles à produire que les bons designs. – Hans Van Vliet
5
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Pour que les tests soient efficaces, le testeur doit avoir une approche et attitude qui sont propices à exposer les erreurs La loi de Dijkstra pour les tests: Les tests peuvent être utilisés pour montrer la présence des bogues, mais jamais leurs absences. conférence de lOTAN 1969
6
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Ce que Dijkstra veut dire est que les tests doivent se concentrer sur la détection des erreurs et non sur la démonstration que le programme ne contient plus derreurs. Si vous voulez prouver que votre programme est correct, vous pouvez, et allez sûrement manquer des erreurs. Si vous retenez seulement une chose de ce cours ce doit être que vous devez croire que votre code contient des erreurs avant de le tester
7
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Vos efforts pour les tests devraient toujours être axés pour essayer de faire planter votre code Essayez des valeurs hors de la plage que vous avez spécifiés Essayez des quantités dinformation qui sont nuls, en trop, et des quantités moyennes. Essayez des valeurs erronés (entrez une chaîne de char au lieu dun nombre)… Les tests doivent donc tester les bornes pour lesquelles le programme a été écrit.
8
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Votre programme doit être dessiné pour être testable Les modules et les fonctions doivent être petites et cohésives Si vous écrivez des fonctions qui sont complexes, vos tests vont être complexes Vous devez toujours penser à vos tests quand vous faites le design de vos programmes, car tôt ou tard vous allez avoir à tester ce que vous avez produit
9
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Il y a des parties de votre code qui ne sont pas testables facilement Les tests de défaillances, le traitement des erreurs et certaines conditions anormales: Vous ne risqueriez pas une déflagration nucléaire pour tester le logiciel de sécurité. Vous devez parfois simuler, ou utiliser dautres méthodes pour vérifier votre code Les fuites de mémoire ne peuvent pas être testées, vous devez inspecter votre code et vérifier que les blocs de mémoires sont libérés quand vous nen avez plus de besoin. Ceci est un des tests les plus difficile.
10
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Quand vous allez décider quels tests vous allez exécuter, considérez le spectre des situations et comportements: Chaque comportement doit être spécifié en terme de létat courrant, des entrées, des sorties et de létat résultant SuppositionsExceptionsCas normales comportements contrôlés situations normales comportements non contrôlés situations anormales
11
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Les suppositions sont des situations qui sont anormales et des comportements qui sont non-contrôlés; donc elles sont non-testées. Cependant les suppositions doivent être documentées Les documents de requis et de design doivent contenir et tracer toutes les suppositions Cest une bonne pratique didentifier toutes les suppositions dans lentête de chaque module et fonctions pour identifier les limitations du logiciel Ayez une suppositions seulement si vous ne pouvez pas observer, identifier ou contrôler le comportement
12
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Les exceptions sont des situations qui sont anormales et que nous ne voulons pas qui se produisent Mais contrairement aux suppositions, nous pouvons détecter et contrôler le comportement des exceptions Donc les exceptions sont des comportements contrôlés Les trois étapes pour traiter les exceptions sont: Détecter, Traiter, et Rapporter.
13
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept La détection dune exception entraîne la capacité de reconnaître les états qui ne sont pas corrects Reconnaître quand il ne reste plus de mémoire quand on utilise malloc Vérifier le dénominateur avant chaque opération de division Vérification pour savoir si une fonction retourne un code derreur Vérification pour savoir si un pointeur est non NULL,… Donc une exception est observable
14
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Les situations normales doivent toujours être détectables et prédictibles à partir dun état connu et un ensemble dentrées, donc ces situations sont des comportements contrôlés La plus part des requis sont toujours énoncés de façon positive: Le logiciel doit … Les requis doivent aussi inclure tout comportement qui est contre indiqué Le logiciel ne doit pas …
15
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests – Le concept Les deux types de comportement, positif et contra doivent être le sujet de tests Quand vous écrivez un plan de test, vous devriez toujours considérer les comportements normaux et anormaux Les suppositions devraient toujours être révisées et justifiées pour sassurer que la situation est vraiment non détectable et non contrôlable
16
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte blanche void main(void) { CATALOGUE *pNew = NULL; … pNew = (CATALOGUE *)malloc(sizeof(CATALOGUE)); if (pNew == NULL) exit(0); strcpy(pNew->product, "Millennium Falcon"); pNew->price = 101.50; pNew->pNextProduct = NULL; pProductsList->pNextProduct = pNew; }
17
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte blanche Il y a deux types de tests: boîte blanche et boîte noir Les tests boîte blanche teste le code et létat des variables dans une fonction ou un module Les tests boîte blanche vérifie donc la structure du code, les flots logiques et les détails dimplémentation Les tests boîte blanche sont donc appelé test structurels
18
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte blanche Dans les tests boîte blanche chaque condition et chaque mécanisme de flot doit être testé Chaque condition doit être testé pour les cas normales: Valeurs moyennes (en dedans des bornes) Valeurs maximums et minimums pour être certain que les bornes sont respectées (nombre ditérations, plus grand que, plus petit que,… ) Chaque condition doit aussi être testée pour les exceptions: Valeurs qui devraient générer des erreurs Access aux tableaux hors des bornes …
19
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte blanche Donc les tests boîte blanche traitent les contrôles de flots, les aspects du langages de l implémentation dun algorithme Chaque algorithme doit être testé pour assurer que chaque ligne de code est couverte Chaque condition qui fait partie dune structure de décision est testé au moins une fois pour chaque valeur VRAI et FAUX
20
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte noir
21
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte noir Les tests boîte noir sont des tests pour lesquels nous ne regardons pas le code comme tel Nous savons ce quune fonction donne comme sortie pour une entrée donnée et cest tout ce qui nous concerne pour ces tests Nous nous ne préoccupons pas des détails internes de la fonction ou du module Nous testons les fonctions comme des mécanismes de transformations opaques Les tests boîte noir sont aussi connu comme des tests fonctionnels car ils tests les fonctions en entiers
22
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte noir Encore ici nous testons les situations normales et anormales Quand nous testons les modules et les fonctions, nous donnons des paramètres qui peuvent engendrer les deux types de situations Les outils de couverture devraient être utilisés durant les tests boîte noir pour mesurer lefficacité des tests
23
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Quiz Time Que veut dire Dijkstra avec sa loi pour les tests? Quelles sont les trois type de cas dans les tests? Quelles sont les différences entre les tests boîtes blanche et noir?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.