Test Logiciel
Commentaires Composés : Test Logiciel. Recherche parmi 300 000+ dissertationsPar esara • 16 Décembre 2014 • 2 918 Mots (12 Pages) • 697 Vues
Introduction :
Un logiciel, ce n'est pas seulement du code, mais aussi: Des besoins, une gestion de projet, une spécification (fonctionnalités, contraintes, facteur de qualité, interface), une conception: fonctionnelle, architecturale, algorithmes, conception détaillée, un code source, un exécutable, et des tests !
L'importance des tests se voit en cas de problèmes: Que veut dire « tester un logiciel » ? Etant donné un logiciel, comment le tester ? Le tester, c'est vérifier qu'il est conforme, mais à quoi, sur quel critères ? L'automatisation des tests est l'une des avancées majeures en développement depuis la programmation objet. Ceci prend toute sa dimension lors de la conception d'une application web et est gage de qualité même en présence de nombreuses releases. Symfony propose tout un panel d'outils qui facilite l'automatisation des tests.
I. Définition :
Le test est l’exécution ou l’évaluation d’un système ou d’un composant par des moyens automatiques ou manuels, pour vérifier qu’il répond à ses spécifications ou identifier les différences entre les résultats attendus et les résultats obtenus (IEE Standard Glossary of software Engineering Terminology), Tester signifie aussi exécuter un pogramme dans l’intention d’y trouver des anomalies ou des défauts.
II. Objectifs :
Comme objectifs principaux de chaque test de logiciel on peut citer :
- Identifier un nombre maximal d’erreur et de comportement problématiques du logiciel à fin d’en augmenter la qualité (si bien sur la correction des erreurs identifié lors des tests sont corrigés).
- Le test peut aussi avoir un objectif d’apporter des informations quant à cette qualité à fin de permettre la prise en décisions.
- Les tests visent aussi à vérifier que ce système réagit de la façon prévue par ses développeurs ou est conforme aux besoins du client ;
Les tests permettent aussi de mettre preuves à la robustesse la performance la sûreté et la fiabilité d’un logiciel.
III. Types de Test :
1. Test fonctionnelle :
C’est le test du type boîte noire canalisé sur la vérification des requêtes de l’application ; ce type de test doit être exécuté par les testeurs, fait qui n’exclut pas que les programmeurs testent le code développé par eux (règle qui s’applique dans tout stade du test) pour ce type on trouve :
• Test unitaire : habituellement par les programmeurs, car ces tests supposent une connaissance approfondie du design interne et du code de l’application.. Ce type de test peut nécessiter le développement des drivers ou des programmes additionnels.
• Test d’intégration : a pour but de valider le fait que toutes les parties développées indépendamment fonctionnent bien ensemble. Les parties peuvent être modules de code, applications individuelles, applications du type client ou serveur d’un réseau
• Test d’utilisabilité : Ce test doit valider si l’application est facile à utiliser. Clairement ce test est subjectif et il va dépendre des utilisateurs finals ou clients visés, Les programmeurs et les testeurs ne sont pas indiqués pour ce teste.
• Test de compatibilité : Tester la manière dont un logiciel fonctionne dans une configuration spécifique du système, sous un système d’exploitation spécifique, dans un environnement de réseau particulier.
2. Test non-fonctionnelle :
Pour ce type de test, on trouve :
• Test de performance : tester si l’application répond à la performance souhaitée
• Test de charge : ces tests sont roulés en appliquant des charges anormales ou par la répétition exagérée de certaines actions, demandes complexes à la base de donnée.
• Test de sécurité : Tester la manière dont le système protège contre les accès interne ou externes pas autorisés.
IV. Cycle de développement d’un test logiciel :
Le cycle de développement préconisé par TDD(Test driven developement ) comporte cinq étapes :
Ecriture d'un premier test
• Exécuter le test et vérifier qu'il échoue (car le code qu'il teste n'a pas encore été implémenté)
• Ecriture de l'implémentation pour faire passer le test (il existe différentes manières de corriger ce code)
• Exécution des tests afin de contrôler que les tests passent et dans ce présent l'implémentation respectera les règles fonctionnelles des tests unitaires
• Remaniement (Refractor) du code afin d'en améliorer la qualité mais en conservant les mêmes fonctionnalités
Voici un schéma résumant le séquencement du cycle de développement
V. Efficacité des tests :
Le test ne peut pas prouver au sens formel la validité d’un programme, par contre, le test peut “augmenter notre confiance” dans le bon fonctionnement d’un programme. Lors de la phase de conception / codage en partie par les développeurs (tests unitaires).Leur but est de trouver le plus rapidement des bugs possibles avant la commercialisation.
VI. Les outils du test :
1. Les tests fonctionnels ou "tests de boite noire" :
Ce sont des tests qui examinent les contraintes liées aux spécifications et évaluent les réactions du logiciel à certaines entrées, sans rentrer à l'intérieur des modules : l'aboutissement est un ensemble d'effets testés.
Voici comment créer un test fonctionnel :
Depuis les spécifications nous pouvons prédire les résultats de test : notion d’Oracle.
Toujours depuis les spécifications nous pouvons définir les données du test.
En passant ces données de test dans le programme à
...