Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009
Sommaire I. Introduction... 3 II. Présentation du projet... 3 III. Méthode de test... 5 1. Les méthodes de test fonctionnelles :... 5 2. Les méthodes de test non fonctionnelles :... 5 IV. Logiciel utilisé pour les différentes méthodes de test :... 6 1. Méthode de test fonctionnelle :... 6 2. Méthode de test non fonctionnelle :... 7 V. Module critique :... 8 VI. Conclusion :... 9 2
I. Introduction L objectif de ce document est de mettre en place les différentes manières d effectuer les tests nécessaires sur notre projet annuel afin d assurer une qualité suffisante de cette application. Etant donné que notre projet annuel est une application web, nous allons essayer de trouver des moyens efficaces de test du logiciel existante qui se rapproche le plus de notre projet intitulé WIKIROUTE dont nous parlerons plus en détaille ultérieurement. Le test du logiciel est l activité destinée à trouver les erreurs du logiciel. Un test est positif s il permet de trouver des erreurs et qu il est efficace s il ya une forte probabilité de découverte d erreur. II. Présentation du projet WIKIROUTE est un projet qui permet à des utilisateurs de consulter des itinéraires saisis par d autres utilisateurs, et d en créer. Les trajets des itinéraires saisis seront visualisés sur une carte en mode visuel ainsi qu en mode texte aussi. Nous allons commencer par vous présenter les outils utilisés lors de l implémentation du projet : Langage de programmation : PHP5, CSS, XHTML, JavaScript ; API : Google Map API ; Bibliothèque : MDB2(PEAR) Base de données : fonctionnel sur Postgres et MySQL ; Nous allons maintenant parler les différents modules de l application: 3
Le module affichage itinéraire : Il permet aux utilisateurs de visualiser un itinéraire après avoir effectué un choix parmi les résultats proposés par le module de recherche. Le module ajout itinéraire : Il permet aux utilisateurs de faire la saisie des itinéraires qu ils veulent proposer. Le module recherche itinéraire Il permet aux utilisateurs d effectuer une recherche d itinéraire(s) sur celles enregistrés dans la base de données. Le module compte utilisateur Il permet la création de compte utilisateur, la gestion de compte (effectuer des modifications, changement de mot de passe, etc. ). Le module administrateur Il permet à l administrateur de l application d avoir une vue globale sur l ensemble des informations existante dans la base de données afin qu il puisse modérer le site correctement. 4
III. Méthode de test 1. Les méthodes de test fonctionnelles : Parmi les nombreuses méthodes de test fonctionnelles qui existent nous pensons que les suivantes sont indispensables pour la qualité de l application : Le test unitaire : Dans le premier stage des tests, les fonctions ou les modules de code sont testés, habituellement par les programmeurs, car ces tests supposent une connaissance approfondie du design interne et du code de l application. Pas toujours facile à exécuter, sinon l application n a une architecture bien structurée. Ce type de test peut nécessiter le développement des drivers ou des programmes additionnels. Le test d intégration : Ce type de test teste des parties de l application et l'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 des modules de code, applications individuelles, applications du type client ou serveur d un réseau etc. Le test d intégration est notamment relevant sur les systèmes client / serveur (ce qui est le cas dans notre application) et sur les systèmes distribués. 2. Les méthodes de test non fonctionnelles : Parmi les nombreuses méthodes de test non fonctionnelles qui existent nous pensons que les suivantes sont indispensables pour la sécurité et la survie de l application : Tests de charges Tester une application sous de grandes charges, comme par exemple tester un site web sous une série de charges pour déterminer jusqu à quel point la réponse du système n est plus prompte ou craque. 5
Test de performances Terme utilisé alternativement pour les tests de volume et tests de charge. Dans le cas idéal le test de performance (et d autre types de tests) sont prévus dans la documentation où sont spécifiés les requêtes. Test de sécurité Tester la manière dont le système protège contre les accès internes ou externes pas autorisés, endommagement par mauvaises intentions etc... Peut nécessiter des techniques de test sophistiquées. IV. Logiciel utilisé pour les différentes méthodes de test : 1. Méthode de test fonctionnelle : Test unitaire : PhpUnit Le développement d une application implique bien souvent des modifications du code initial (correction d erreurs, ajout de fonctionnalités, remaniement de code...). Il peut alors être intéressant de mettre en place un mécanisme de tests permettant de vérifier que les nouvelles modifications ne détériorent pas les fonctionnalités existantes. Pour cela nous allons utiliser un outil permettant de réaliser cela. PHPUnit, un utilitaire de tests unitaires pour PHP qui est le langage de programmation utilisé pour la réalisation de l application. PHPUnit est un Framework de test unitaire open source dédié au langage de programmation PHP. Basé sur JUnit (bibliothèque de test unitaire pour le langage de programmation Java), il intègre tous les concepts communs aux bibliothèques de tests unitaires. Test d'intégration : test manuel C est un test qui se déroule dans une phase suivante d'un projet de développement logiciel immédiatement après les tests unitaires. Il consiste, une fois que les développeurs ont chacun validé leurs développements ou leurs correctifs, à regrouper leurs modifications ensemble dans le cadre d'une livraison. 6
Pour ce test nous n allons pas utiliser d outils particuliers, il sera fait de manière manuelle pour les raisons suivantes : Nous remarquons que l ensemble des modules mise à par celui de l affichage d itinéraire ont recourt uniquement à la base de données. Nous remarquons dans le cadre générales les différentes modules de l application fonctionnent de manière indépendante les unes des autres. Sauf le module d affichage itinéraire qui prend en entrée le ou les résultat(s) du module de recherche. il y a peu de test à effectuer au niveau de la communication entre ces deux modules car le module d affichage sollicite le module de recherche une seule fois par affichage d itinéraire. Nous savons exactement le résultat et la forme de réponse attendus par le module affichage. 2. Méthode de test non fonctionnelle : Test de performance et de charge : OpenSTA o Test de performance : C est un test dont l'objectif est de déterminer la performance d'un système informatique. L'acception la plus courante de ce terme est celle dans laquelle ces tests vont avoir pour objectif de mesurer les temps de réponse d'un système en fonction de sa sollicitation. o Test de charge : Il s'agit d'un test au cours duquel on va simuler un certain nombre d'utilisateurs sur une durée relativement longue, pour voir si le système testé est capable de supporter une activité intense sur une longue période. Pour les deux tests précédents nous proposons l utilisation d OpenSTA, qui est une solution d injection de charge HTTP/HTTPS qui permet de tester les performances d une application web développée en J2EE,.NET, PHP, etc. 7
Pour son coté fonctionnelle, OpenSTA est un logiciel de test d architecture conçu autour de COBRA. La boite à outil actuelle à la capacité de réaliser des scripts de tests de charge HTTP et HTTPS et de mesurer les performances sur les plateformes Win32. Les enregistrements sont faits sur le navigateur(le client) du testeur et sont de simples scripts qui peuvent être édités et contrôlés avec un langage de haut niveau. Ces sessions de scripts peuvent être rejouées pour simuler des tests de charges et se basent sur un moteur de génération de charge. Les résultats et les statistiques sont enregistrés pendant les tests par une variété de mécanismes automatiques et manuels. Cela inclus des scripts horodatés, flux SNMP, "Windows Performance Monitor stats" et des résultats HTTP. Ces données peuvent sauvegardées pendant l'exécution des tests. Test de sécurité : utilisation de la classe sql_inject Vu que c est une application Web qui est accessible de l extérieur et qui collecte des informations saisi par des utilisateurs divers. Il convient d instaurer un minimum de control sur les requêtes destinées à la base de données. L utilisation d une classe PHP nommé "SQL_INJECT" permet de résoudre le problème. Elle analyse les valeurs qui sont destinées aux requêtes SQL, avant qu elles ne compromettent le serveur. V. Module critique : Une petite analyse de l application montre la présence d un module critique, qui doit fonctionner correctement car si tel n est pas le cas il en va d un dysfonctionnement général de l application. Le module critique est celui de l ajout qui se charge de traiter et de sauvegarder les informations dans la base de données. Qui est exploité par tous les autres modules de l application. Raison pour la quelle ce module mérite une attention particulière de la part des développeurs afin que la fiabilité de l application ne soit mis en doute. 8
VI. Conclusion : Nous avons faits un ensemble de choix tant sur la manière de tester l application que sur les outils de test à utiliser pour effectuer ces tests. Ces choix ont été faits de manière à augmenter le pourcentage de détection d erreur afin de pouvoir les corriger. Néanmoins, nous ne pouvons assurer la fiabilité de l application à 100% même si nous croyons qu après une application des méthodes de test proposés, une qualité suffisante de l application. Car nous devons malheureusement reconnaitre qu une application, peu importe laquelle n est jamais fiable à 100%. 9