J'ai effectué un rapide tour d'horizon des solutions existantes de Cloud Testing et je voulais le partager avec vous. Cet article ne se veut ni exhaustif ni une réelle évaluation de chaque solution. N'hésitez pas à commenter cet article pour compléter ou préciser un élément.
Qu'est ce que le Cloud Testing?
Le Cloud Testing consiste en utilisation de ressources disponibles sur Internet pour tester une application logicielle qui est dans la grande majorité des cas elle aussi disponible sur Internet. En clair, lorsque vous voulez tester un site internet, vous avez besoin de machines qui se connectent à votre site pour vérifier le bon fonctionnement. Si vous n'avez pas le nombre ou la diversité (versions d'OS et de navigateurs) de machines suffisantes, vous pouvez faire appel à une société qui vous proposera d'éxecuter vos tests sur ses propres machines. Le Cloud Testing reprend les mêmes principes que le Cloud Computing pour permettre la validation d'un site internet.
Cela peut donc se révéler très intéressant pour effectuer des tests de charge et de performance d'un site mais aussi pour diminuer les coûts d'une plateforme de test digne de ce nom. Tester un site avec les différents systèmes d'exploitation et de navigateurs peut en effet demander d'avoir plusieurs machines de tests. Le Cloud Testing a une approche SAAS, vous payez pour ce que vous utilisez réellement. Autre intérêt: avoir une plateforme de test indépendante localisée en dehors de votre réseau ce qui est ilmportant quand on sait que la réaction numéro 1 d'un développeur face à un bug est "Je comprends pas, ça marche sur ma machine".
Les principales fonctionnalités que l'on retrouve sont
- Facturation à la demande: vous payez pour ce que vous utilisez
- le support de Selenium qui s'impose de plus en plus commme LE framework de test d'applications web
- Le support des principaux navigateurs du marché: peut-être n'avez vous pas dans votre parc de machine de version de Safari sous MAC ou de machines avec Internet Explorer 6. Avant de vous lancer dans une installation, réfléchissez à l'utilisation du Cloud Testing
- Les captures d'écran ou vidéo des tests ainsi que les logs HTTP pour vous permettre de diagnostiquer plus facilement un bug
- Le mode "firewall-friendly" pour tester l'application sur un serveur de pré-production interne à votre réseau d'entreprise. Cela rend aussi possible le test d'applications Intranet pour des grandes entreprises par exemple.
Voici donc 5 offres dont j'ai essayé de comprendre le positionnement et l'intérêt qu'elles représentent.
SOASTA
SOASTA se présente comme le leader des solutions de CloudTesting et propose une offre de service globale qui inclut du consulting. Malheureusement pas de support de Selenium pour concevoir les tests mais un outil graphique basé sur l'enregistrement des actions utilisateurs (qui semble similaires à celui de Selenium IDE). SOASTA semble adapter pour tous les types de tests que ce soient des tests fonctionnels simples ou bien des tests de charge en simulant des millions d'utilisateurs sur le web. Les tarifs ne sont pas directement accessibles sur le site mais SOASTA annonce qu'avec leur service un test de charge qui aurait coûté des centaines de milliers de dollars ne coûte seulement que quelques centaines de dollars.
PushToTest
PushToTest propose une offre autour de son outil TestMaker disponible sous version OpenSource. L'approche semble la aussi une offre globale (outil de développement de test, consulting et cloud computing) taillée pour tous les types de test. Un plus avec la possibilité d'utiliser des tests écrits avec d'autres outils en particulier avec Selenium.
La non plus pas de prix en ligne même si le faible coût fait partie des points principaux mis en avant.
CloudTesting
CloudTesting, qui a eu la bonne idée de créer une société avec le nom générique, propose de réaliser du test fonctionnel en disposant de machines avec les principaux navigateurs du marché. Les tests doivent être réalisés avec Selenium IDE puis uploadé vers le serveurs du cloud. Il est possible de programmer à l'avance l'exécution des tests. Un rapport d'exécution donne ensuite la possibilité d'analyser les résultats et de visualiser par exemple les temps de chargement d'une page. Le coût paraît raisonnable 11 centimes d'euros par test pour 500 tests en mode Pay-As-You-Test, 3 centimes pour 1000 tests en mode abonnement mensuel. Malheureusement pas de possiblité de faire des tests de charge avec cette solution.
SauceLabs
SauceLabs est aussi une solution construite autour d'un outil, Sauce RC qui est une version de Selenium RC avec un contrat de support. SauceLabs se positionne aussi uniquement sur du test fonctionnel en mettant à disposition des navigateurs Internet. Vous exécutez vos tests sur votre machine de développement mais le navigateur que vous contrôler n'est pas installé sur votre machine mais sur une machine du cloud de SauceLabs. Pour vos scripts de test, c'est transparent et cela vous permet de tester facilement un site avec les différents navigateurs sans avoir à posséder une machine de chaque type. Vous pouvez ensuite diagnostiquer les problèmes grâce à une vidéo qui enregistre l'ensemble des opérations effectués. La facturation s'effectue à la minute: 10$ pour 100 minutes en mode prépayé ou 7$ pour 200 minutes en mode mensuel. Un prix raisonnable et qui peut justifier de ne pas réinstaller une machine sous Windows XP et Internet Explorer 6.
BrowserMob
BrowserMob m'a été indiqué par les supports de CloudTesting et de SauceLabs comme le complément de leurs solutions. Il permet de faire des tests de performances (temps de chargement d'une page et de chacun de ses éléments) et de charge (comportement face à un grand nombre de connexions en parallèle). Les tests effectués avec BrowserMob doivent être réalisés avec Selenium IDE. Les tarifs sont en accès libre sur le site et paraissent intéressant comparés à ce que coûterait de réaliser le même test sans CloudTesting.
BrowserMob est aussi un outil de monitoring de site internet qui vous permet de recevoir une alerte si votre site est indisponible à cause d'une erreur. Il existe de plus une option gratuite pour vérifier toutes les heures 1 page de votre site.
Le but de cet article est de simplement présenter quelques offres. De mon point de vue, le CloudTesting est une approche très intéressante pour permettre à un tarif modéré d'étendre les capacités habituelles pour le test d'applications Internet. Personnellement, j'aime bien l'approche des 3 dernières offres qui sont spécialisées sur un besoin précis. Mais je n'ai pas assez de recul pour pouvoir donner un avis définitif. Je serais très content de lire vos commentaires si vous avez déjà utilisé le CloudTesting ou si vous avez des précisions à apporter.