Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel I.
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Tests et Validation du logiciel
Contrôle des processus : Introduction au Contrôle Qualité
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
GEF 243B Programmation informatique appliquée Boucles §
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 243B Programmation Informatique Appliquée
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II.
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Listes chaînées II §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel et Vérification et validation.
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Flot de contrôle et énoncés de sélection §
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel avec composantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Résolution structurée des problèmes.
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Fonctions.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Modules et masquage dinformation.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Paramètres et pointeurs
Principes de programmation (suite)
Cours de programmation
Récursivité.
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Algorithmique et Programmation
Cours #8 Flot de conception d’un circuit numérique
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Techniques de test Boulanger Jean-Louis.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Manipulation de formulaires en Javascript
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Structures de données IFT Abder Alikacem Gestion des exceptions Module 2 Département dinformatique et de génie logiciel Édition Septembre 2009.
Programmation linéaire en nombres entiers : les méthodes de troncature
Le Bloc Case Cours LCS N°3 Présenté par Mr: LALLALI.
Conseils pour les candidats qui se soumettent à l’examen clinique – Deuxième partie de l’examen de compétence en physiothérapie (ECP) Avril 2014.
Questionnaire au sujet des conseils pour les candidats qui se soumettent à l’examen clinique – Deuxième partie de l’examen de compétence en physiothérapie.
Objectifs de vérification logiciels GEF492A 2014 Référence: [HvV §14.1] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
GESTION ET TRAITEMENT DES ERREURS
Un survol du language C.
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Introduction au Génie Logiciel
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Transcription de la présentation:

Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests

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?

Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Synopsis Tests – Le concept Tests boîte blanche Tests boîte noir

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

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

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

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.

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

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.

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

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

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.

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

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 …

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

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 = ; pNew->pNextProduct = NULL; pProductsList->pNextProduct = pNew; }

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

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 …

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

Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tests boîte noir

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

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

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?