Comment choisir une solution de Cloud Testing ?

Une autoroute permet de circuler plus vite qu’une départementale, mais c'est bien le véhicule qui fait la rapidité et la fiabilité du voyage. De même, le test en charge depuis la cloud offre de nets avantages par rapport aux tests traditionnels. Mais ce sont les outils utilisés qui font la différence.

Les bénéfices du test en charge depuis le cloud sont les suivants :

• Réalisez des tests à grande échelle. Avec le cloud, vous pouvez mettre rapidement en place, à la demande, autant de serveurs de génération de charge que nécessaire.
• Réalisez des tests plus réalistes. Grâce au cloud, vous pouvez exécuter des tests en charge qui accèdent à votre application web comme le feront vos utilisateurs finaux – de l’extérieur du pare-feu – et valider toutes les composantes de votre chaîne applicative, incluant le pare-feu, le DNS, l’équipement réseau et l’ISP, depuis différents endroits et régions géographiques.
• Réduisez les délais et les coûts grâce au modèle Pay-as-you-go. Vous pouvez mettre rapidement en place l’infrastructure de test dont vous avez besoin, au moment souhaité et uniquement pendant le temps nécessaire.
Voici les questions que l’on peut se poser lorsque l’on s’intéresse aux solutions de Cloud Testing :

1. Dans quelle mesure la solution s’intègre-t-elle dans le cloud ?
2. La solution sera-t-elle capable de conduire des tests réalistes ?
3. La solution supporte-t-elle les tests unifiés à l’intérieur et à l’extérieur du pare-feu ?
4. La solution est-elle facile d’utilisation, ou plusieurs semaines de formation et de configuration seront-elles nécessaires ?
5. La solution inclut-elle des modules de reporting et d’analyse permettant à nos équipes d’exploiter les résultats au maximum ?
6. La solution supporte-t-elle les technologies utilisées par notre application ?

Intégration avec la plateforme Cloud
Si vous optez pour une solution qui n’est pas intégrée avec une ou plusieurs plateformes, vous devrez gérer plusieurs tâches chronophages par vous-même. Tout d’abord, vous devrez apprendre comment fonctionne chacune des plateformes que vous utiliserez, ainsi que ses limites et ses contraintes. Ensuite, vous devrez bâtir, tester et maintenir vos propres modèles de machines virtuelles.
Les solutions de test en charge qui proposent l’intégration avec le cloud simplifient et accélèrent les étapes nécessaires pour utiliser l’infrastructure cloud.
Ces solutions offrent un ou plusieurs des avantages suivants par rapport aux alternatives non-intégrées :
• Provisioning rapide basé sur les modèles préconfigurés.
• Sécurité simplifiée. Toutes les protections requises sont configurées par défaut.
• Évolutivité améliorée. Les fournisseurs leaders de solutions de test en charge ont des partenariats avec les fournisseurs de cloud pour permettre aux utilisateurs de leurs logiciels de s’appuyer sur plus de serveurs virtuels (spécifiquement pour le test en charge) que ceux autorisés par défaut.
• Une interface unifiée pour des fournisseurs de cloud multiples.
• Lancement de test avancé. Vous pouvez concevoir et lancer, rapidement et facilement, des générateurs de charge dans le cloud directement depuis l’interface de l'outil de test en charge.
• Reportings avancés. Analyser des résultats distincts selon les régions géographiques impliquées dans le test.
Bien sûr, peu de solutions proposent chacune de ces capacités d’intégration. La plupart des solutions pèchent sur un ou plusieurs points du spectre, entre peu ou pas d’intégration et une intégration complète avec de multiples plateformes cloud.

Tests réalistes
Bien que le test depuis le cloud soit, dans bien des cas, plus réaliste que le test en interne, le fait de simplement transiter vers le cloud ne suffit pas pour garantir les tests les plus réalistes. Les utilisateurs réels ont souvent accès à une bande passante moindre qu’un générateur de charge dans un datacenter cloud. Avec une connexion plus lente, l’utilisateur réel devra attendre plus longtemps que le générateur de charge pour télécharger toutes les données nécessaires à une page web ou une application.
Cela a deux effets majeurs :
• Les temps de réponse mesurés tels quels depuis le cloud avec une bande passante virtuellement illimitée sont meilleures que pour les utilisateurs réels.
•  Le nombre total de connexions établies avec le serveur vont augmenter car, en moyenne, les connexions pour les utilisateurs réels seront ouvertes plus longtemps que les connexions pour les générateurs de charge.
Lorsque vous choisissez une solution de test en charge, recherchez-en une proposant une fonction de simulation de la bande passante afin de s’assurer que les utilisateurs virtuels téléchargent le contenu de l’application web à un taux réaliste. De même, recherchez une solution capable de requêter les ressources des pages en parallèle, comme le font les navigateurs.
Unification des tests internes et des tests depuis le Cloud
Une solution qui supporte les tests internes permet aux ingénieurs de test de commencer par vérifier les performances d’une application en interne, avant de la rendre accessible via Internet. Cela permet de détecter et de corriger les problèmes de performance tôt dans le cycle de développement. Une telle solution permet de réduire le coût du cloud, en donnant aux équipes la possibilité de conduire des tests de performance internes sur les équipements existants lorsqu’ils sont disponibles.
Plus important, une solution unique qui supporte les tests internes et les tests depuis le cloud permet aux ingénieurs de test de réutiliser les scripts pour les deux types de tests, réduisant les délais et les efforts dédiés à cette tâche.
Facilité d’Utilisation
Dans les tests de développement et d’exécution plusieurs fonctionnalités clés permettent d’améliorer la productivité des ingénieurs de test, notamment pour :
• Lancer facilement l’enregistrement d’un profil utilisateur virtuel.
• Définir des comportements avancé.
• Traiter automatiquement les paramètres dynamiques. Cela inclut une suite de règles de corrélation pour les framewoks serveur les plus connus.
• Partager les parties de script communes, telles que les transactions de login et de logout, entre plusieurs profils d’utilisateurs virtuels.
• Comparer les résultats.
Analyse, Monitoring, Planification et Reporting
L’analyse en temps réel vous permet de détecter et comprendre les problèmes pendant que le test est en cours. L’analyse en temps réel vous permet de le stopper s’il menace de dégrader les performances et l’expérience des utilisateurs réels.
Un système de monitoring complet est essentiel lorsque vous avez besoin d’identifier les causes premières d’un problème. Des indicateurs de performance et des seuils d’alerte, prédéfinis sur la base des meilleures pratiques du marché, facilitent la mise en place et l’analyse des indicateurs. Si vous recherchez une solution non intrusive et plus facile à mettre en place, tournez-vous vers un outil qui supporte le monitoring à distance sans agents.
Si votre entreprise procède régulièrement à des tests de régression – et même si ce n’est pas le cas –, il peut être utile de programmer des tests de performance et de les exécuter automatiquement via la ligne de commande pour compléter les tests fonctionnels. Les tests en charge programmés régulièrement et générant automatiquement des rapports peuvent aider les entreprises à détecter les baisses de performance à l’instant où elles surviennent, ce qui facilite leur identification et leur correction.
Dernier point, le reporting est une fonction clé et essentielle pour communiquer les résultats de test aux autres membres de l’équipe ainsi qu’au management. Il peut être judicieux de considérer un outil supportant des formats multiples, comme PDF, Word, HTML et XML pour l’intégration avec les autres systèmes.
Support des Technologies Web
Pour tester les applications Siebel ou les applications bâties avec les technologies telles qu’Adobe Flex, Microsoft Silverlight, Real-Time Messaging Protocol (RTMP), Oracle Forms ou AJAX Push, vous avez besoin d’un outil de test en charge intégrant de manière native le support pour les technologies que vous utilisez. Sans ce support spécialisé, il peut être très difficile de tester efficacement les performances de vos applications.
De même, la solution de test en charge que vous choisirez devra prendre en charge les mécanismes d’authentification utilisés par vos applications, qu’il s’agisse de Basic, Digest, NTLM ou Kerberos. Sans quoi vous ne serez pas en mesure de mettre en place un profil d’utilisateur virtuel permettant de tester l’application dans des conditions réelles.
Le cloud ouvre de nouveaux horizons pour améliorer l’échelle et le réalisme des tests en charge, tout en réduisant les délais et les coûts. Dans la pratique, le Cloud Testing est plus efficace lorsqu’il est combiné avec le test interne, grâce à un processus à deux phases ayant recours à de multiples fournisseurs de cloud.
Lors du choix pour une solution de Cloud Testing, gardez à l’esprit que le premier facteur de réussite n’est pas la simple transition vers le cloud, mais plutôt l’outil que vous utiliserez et la manière dont il exploitera la technologie cloud.