Vous êtes sur la page 1sur 48

Stratgies de tests pour les

environnements modernes
- infonuagique, applications Web, applications
mobiles, applications multi-couches

Gnralits sur la stratgie des tests


Une 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 unitaires


Tester 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 extends WebTestCase { }
http://www.simpletest.org/fr/web_tester_documentation.html

Test Web
http://www.dotnetdojo.com/10-outils-de-tests-de-charge-pour-votre-application-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).

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 dfauts
dinfrastructure.

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
Naxsi Web 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.
Comme tout outil d'injection SQL,
sqlsus va imiter une sortie de la
console MySQL.

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

Outils pour scuriser un site (3)


SET (Social Engineer Toolkit) - un ensemble d'outils personnaliss

permettant d'augmenter et de simuler des attaques de typesocialengineering 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 web


Savez-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...)

Test mobile
Comment tester les applications mobiles?

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 issues
de 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 fonctionnels


Dans 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.

Applications de donnes
multicouches
Comment tester les applications de
donnes multicouches?

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 multicouches


Principe
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 multicouches


La 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)

Vous aimerez peut-être aussi