Mustapha EL FEDDI mustapha.elfeddi@sofrecom.com Tests Mustapha EL FEDDI mustapha.elfeddi@sofrecom.com.

Slides:



Advertisements
Présentations similaires
EPITECH 2009 UML EPITECH 2009
Advertisements

Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Analyse et Programmation Orientées Objets
Tests et Validation du logiciel
Eléments de Génie Logiciel
Contrôle des processus : Introduction au Contrôle Qualité
L'installation et la diffusion 1 LInstallation et la Diffusion.
La Recette La recette.
La Gestion de la Configuration
Les Evolutions et la Maintenance
Présenté à Par. 2 3Termes et définitions 3.7 compétence aptitude à mettre en pratique des connaissances et un savoir-faire pour obtenir les résultats.
LA QUALITE LOGICIELLE Plan du cours Le Plan Qualité 1 h ½
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Les tests et les logiciels de gestion de tests
Organiser des Tests dans un projet
Chapitre 7 : démarche de conception, conduite de projet SI
Les démarches de développement
Les démarches de développement
Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007.
Tests et Validation du logiciel
La revue de projet.
Cours Qualité et Tests Chapitre 3 : Tests
Etude des Technologies du Web services
Les exigences de la norme ISO 14001
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Sésame Conseils Bon sens et compétences
Algorithmique et Programmation
Manuel de formation PNUE Thème 11 Diapo 1 Objectifs de la mise en œuvre et du suivi de lÉIE : F appliquer les conditions dapprobation F garantir leur efficacité
Techniques de test Boulanger Jean-Louis.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Méthodes formelles pour la conception de systèmes répartis par Luigi Logrippo et tous ses collaborateurs et étudiants École d`ingénierie et technologie.
Les étapes du cycle de développement du génie logiciel
TOLÉRANCEMENT GÉOMÉTRIQUE
Outils de test fonctionnel et non fonctionnel
Introduction Un test sur les tests Ce que n’est pas le test
Le Cycle de conception Processus à suivre pour toute production Documenter le processus dans le carnet de réalisation.
Test logiciel Xavier Baril.
ANALYSE METHODE & OUTILS
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.
Le management de l'IVVQ Processus techniques IVVQ
Supports de formation au SQ Unifié
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
GENIE LOGICIEL
Définitions Gestion Exemple
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.
1 Emeric ROLLIN 1 Génie Logiciel GENIE LOGICIEL
Les épreuves du BTS Systèmes photoniques
Introduction au Génie Logiciel
VALIDATION VÉRIFICATION & TESTS
Initiation à la conception des systèmes d'informations
BTS ELECTROTECHNIQUE Etude du référentiel.
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
MOCK.
MODULE DE FORMATION À LA QUALITÉ
Année 2006 – 2007 ENSEA © Emeric Rollin
1 Vers la gestion de la cohérence dans les processus multi-modèles métier Wolfgang THEURER Ecole Nationale Supérieure d’Ingénieurs des Etudes et Techniques.
Les démarches de développement
Principes et définitions
Maîtrise Universitaire en Comptabilité, Contrôle et Finance Audit des systèmes d'information Partie 3: ANNNEXES Module Audit Emanuel Campos - version.
- Exemple de détermination de tolérance de localisation
Test et assurance qualité : Focus Projet Outiz
Document de spécification d’exigences Normes IEEE et 29148:2011
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
Claude Matricon ("le marketing du réel") propose une classification qui permet de distinguer les 4 différents marchés dont dépend l'entreprise :  marché.
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Les méthodes de tests Les grands principes pour réaliser des tests efficaces.
Transcription de la présentation:

Mustapha EL FEDDI mustapha.elfeddi@sofrecom.com Tests Mustapha EL FEDDI mustapha.elfeddi@sofrecom.com

Terminologie Une faute est la cause d’une erreur Une erreur (IEEE 729) est Un écart entre une valeur ou condition calculée, observée ou mesurée et la valeur ou condition qui est vraie, spécifiée ou théoriquement correcte. Défaut, anomalie (fault, bug) (IEEE 729) est la manifestation d'une erreur dans un logiciel Un défaut peut causer une panne. Panne (failure) (IEEE 729) est la fin de la capacité d'un système ou d'un de ses composants d'effectuer la fonction requise, ou de l'effectuer à l'intérieur de limites spécifiées. Faute Erreur Défaut Panne

Terminologie SPECIFICATION (ISO 8402) SATISFACTION Document qui prescrit les exigences auxquelles le produit ou le service doit se conformer. SATISFACTION Un programme satisfait sa spécification lorsqu’il est en tout point conforme aux exigences de celle-ci. VALIDATION ou VERIFICATION (ISO 9000-3) Processus d'évaluation du logiciel pour s'assurer qu’il satisfait aux exigences spécifiées. La validation ou vérification d'un produit cherche à s'assurer qu'on a construit le bon produit (d’un point de vue externe ou interne). Le test est un cas particulier de vérification.

Test: définition Norme IEEE 729: Le test est un processus manuel ou automatique, qui vise à établir qu’un système vérifie les propriétés exigées par sa spécification, ou à détecter des différences entre les résultats engendrés par le système et ceux qui sont attendus par la spécification.

Objectifs Le test vise à mettre en évidence les erreurs d’un logiciel Le test n’a pas pour objectif de diagnostiquer la cause des erreurs Le test n’a pas pour objectif de corriger les fautes Le test n’a pas pour objectif de prouver la correction d’un programme

Qualité du test L’efficacité du test (son aptitude à détecter des erreurs) doit être conforme à certains critères de qualité. Le niveau de qualité requis dépend du contexte d’utilisation du logiciel: plus le contexte est critique, plus l’effort de tests doit être important. La programmation d’un logiciel aérospatial requiert des exigences de qualité supérieures à la programmation d’un éditeur de dessins techniques QUALITE (QUALITY), ISO 8402: Ensemble des propriétés et caractéristiques d'un produit ou service qui lui confèrent l'aptitude à satisfaire des besoins exprimés ou implicites.

Coûts du test Pour un logiciel critique, le coût du test peut représenter plus de 40% du coût du développement. Conception 40% Codage 20% Tests 40%

Tests et Cycle de vie Tests de réception (Recette) Spécifications Analyse Tests d’intégration Tests de non régression Conception Tests unitaires Implémentation

Phases de test TEST UNITAIRE (UNIT TEST OR MODULE TEST): Test d'un programme ou d'un module isolé dans le but de s'assurer qu’il ne comporte pas d'erreur d'analyse ou de programmation. TEST D’INTEGRATION (INTEGRATION TEST), IEEE 729: Une progression ordonnée de tests dans laquelle des éléments logiciels et matériels sont assemblés et testés jusqu'à ce que l’ensemble du système soit testé. TEST DE RECEPTION (ACCEPTANCE TEST), ISO/IEC 2382-20: Test, généralement effectué par l'acquéreur dans ses locaux après installation d'un système ou d'une unité fonctionnelle, avec la participation du fournisseur, pour vérifier que les dispositions contractuelles sont bien respectées. TEST DE REGRESSION (REGRESSION TEST): A la suite de la modification d'un logiciel (ou d'un de ses constituants), un test de régression a pour but de montrer que les autres parties du logiciel n'ont pas été affectées par cette modification.

Types de test Tests de boîte noire Le test porte sur le fonctionnement externe du système. La façon dont le système réalise les traitements n'entre pas dans le champ du test. Tests de boîte blanche Le test vérifie les détails d'implémentation, c'est à dire le comportement interne du logiciel.. Tests de conformité Le test vérifie la conformité du logiciel par rapport à ses spécifications et sa conception. Tests de non conformité Le test vérifie que les "cas non prévus" ne perturbent pas le fonctionnement du sytème. Tests beta Réalisés par des développeurs ou des utilisateurs sélectionnés, ils vérifient que le logiciel se comporte pour l'utilisateur final comme prévu par le cahier des charges. Tests alpha Le logiciel n'est pas encore entièrement fonctionnel, les testeurs alpha vérifient la pré-version. Tests unitaires Chaque module du logiciel est testé séparément, par rapport à ses spécifications, aux erreurs de logique.

Types de test (suite) Tests d'intégration Les modules validés par les test unitaires sont rassemblés. Le test d'intégration vérifie que l'intégration des modules n'a pas altéré leur comportement. Tests fonctionnels L'ensemble des fonctionnalités prévues est testé : fiabilité, performance, sécurité, affichages,etc Tests d'intégration système L'application doit fonctionner dans son environnement de production, avec les autres applications présentes sur la plateforme et avec le système d'exploitation. Tests de recette Les utilisateurs finaux vérifient sur site que le système répond de manière parfaitement correcte. Tests de non régression Après chaque modification, correction ou adaptation du logiciel, il faut vérifier que le comportement des fonctionnalités n'a pas été perturbé, même lorsqu'elle ne sont pas concernées directement par la modification.

Méthodes de tests statiques Les méthodes de tests statiques consistent en l’analyse textuelle du code du logiciel afin d’y détecter des erreurs, sans exécution du programme Revue de code Analyse des types Analyse du domaine de variation des variables Analyse du graphe de contrôle …

Méthodes de tests statiques: Exemple: Revue du code ou INSPECTION (REVIEW OR INSPECTION), IEEE 729: Examen détaillé d’une spécification, d’une conception ou d’une implémentation par une personne ou un groupe de personnes, afin de déceler des fautes, des violations de normes de développement ou d'autres problèmes.

Méthodes de tests statiques Avantages: Méthodes efficaces et peu coûteuses. 60 à 95% des erreurs sont détectées lors de contrôles statiques Les méthodes de tests statiques sont nécessaires. Inconvénients: Méthodes ne permettant pas de valider le comportement d’un programme au cours de son exécution. Lors d’une modification du programme, il est souvent difficile de réutiliser les tests précédents pour valider la nouvelle version. Les méthodes de tests statiques ne sont pas suffisantes.

Méthodes de tests dynamiques Les méthodes de tests dynamiques consistent en l’exécution du programme à valider à l’aide d’un jeu de tests. Elles visent à détecter des erreurs en confrontant les résultats obtenus par l’exécution du programme à ceux attendus par la spécification de l’application.

Méthodes de tests dynamiques Est-ce que P satisfait SP ? Sélection du jeu de tests T Processus de test Exécution de P à l’aide de T Correction Analyse des résultats P satisfait, ou non, SP !

Méthodes de tests dynamiques Pour expliquer le mécanisme des méthodes de tests dynamiques, il faut encore répondre aux questions: Comment choisir le jeu de tests? Comment décider du succès ou de l’échec d’un jeu de tests? A partir de quel moment peut-on estimer que le programme n’a plus besoin d’être testé?

Méthodes de tests dynamiques Il existe plusieurs méthodes de test: Aléatoires Structurelles (boîte blanche) Fonctionnelles (boîte noire) Statistiques

Méthodes aléatoires Le jeu de tests est sélectionné au hasard sur le domaine des entrées du programme. Le domaine des entrées du programme est déterminé à l’aide de l’interface de la spécification ou de l’interface du programme. Inconvénient: Ces méthodes ne garantissent pas une bonne couverture de l’ensemble des entrées du programme. En particulier, elles peuvent ne pas prendre en compte certains cas limites ou exceptionnels. Ces méthodes ont donc une efficacité très variable.

Méthodes structurelles (Boîte Blanche) Le critère de sélection du jeu de tests repose sur le code du programme. Le jeu de tests est choisi de manière à remplir certaines exigences: Couverture de toutes les instructions. Couverture de tous les chemins exécutables. Couverture de toutes les conditions. Afin d’augmenter la qualité d’un test de couverture, on peut sélectionner plusieurs tests par sous-domaine à l’aide d’une loi de distribution On parle alors de méthode statistique structurelle.

Méthodes structurelles (Boîte Blanche) Méthodes structurelles – Limitations La sélection d’un jeu de tests de taille raisonnable couvrant tous les chemins exécutables n’est pas toujours possible lors de la présence de boucles (il faut limiter le nombre de passages dans ces boucles) Ces méthodes ne permettent pas de détecter des oublis par rapport à la spécification de l’application, cette dernière n’intervenant pas dans le processus de sélection des jeux de tests Lors d’une modification du programme, il est souvent difficile de réutiliser les tests précédents pour valider la nouvelle version.

Méthodes fonctionnelles (Boîte Noire) La méthode de tests fonctionnelle vise à valider les fonctionnalités d’un programme. Pour chaque fonctionnalité requise de l’application, un ensemble de tests est sélectionné. Les jeux de tests sont dérivés de la spécification du programme Une spécification décrit complètement les comportements d’un système. Elle peut être: Informelle (ex: spécification en langage naturel). Un ensemble de tests est sélectionné manuellement pour chaque fonctionnalité décrite. Formelle (ex: spécification algébrique). Une sélection automatique du jeu de tests est envisageable. Semi-formelle (ex: méthode de modélisation du type Fusion/UML). La sélection du jeu de tests est guidée par la modélisation.

Méthodes statistiques Le jeu de tests est sélectionné à l’aide d’une loi de distribution sur le domaine des entrées du programme (déterminé à partir de la spécification) Avantage: Ces méthodes donnent des résultats satisfaisants. Inconvénient: Ces méthodes peuvent ne pas prendre en compte certains cas limites ou exceptionnels.

Méthodes expérimentales Le jeu de tests est sélectionné sur la base de l’expérience. Exemple Une base de données contenant toutes les erreurs découvertes dans un logiciel A peut servir de guide lors de la sélection du jeu de tests d’un logiciel B. C’est la stratégie de tests la plus couramment utilisée dans l’industrie Avantage: Cette stratégie de tests donne des résultats satisfaisants Inconvénient: Cette stratégie de tests ne garantit pas une bonne couverture de l’ensemble des entrées du programme.

Échec ou succès du test Une fois un jeu de tests sélectionné, il est utilisé lors de l’exécution du programme à valider. Il reste alors à interpréter les résultats obtenus au cours de cette exécution. C’est alors qu’on décide du succès ou de l’échec du jeu de tests: Succès d’un jeu de tests (jeu de tests positif): chaque test du jeu est positif. Échec d’un jeu de tests (jeu de tests négatif): au moins un test du jeu est négatif

Fin des tests Un programme n’a plus besoin d’être testé, lorsque l’efficacité du jeu de tests sélectionné est conforme à certains critères de qualité, et lorsque ce jeu de tests est positif

Conclusion Le test vise à mettre en évidence les erreurs d’un logiciel Le test n’a pas pour objectif de diagnostiquer la cause des erreurs, de corriger les fautes, ou de prouver la correction d’un programme Pour un logiciel critique, le coût du test peut représenter plus de 40% du coût du développement La mise au point d’une méthode optimale de vérification de programmes, passe par une combinaison judicieuse de l’utilisation de différentes méthodes de tests statiques et dynamiques