Chapitre1_test (1).pdf
Document Details
Uploaded by Deleted User
Full Transcript
Test et validation logiciel Chapitre 1 : Importance de la validation et de la vérification dans le processus de génie logiciel Introduction Le test logiciel est un métier à part entière différent de celui des développeurs. Un programme qui fonctionne parfaitement et qu...
Test et validation logiciel Chapitre 1 : Importance de la validation et de la vérification dans le processus de génie logiciel Introduction Le test logiciel est un métier à part entière différent de celui des développeurs. Un programme qui fonctionne parfaitement et qui s’adapte aux besoins évolutifs des utilisateurs découle généralement d’un codage intelligent et de tests informatiques exécutés dans un contexte prédéfini à travers une méthode. Par conséquent, l’étape du test qui facilite la validation de la fiabilité d’un algorithme converge en elle différents leviers et comporte de nombreux enjeux. Le test : quel intérêt pour votre projet IT ? Projet IT : Un projet informatique implique le fait de développer un logiciel ou d’installer une solution d’un système information comme un progiciel de type ERP ou une gestion de la relation client de type CRM Système d’information : Ensemble organisé de ressources qui permet de collecter, stocker, traiter et distribuer de l’information. Progiciel de gestion intégré ERP : Ensemble de logiciels conçus pour répondre à des besoins spécifiques qui permet de gérer l’ensemble des processus d’une entreprise. Gestion de la relation Client CRM : Ensemble des outils et techniques destinés à tenir compte les souhaits et les attentes des clients, afin de les satisfaire et les fidéliser. => Le test informatique favorise la détection de tous les bugs pour assurer la qualité de l’application. Il permet de rationaliser les coûts de développement du logiciel grâce à la maîtrise et à la correction en amont des défauts fonctionnels. Le test logiciel garantit également l’acceptabilité du programme à la livraison et réduit la dette technique. L’une des meilleures décisions, l’un des meilleurs pivots dans la stratégie pour atteindre tous ces objectifs consiste, et la démonstration sera faite, consiste donc à externaliser le test. En règle générale, on distingue les différents types de tests logiciel par niveaux et par nature. On distingue de façon classique quatre niveaux de différents types de tests logiciels On parle de niveaux de test par rapport à la pyramide des tests suivante. Lorsque l’on souhaite automatiser des tests il faut toujours commencer par le bas de la pyramide car ces tests sont plus rapides à mettre en place et donc moins coûteux. 1 Test et validation logiciel 1- Les tests unitaires Initiés par le développeur lui-même dans l’optique est de vérifier son code au niveau du composant qu’il doit réaliser. Ces tests doivent être automatisés rapidement pour permettre de valider la non régression du fonctionnement du composant lors des multiples livraisons des différentes version du logiciel, surtout en process agile. 2- Les tests d’intégration Exécutés par un testeur à l’interne ou externalisés auprès d’une TR. En interne ou externalisé, peut importe l’objectif à atteindre est le même, l’intervention de ce professionnel permet de s’assurer que plusieurs composantes de votre logiciel interagissent conformément aux cahiers des charges et délivrent les résultats attendus. 3- Les tests systèmes À ce niveau, on exécute plusieurs scénario complets qui constituent les cas d’utilisation du logiciel. Dans le jargon informatique, on le qualifie de test de type boîte noire et ils permettent de s’assurer de la fonctionnalité globale du logiciel et de son comportement sur les terminaux d’utilisation. Pour aboutir à des reportings objectifs pour ce type de test, l’équipe qui en a la charge doit se distinguer et assurer une totale indépendance vis à vis des équipes de développement. 2 Test et validation logiciel 4- Les tests d’acceptation Il s’agit ici de valider l’adéquation du logiciel aux spécifications du client. En fait, toute solution informatique est motivée par un besoin au niveau des utilisateurs. Alors, sur la base d’un cahier des charges arrêté et établi en amont avec le client, ce test rassure sur la conformité du logiciel aux critères d’acceptation et aux besoins des cibles. Ils sont donc généralement réalisé par le client final ou les utilisateurs, ont peut aussi appeler cela la “recette” du logiciel. Exécutez vos tests selon leur nature Les tests peuvent être classés également en famille de tests suivant leur nature. Les deux familles principales sont les tests fonctionnels et les tests non fonctionnels. Les tests fonctionnels L’analyste utilise, déroule les fonctionnalités du logiciel, il est le premier utilisateur, il veille ici à scruter les différentes actions du système. Autrement dit, il observe le comportement du logiciel vis-à-vis des fonctionnalités souhaitées et attendues par le client (c’est à dire ici le propriétaire du logiciel). Le testeur de logiciel compare chacune des fonctionnalités de la plateforme avec les spécifications indiquées dans le cahier des charges. C’est sous cette catégorie que se classent les différents niveaux de test. Parmi les tests non fonctionnels nous pouvons citer : 1- Les tests de robustesse Ici, on soumet votre logiciel à une forte activité, ceci pour vérifier qu’elle peut fonctionner de façon optimale sous pression, ce test permet également d’en découvrir les limites, ces paramètres sont des données importantes pour l’utilisation et la vie future du logiciel. Les exécutables sont répétés à toutes les étapes des tests du logiciel, ils confirment son aptitude à être disponible et performant même si un grand nombre d’utilisateurs y accèdent simultanément. Ces tests informatiques intègrent une longue liste de critères qui ne sont pas forcément liés à la fonction initiale du logiciel. Mais il est important de prévoir le comportement du logiciel dans ces cas “extrêmes” pour anticiper et garantir en amont une expérience utilisateur au pire acceptable et au mieux très positive. 2- Les tests de performance Souvent menés en fin de projet, ils se fondent notamment sur les indicateurs comme la consommation CPU, la progression du codage sur l’exploitation de la mémoire vive, le volume de commandes lancées à la seconde ou encore le mouvement d’entrée et de sortie des utilisateurs sur le logiciel. Ce sont ces paramètres qui définissent la position du logiciel sur un classement comparatif avec ses concurrents. 3