jeudi 29 décembre 2011

60 solutions de test open source en java comparées


Le site java-source.net  propose un récapitulatif des différentes solutions open source de test en java avec un petit descriptif de chaque outils. Vous pourrez ainsi vous faire une idée rapide de ce qui existe sur le marché :

http://java-source.net/open-source/testing-tools

Ci-dessous la liste des solutions étudiées par le site :

Comparatif solutions de test

Dans le cadre d'un stage en 2009 j’avais déjà eut l'occasion de faire des recherches sur les différentes solutions de tests pour des applications web.

Le résumé de mes recherches se résumait alors au tableau ci-dessous. Je ne sais pas s'il est toujours d'actualité, mais je pense qu'il donne déjà bien les grandes lignes des fonctionnalités des différents outils.


JMeter de Apache :
  • Prise en main  un peu plus longue que la moyenne mais facile d'utilisation.
  • puissant
  • gratuit
  • scripts pouvant être enregistrés et facilement adaptables
  • wrapper ANT, permettant d'exécuter des séries de tests et de générer des rapports HTML
  • autant d'users que l'on veut en fonction de ce que la machine supporte
  • key monitors donne de fausses informations ou ne marche pas.

OpenSTA :
  • pas mal de bugs
  • pas de module d'analyse des résultats
  • langage pas très instructif
  • il faut pas mal de macro excel pour s'en sortir.
  • pour des tests relativement "simples" il a un très bon rapport qualité/prix
  • fonctionne pas sur des applications fonctionnant en https
  • tout à fait utilisable pour des tests "classiques" en HTTP

LoaderRunner :
  • Très puissant (sans doute le meilleur du marché)
  • très bon pour windows, moins pour unix
  • prix très puissant également.
  • nombre d'utilisateurs limité en fonction du prix qu'on y met.

HTTPUnit :
  • Fonctionne bien
  • simple mais les tests doivent être écrits par un développeur (comparé a un autre comme JMeter)
  • permet d’automatiser le test de votre code au niveau Web pour vérifier le comportement du code JavaScript et du navigateur

Qaload :
  • facile d'utilisation
  • plus pratique que la moyenne des autres outils dans ce domaine.
  • nombre d'utilisateurs possible en fonction de la licence achetée (apparemment, coté prix de licence, le bas de gamme commence avec 5 zéros -> à confirmer)

WebLoad :
  • prix modéré
  • simplicité de scripting (c'est plus ou moins du javascript avec module de capture)
  • richesse de restitution
  • open source
  • pas beaucoup plus d'informations

Selenium :
  • 3 éléments (Core : sur le même serveur que l'appli, IDE : extension firefox, remote Control : serveur)
  • enregistrement des simulations
  • exécution des simulations automatisée
  • n'est pas fait pour tester des applis non-web : client lourd, service web, etc..., et n'est pas fait pour des tests de performance.
  • soucis avec AJAX et avec des sites avec beaucoup de javascript
  • ne sait pas gérer plusieurs fenêtres d'un navigateur (pop up)

The grinder :
  • même caractéristiques que JMeter en gros
  • UI qui montre clairement ce qui se passe
  • basé sur des scripts Jython

Comparaison générale Apache JMeter / Selenium


 Dans le début de mes recherches sur les solutions d'automatisation des tests fonctionnels, je suis tombé sur deux outils en particulier : Apache JMeter et Selenium.

La question que je me suis alors posé en toute logique a été : quel est la plus adaptée à ce que je cherche ?

Et la réponse la plus courte et la plus claire que j'ai pu trouvé à été celle-ci :

Apache JMeter is definitely tool for performance testing and load/stress tests. But you can use it also for functional tests as well (in your example: fill form ->check results but with checking if results are as expected - but better don't do functional testing with him)
For functional testing on the other hand there are Selenium and also Canoo web test.
So final answer will be to combine those two. (I was using JMeter for performance tests and canoo web test for functional testing, but I guess that Selenium is much better choice now)
Source : stackoverflow.com 

Pour faire plaisir aux non-anglophones, voici en gros la traduction :


Apache JMeter est un outil de tests de performances et de tests de stress. Mais vous pouvez aussi l'utiliser pour réaliser vos tests fonctionnel, cependant ce n'est pas son fonctionnement de base donc il ne vaut mieux pas l'utiliser pour ce genre de tests.
Par contre Il existe deux autres solutions qui sont Selenium et aussi Canoo web test qui sont spécialisées dans les tests fonctionnels.
Du coup l'auteur de ce post utilisais JMeter d'un coté pour les performances et Canoo web test pour les tests fonctionnels. Mais Selenium semble aujourd'hui un meilleur choix.

Comparaison Load Runner, The Grinder, Apache JMeter


Si vous vous demandez quelle est la meilleure solution entre Load Runner, The Grinder et Apache JMeter, cet article est pour vous :

The Black Anvil: Shootout: Load Runner vs The Grinder vs Apache JMe..

L'auteur y fait une comparaison très détaillée et minutieuse des qualités et défauts de chaque outils (en anglais) et permet de se faire un premier avis avant de d'avoir à les installer pour les tester.

Les tests

Comme vous avez surement dû le voir dans les présentations précédentes ou dans votre expérience de qualiticien, une partie très importante de la qualité est la partie des tests, et encore plus pour ce qui concerne les logiciels et applications.

Plusieurs types de tests existent : tests unitaires, tests de non régression, tests de charge, etc...

Mais l'utilisation et l'importance de ceux-ci se résume au schéma ci-dessous :

Free training on quality management

Entrainement au management de la qualité dans un contexte de développement logiciel (en anglais) :


Quality Management

Présentation des fonctions de responsable qualité (en anglais) :


Conférence: L'assurance qualité au-delà de la qualité logicielle

Conférence donné par Georges Saad sur l'utilité de l'assurance qualité:

Mon avis : Très bonne présentation générale de tous les points importants de la mise en place d'une assurance qualité pour un logiciel.

Création du blog

En créant ce blog, je n'ai pas la conviction de donner une méthode parfaite pour mettre en place un service qualité dans une entreprise.

Je veux juste mettre à disposition les informations que je récupère au fur et a mesure de mes recherches depuis que l'on m'a confié la responsabilité d'assurer le suivi qualité des applications de mon entreprise.

Tout est déjà disponible sur internet mais il n'existe pas de site référençant de façon concise et objective les différentes techniques et solutions que l'on peut utiliser pour améliorer la qualité d'une application web.

C'est pourquoi, tout en essayant de déployer les différentes solutions disponibles au sein de même de mon entreprise je souhaite proposer au personnes qui veulent faire la même chose de leur côté, toutes les informations intéressantes que je pourrai trouver pour m'aider dans cette mission.