5 Tests Pour Les Environnememnt Moderne

48
- infonuagique, applications Web, applications mobiles, applications multi-couches Stratégies de tests pour les environnements modernes

description

Tests pour les environnememnt moderne

Transcript of 5 Tests Pour Les Environnememnt Moderne

  • - infonuagique, applications Web, applications mobiles, applications multi-couches

    Stratgies de tests pour les environnements modernes

  • Gnralits sur la stratgie des testsUne stratgie de tests peut reprsenter 50% de la charge totale

    dun projet.La stratgie de test doit tre intgre au processus de

    dveloppement du logiciel. La stratgie de test dpend : De la criticit du produit raliser Du cot de dveloppement

    Une stratgie consiste dfinir : Les ressources mises en uvre (quipes, testeurs, outils) Les processus de test

    Finalement, la stratgie de tests tient compte : Des mthodes de spcification, de conception Du langage de programmation utilis Du type dapplication (temps rel, base de donnes) Lexprience des programmeurs etc.

  • Connectivit infonuagique : tests et assurance de rendement

    Le cloud computing, abrg en cloud ( le Nuage en franais) ou linformatique en nuage dsigne un ensemble de processus qui consiste utiliser la puissance de calcul et/ou de stockage de serveurs informatiques distants travers un rseau, gnralement Internet.

  • Assurer la qualit de l'offre des services infonuagiques

    Les clients tant de plus en plus intresss aux services infonuagiques, les fournisseurs de services doivent respecter les exigences de qualit des contrats de niveau de service s'ils dsirent capitaliser sur cette nouvelle source de revenue.

    Puisque les applications sont maintenant hbergs dans des serveurs virtuels, la transmission d'une connectivit infonuagique ncessite des services haute vitesse haut rendement et haute disponibilit qui permettent la connectivit vers (utilisateur au contenu) et entre (contenu contenu) les applications.

    EXFO lve maintenant le voile sur les tests et l'assurance de rendement des services infonuagiques.

  • Test Application Web

  • Les tests unitairesTester des classes c'est trs bien. Reste que PHP est avant tout un langage pour crer des fonctionnalits l'intrieur de pages web.Comment pouvons tester la partie de devant -- celle de l'interface -- dans nos applications en PHP ? Etant donn qu'une page web n'est constitue que de texte, nous devrions pouvoir les examiner exactement comme n'importe quelle autre donne de test.SimpleTest comprend une forme spciale de scnario de test pour tester les actions d'une page web.WebTestCase inclut des facilits pour la navigation, des vrifications sur le contenu et les cookies ainsi que la gestion des formulaires. Utiliser ces scnarios de test ressemble fortement UnitTestCase class TestOfLastcraft extendsWebTestCase { }

    http://www.simpletest.org/fr/web_tester_documentation.html

  • Test Web

    La problmatique:

    Gnralement, une fois le dveloppement de lapplication termine, elle est mise en production.

    Seulement voil, le succs peut arriver rapidement et il convient donc de vrifier au minimum si lapplication est viable avec un grand nombre dutilisateurs.

    Pour vrifier cela, il suffit de lancer des tests de charge (stress tests en anglais) sur son application (idalement dans un environnement proche de celui de production).

    http://www.dotnetdojo.com/10-outils-de-tests-de-charge-pour-votre-application-web/

  • Les Tests de CHARGE On expose lapplication des conditions

    dexploitations pour valider le systme.

    Objectifs : Tester la performance Maintien des fonctionnalits sur une monte

    en charge Fiabilit (plateforme, BDD)

  • Les Tests de CHARGE (suite)Principaux type de tests de charge :

    - Test de performance - Test de dgradation des transactions- Test de stress- Test dendurance, de robustesse, de fiabilit- Test de capacit, de monte en charge

    Quand mener les tests de charge ? Le plus tt possible dans le processus de dveloppement

    fin de mettre en vidence rapidement les dfautsdinfrastructure.

  • Les Tests de CHARGE (suite)

  • Les outils de tests de charge (1)Pylot est un outil open source, gratuit, pour tester les performances et

    la monte en charge de services web. Loutil permet de crer des requtes concurrentes, de vrifier les types

    de rponse (ex: HTTP 200) et de produire des rapports.Les tests sont crits en XML ce qui est donc facile daccs. Loutil peut aussi tre contrle avec Python ou Perl par exemple.

  • Les outils de tests de charge (2)Multi-Mechanize est un peu le successeur de Pylot. Les concepts

    ne sont pas identiques. Pour crire des tests de charge, il faudra connaitre Python.Par contre, loutil est sympa car il gnre des rapports avec de beaux graphiques (temps de rponses / nombre de connexion).

  • Les outils de tests de charge (3)Tsung est un outil open source, gratuit et surtout multi-protocole. Il

    permet de faire des tests de charge sur HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP et Jabber/XMPP.

    Loutil est bas sur des plugins, ce qui permet dajouter des protocoles facilement (vous pouvez en crire vous-mme).

    Tsung peut aussi mesurer le niveau dutilisation du CPU et de la mmoire sur un ou plusieurs serveurs. Ceci permet donc de mesurer plus finement lutilisation de votre serveur (pas seulement le temps de rponse par exemple).

  • Les outils de tests de charge (4)JMeter est un outil trs connu de la suite Apache. JMeter est une

    application Java, ce qui permet de la lancer sur toutes les plateformes. Elle propose une interface visuelle (GUI) pour crer de tests assez simplement. JMeter est trs puissant et je lai souvent utilis sur des projets.

    Il permet de tester les protocoles Web (HTTP, HTTPS, SOAP): Base de donnes (via JDBC), LDAP, Email (SMTP, SMTPS, POP3, POP3S et IMAP).

  • Les outils de tests de charge (5)WCat (Web Capacity Analysis Tool) est un outil gratuit de test de

    charge propos par Microsoft pour son serveur IIS. Loutil permet de simuler des centaines de connexions un ou plusieurs site internet. Il est extensible par des DLL que vous pouvez crire.Loutil se lance en ligne de commande et peut se scripter (wscript).

  • Les outils de tests de charge (6)ab est un petit outil que lon retrouve trs souvent dans les vidos

    de dmonstration de Microsoft. En fait, loutil permet de lancer des requtes parallles plusieurs fois la suite. Il retourne ensuite les mtriques sur le temps de rponse (min, max, moyen), le nombre de rponses valides, etc.

    Loutil est propos dans la suite Apache.Il faut donc tlcharger Apache pour Windows pour lutiliser.

  • Les outils de tests de charge (7)http_load est un outil simple qui fait bien son travail.

    Lapplication permet dappeler une URL plusieurs fois avec plusieurs connexion simultanes. Loutil permet donc de tester la charge pour une page seulement. Il retourne les rsultats en ligne de commande (temps de rponse, dure / requte, nombre de rsultats valides).

  • Les outils de tests de charge (8)

    Web Polygraph est une application gratuite de tests de charge multi-protocole. Loutil supporte HTTP, FTP, les proxys HTTP et SOCKS. Il gre aussi lauthentification HTTP ou par LDAP.

  • Les outils de tests de charge (9)

    fwptt est un petit outil simple qui permet denregistrer des requtes partir dun navigateur (requtes normales ou AJAX). Vous pouvez ensuite charger le script pour le rejouer plusieurs fois. Ce qui est sympa, cest que le script gnr est du C#. Vous pouvez donc en faire ce que vous voulez (par exemple, lancer 10 threads avec le mme script).

  • Les outils de tests de charge (10)Curl Loader est un outil gratuit, open source, qui permet de simuler des

    connexions simultanes grce des scnarii clients. Il peut aussi simuler des connexions depuis plusieurs IP. Vous pouvez par exemple lui demander de lancer un scnario utilisateur compos dune page dauthentification, de pages de navigation dans le suite, puis dune page de dconnexion (ce qui ressemble au parcours dune vraie personne).

    Loutil gre les cookies, plusieurs protocoles (HTTP(S), FTP(S), SCP, SSH, LDAP, TFTP, Telnet).

  • Les outils de tests de charge (11)Selenium - lorigine, il est une framework de tests fonctionnels

    pour des applications Web. Nanmoins, il peut tre utiliser comme outil de tests de charge. En effet, Selenium permet denregistrer des squences de navigation depuis le browser (Firefox). Ces squences peuvent ensuite tre scriptes, variabilises puis rejoues plusieurs fois depuis plusieurs machines en parallle.

    Bref, vous aurez tout ce quil faut pour lancer des requtes proche dun vrai scnario de navigation.

  • Apres le test dune application il faut savoir rpondre aux questions essentielles :1. Mon site web pourra-t-il supporter la charge d'utilisation attendue (et inattendue) ?2. Combien d'utilisateurs simultans mon application pourra-t-elle supporter ?3. Les performances de mon application risquent-elles de se dgrader si plus

    dutilisateurs se connectent depuis diffrentes zones gographiques ou avec diffrents terminaux mobiles ?

  • Outils pour scuriser un site (1)Voici une liste des outils: sqlsus The Mole SET (Social Engineer Toolkit) PHP Vulnerability Hunter AcunetixWeb Vulnerability

    Scanner NaxsiWeb Application Firewall w3af (Web Application Attack &

    Audit Framework) WPScan (Wordpress Security

    Vulnerability Scanner)

    WAVSEP Uniscan Lilith Joomscan Security Scanner WAFP (Web Application

    Finger Printer Tool) iScanner GoLISMERO WebSurgery Arachni Websecurify

  • Outils pour scuriser un site (2) Sqlsus est un outil open source crit en perl conu pour tester les

    injections SQL sur votre site web. Celui-ci fonctionne en ligne de commande, vous pouvez rcuprer

    la structure d'une base de donne, injecter vos propres requtes SQL, tlcharger des fichiers depuis le serveur, explorer le site pour voir les rpertoires accessibles en criture, envoyer et contrler une backdoor sur le serveur et bien plus.

    Pour en savoir plus et tlcharger le script, c'est par ici : http://sourceforge.net/projects/sqlsus/

    Comme tout outil d'injection SQL, sqlsus va imiter une sortie de la console MySQL.

  • Outils pour scuriser un site (3) SET (Social Engineer Toolkit) - un ensemble d'outils personnaliss

    permettant d'augmenter et de simuler des attaques de typesocial-engineering afin de pouvoir tester comment une attaque peut russir sur votre serveur.

    Pour l'instant celui-ci supporte deux mthodes d'attaque principales, une utilisant des Metasploits et l'autre passant par un site virtuel malicieux envoyant des attaques Java.

    Il y a vraiment beaucoup dcouvrir avec cette application crite en python.

    A tlcharger via SVN ou prendre directement le tarball http://www.secmaniac.com/download/

  • Outils pour scuriser un site (4)

    Websecurify est un environnement de tests de scurit intgr tournant sur Windows, Linux, Mac. Il va identifier des vulnrabilits sur les applications web en utilisant des routines avances du navigateur.

    Le contrle est tout automatis mais on peut faire des tests manuellement. La plateforme est la seule du genre a tre construite autour du navigateur.

    Tlchargement et informations: http://www.websecurify.com

  • Outils pour scuriser un site (4)PHP Vulnerability Hunter est une application qui permet de dtecter

    presque toutes les vulnrabilits d'une application web crite en PHP. Cet outil est automatis afin de dtecter une large gamme de failles exploitables par un pirate.

    Le plus de ce scanner de vulnrabilits, c'est qu'il s'appuie sur une analyse dynamique contrairement la plupart d'autres outils de scurit qui passent le plus souvent via l'url. En effet, ici il faudra avoir le contenu du site web en local afin que l'application puisse fonctionner.

    Cela permet ainsi une meilleure couverture de code et un meilleur indice de confiance par rapport aux vulnrabilits. Cette application est compatible sur toutes les plateformes Windows.

    A tlcharger sur Google Code http://code.google.com/p/php-vulnerability-hunter

  • Tester la vitesse de votre site webSavez-vous que si le temps de chargement de votre page web est de 4

    secondes, vous perdez au moins 25% de vos visiteurs ? Chaque seconde compte. Plus rapidement votre site est charg sur lordinateur ou un tlphone portable, plus grande est la possibilit que le visiteur restera sur votre site internet.

    Pingdom permettra de tester la vitesse site web et il vous fournira galement des informations dtailles sur le chargement de chaque fichier sur la page en question.

  • Tester la vitesse de votre site web (2)Obtenez laide de Google PageSpeed Insights la fois pour la

    version standard et mobile de votre site web. Mettez le lien de votre site ou dune page particulire et cliquez sur Analyser .

    Google vous prsentera une liste des conseils pour amliorer le temps de chargement de la page selon la priorit des changements faire. Lorsque vous avez le rapport pour les ordinateurs, cliquez sur rapport sur mobile pour savoir sil y a des problmes avec la vitesse de votre site sur les mobiles.

  • Noubliez pas de tester son site sous plusieurs navigateurs

    Tout bon webmaster doit de vrifier la compatibilit de son site avec les navigateurs les plus courants. Mais il est possible, selon votre systme d'exploitation, que vous rencontriez des difficults tester l'un ou l'autre des navigateurs.

    IL Y A DES OUTILS POUR TESTER VOTRE SITE SOUS DIFFRENTS NAVIGATEURS

  • Tester un site sous plusieurs navigateurs (2)Adobe BrowserLab est un outil de compatibilit inter-navigateur

    libre, qui vous permet de tester un certain nombre de navigateurs modernes, y compris les diffrentes versions de Chrome, Safari, IE et Firefox. Le service peut accder des pages dynamiques travers le Web, ou des pages locales via Firebug ou Adobe Dreamweaver CS5. Vous pouvez choisir vous mme les diffrents navigateurs tester.

  • Tester un site sous plusieurs navigateurs (3)Browsershots est probablement l'outil de test le plus complet

    disponible gratuitement. Il comprend Linux, Windows et les navigateurs BSD.

  • Tester un site sous plusieurs navigateurs (4)SuperPreview est une offre de Microsoft (et il est compatible

    uniquement avec Windows). SuperPreview, dans son offre d'essai, est livr avec 60 jours de services de "cloud computing". Malheureusement, il n'existe pas de support pour Opera, qu'il soit install localement ou "on the cloud". Au final, donc, un outil pour tester votre site sur tous les IE (ce qui rsoudra certainement la majeure partie de vos problmes...)

  • Comment tester les applications mobiles?

    Test mobile

  • Comment tester les applications mobiles?Les applications mobiles ont connu un boom depuis l'arrive de la

    3G qui a permis d'avoir une connexion internet rapide avec des dbits satisfaisants.

    L'volution rapide de ces technologies d'accs et le march croissant de la mobilit ont favoris l'apparition de nouveaux OS mobiles comme Androde de Google, IOS d'Apple ou l'volution d'anciens OS comme Symbian de Nokia, Windows phone intgrant ces nouvelles technologies.

    mulation de rseau mobile Enregistre 100% des applications Simulation de terminal/navigateur Mtriques des tests en charge issuesde vritables terminaux mobiles Intgr au cloud

  • Donc, la variation de ces OS et le dveloppement croissant des applications mobiles demandent le test mobile et imposent la validation de ces applications sur les diffrents OS pour rpondre aux problmatiques de portabilit, de performance, de stabilit, etc..., mais aussi de permettre aux diffrents utilisateurs de pouvoir accder une application mobile quelque soit le type de mobile utilis.

    Cette validation porte gnralement sur les tests suivants : Les tests fonctionnels (couche applicative) Les tests de charge (couche applicative) Les tests d'interoprabilit IOT (couche physique) Les tests protocolaires ou procdures (couche 3 du rseau mobile) Les tests d'ergonomie Outils

    Il faut noter que, en gnral, les tests mobile reposent essentiellement sur les tests fonctionnels et de performance. En effet, les tests protocolaires sont souvent raliss par les constructeurs d'quipements mobiles.

  • Comment tester les applications mobiles?

  • 1. Les tests fonctionnelsDans ces tests, on spcifie d'abord les cas de tests permettant de couvrir toutes

    les exigences fonctionnelles de l'application avant de passer l'excution manuelle ou automatique sur les OS mobile cibls; en gnral Androde de Google, iOS d'Apple et Windows Phone.

    Cependant, il existe des socits qui fabriquent leur propre tlphone personnalis bas sur un OS cible comme Android en gnral, et donc les tests sont raliss que sur cet OS.

    Notez que dans ces tests fonctionnels, on trouve : les tests de non rgression qui permettent de s'assurer qu'une nouvelle

    version du logiciel n'a pas d'impact ngatif sur la stabilit de la version prcdente.

    les tests automatiss qui nous permettent d'viter la rptition manuelle de certains tests et donc, de gagner du temps sur les campagnes de validation.

    En gnral les tests de non rgression sont automatiss.

  • 2. Les tests de charge Ces tests sont raliss sur les applications web et natives du

    mobile. Le but est de mesurer la capacit du serveur rpondre plusieurs connexions simultanes provenant des priphriques mobile pouvant utiliser les technologies 3G/4G pour accder l'internet mobile.

    Il faut noter que ces tests mobile sont trs importants grce l'internet mobile (3G/4G) qui permet aux internautes de se connecter facilement avec leurs Smartphones tout moment et n'importe o ils se trouvent.

    Dans ces tests, on enregistre les actions utilisateurs afin de les jouer par plusieurs utilisateurs virtuels pour simuler la connexion de plusieurs Smartphones simultanment.

  • 3. Les tests d'interoprabilit IOT Ces tests sont raliss en gnral dans les labos des oprateurs pour s'assurer

    que le mobile qu'ils vont proposer leur client est capable de communiquer correctement avec leur rseau sans perturbation.

    En effet, on trouve dans le rseau d'un oprateur plusieurs types d'quipements (BTS, MSC, VLR, etc...) mais avec des fournisseurs diffrents comme ALCATEL, MOTOROLA, ERICSON, etc...

    Cette varit d'quipements avec des fournisseurs diffrents permet l'oprateur de rduire les cots de son rseau en faisant jouer la concurrence, mais aussi d'viter d'tre dpendant d'un seul fabriquant au risque de se confronter l'obligation de renouveler compltement son rseau au cas o son principal fournisseur disparat.

    Ces quipements remplissent les mmes normes de fonctionnement d'un constructeur un autre ; mais la norme ne les oblige pas intgrer les mmes protocoles de communication. Ce qui explique le but des tests IOT qui permet de s'assurer que le mobile est capable de communiquer avec tous les types d'quipements du rseau de l'oprateur.

  • 4. Les tests protocolaires ou procdures (couche 3 du rseau mobile) Ces tests sont raliss par les fabricants de tlphonie mobile. Le

    but est de s'assurer que le mobile implmente correctement les procdures ou protocoles de niveau 3 (couche rseau), comme par exemple les procdures de mise jour de localisation, l'attachement sur une cellule convenable, les appels entrants et sortants, les handovers, etc....

    Dans ces tests, on trouve les Field test, les drive tests ou tests de mobilit, ainsi que les tests GCF.

  • 5. Les tests d'ergonomie

    Ces tests sont conus par des rgonomes et raliss par diffrents utilisateurs reprsentatifs de la cible, sur des scnarios cibls afin de dterminer les problmes d'utilisabilit de l'application dus une erreur de conception ergonomique (particulirement adapte aux conditions de travail de l'utilisateur).

    Afin de raliser ces tests mobiles deux options sont possibles, suivant la taille et la stratgie de votre entreprise: Soit externaliser ou sous traiter la ralisation des tests de vos

    applications mobiles; Soit slectionner et mettre en place des outils spcifiques.

  • Comment tester les applications de donnes multicouches?

    Applications de donnesmulticouches

  • Applications de donnes multicouches Les applications de donnes multicouches sont des applications de

    donnes qui sont spares en plusieurs couches. galement appeles applications distribues , les applications multicouches sparent le traitement en couches discrtes qui sont distribues entre le client et le serveur.

    Lorsque vous dveloppez des applications d'accs aux donnes, la sparation entre les diffrentes couches de l'application doit tre nette.

    Une application multicouche standard contient une couche de prsentation, une couche intermdiaire et une couche de donnes.

    La faon la plus facile de sparer plusieurs couches dans une application multicouche consiste crer des projets discrets pour chaque couche inclure dans votre application.

  • Matriser la complexit : les archis multicouches/n-tiers

    Lapplication devient complexe : Difficile dvelopper Difficile tester Difficile maintenir Difficile faire voluer

    Solution : les architectures multicouches Inspir par le dveloppement en couches des protocoles rseaux et des architectures base de composants

  • Les architectures multicouchesPrincipe

    Dcouper lapplication en un ensemble de composants (ou couches) fonctionnels distincts et faiblement coupls. Chaque composant est ainsi plus simple et lapplication

    distribue reste faiblement couple; Les composants communiquent entre eux sur le modle

    client/serveur Les composants de lapplication peuvent tre facilement

    rpartis sur plusieurs machines

  • Les architectures multicouchesLa plupart des applications dveloppes se ressemblent et se

    composent : De donnes De traitements (sur ces donnes) De prsentation (des donnes et des rsultats des traitements)