Squash TA (Test Automation)

Logo Squash TA

Squash TA est un outillage open source d'automatisation des tests fonctionnels et d'industrialisation de leurs exécutions. Compatible avec plusieurs automates open source (exemple Selenium), il permet de gérer les tests automatisés d'applications Web, de webservices et de batchs.

Les fonctionnalités de Squash TA se basent sur des développements initiés en 2009 par la société Henix. Réalisés pour répondre aux besoins d'automatisation des TRA (Tierce Recette Applicative) de cette SSII, ces développements ont été reversés à la communauté Squash pour constituer le socle de Squash TA.

Ce que peut vous apporter Squash TA :

icon-helmet

Réaliser des tests automatisés robustes
Squash TA permet de construire des tests automatisés moins sensibles aux changements du SUT (System Under Test).

icon-gear

Industrialiser l'exécution de vos tests
Vos tests sont reproductibles à loisir grâce aux possibilités de contrôler le contexte et l'environnement d'exécution.

icon-suisse

Universel : TA pilote tous vos tests automatisés
Squash TA permet de gérer de nombreux types de tests automatisés : applications web, webservices, batchs. Par ailleurs, Squash TA peut être employé dans le cadre de méthodologies agiles et ATDD ...

icon-robot

Compatible avec les automates open source
Squash TA prend en charge les principaux outils open source : Selenium 1 et 2, Sahi, SoapUI...

Pour aller plus loin, Squash TA en 5 questions :

 Comment fonctionne Squash TA ?

Squash TA propose deux grandes familles de fonctionnalités : il permet à la fois de créer des scripts de tests automatisés et de gérer l'exécution de ces tests dans le cadre de campagnes de tests automatisés. La figure suivante illustre les principes de fonctionnement de Squash TA :

squash-ta-fonctionnement-testTests automatisés avec Squash TA

Par rapport aux tests automatisés traditionnels, qui se contentent en général d'interagir avec le SUT en utilisant un automate de test (exécution de clic/contrôles sur une IHM, appel d'un webservice...), Squash TA propose une approche plus robuste, en complétant cette interaction avec le SUT avec des phases de tests complémentaires : les phases de setup et de teardown.

La phase de "Setup" permet d'ajouter des actions préalables à la sollicitation du SUT, permettant ainsi de préparer l'environnement d'exécution du test. Par exemple, il peut s'agir d'injecter un jeu de donnée dans la base de donnée du SUT ou de déposer un fichier en entrée d'un batch. Cela permet de s'assurer que le test se déroulera dans des conditions maîtrisées et donc reproductibles, conditions indispensables pour industrialiser l'exécution de ses tests.

La phase de "Teardown" quant à elle, permet d'aller plus loin que le simple test de sollicitation du SUT pour faire des vérifications complémentaires. Par exemple, aller vérifier dans la base de données les modifications effectuées par le test, ou vérifier le contenu d'un fichier généré par un batch.

Entre ces phases, Squash TA gère une phase de "Run" qui consiste en général à exécuter le script de l'automate permettant de solliciter le SUT. Cette phase correspond à l'approche traditionnelle de l'automatisation. Pour cette phase Squash TA pilote des automates open source tiers comme Selenium, Sahi ou encore SoapUI, et ajoute également des fonctionnalités permettant de piloter un batch.

Pour chacune de ces étapes, Squash TA propose un certain nombre d'automatismes. Par exemple :

Squash TA a été conçu selon une architecture extensible : vous pouvez compléter l'outil avec de nouveaux automatismes ou modifier/paramétrer les fonctionnalités existantes pour les adapter à votre contexte.

squash-ta-fonctionnement-cpgExécution industrialisée des tests automatisés avec Squash TA

En plus d'une nouvelle approche des tests automatisés, Squash TA propose d'industrialiser l'exécution des tests automatisés. Cette industrialisation de l'exécution s'entend de différentes manières :

  • Exécuter des campagnes regroupant plusieurs tests automatisés et générer le reporting consolidé.
  • Piloter les campagnes en garantissant l'indépendance d'exécution des tests (si un test échoue, les autres tests peuvent quand même être exécutés).
  • Gérer des tests automatisés hétérogènes, tant en terme de technique d'automatisation que de technologies de SUT à tester. Avec Squash TA, il devient par exemple possible d'exécuter au sein d'une même campagne : des tests d'une application web avec Selenium, des tests de services avec FitNesse, des tests de batchs...
  • Intégrer le lancement des tests automatisés dans le processus d'intégration continue.

 Quel est l'intérêt de Squash TA par rapport à un automate comme Selenium ?

Comme indiqué ci-dessus, Squash TA complète les automates comme Selenium, il ne les remplace pas. Ces automates sont puissants et font très bien ce pour quoi ils ont été créés : interagir avec le SUT. Squash n'a donc pas vocation à réécrire un automate mais à intégrer et piloter les automates open source du marché.

Pourquoi dans ce cas utiliser Squash TA ? Tout simplement car ces automates se limitent à interagir avec l'application à tester en simulant des actions IHM (application webs) ou en appelant des services (webservices). Or, cela ne suffit pas pour garantir que le test automatisé sera reproductible. Squash TA propose donc de compléter ces tests avec des fonctionnalités diverses permettant par exemple de gérer les jeux de données et de faire des vérifications complémentaires à l'issue des tests. Des exemples de fonctionnalités sont présentés ci-dessus.

Squash TA est compatible avec les automates suivants :

  • Selenium 1 et 2 (applications web)
  • Sahi (applications web)
  • SoapUI (webservices)
  • Squash-TA-Batch (automatisation des batchs, nouvel automate développé par les équipes Squash pour piloter les batchs)

Par ailleurs, Squash TA a été conçu selon une architecture flexible et modulaire. Vous pouvez développer vos propres connecteurs pour intégrer d'autres automates. Par exemple : FlexMonkey pour automatiser des tests flash, TestComplete pour les tests de clients lourds, etc....

 Squash TA, c'est quoi ? Une appli web ? Un framework ? Un batch ?

Squash TA est un framework écrit en Java. Ce framework est intégré dans deux packages différents : Squash TA Toolbox et Squash TA Server.

Squash TA Toolbox package l'ensemble des outils nécessaires à la réalisation des scripts de tests automatisés. Outre le framework Squash TA, ce package se compose d'outils open source comme Eclipse, Jailer (création des jeux de données), Selenium, Sahi, SoapUI, etc.

Squash TA Server permet de déployer Squash TA pour mettre en place un serveur d'exécution. Ce package est par exemple nécessaire pour connecter Squash TA avec Squash TM. En plus du framework Squash TA, il se compose d'outils comme Jenkins et Maven, et des automates Selenium, Sahi, SoapUI, etc.

 Est-ce que Squash TA et Squash TM fonctionnent ensemble ?

squash-ta-fonctionnement-testOui. Bien que Squash TA puisse être utilisé indépendamment de Squash TM, les deux outils peuvent être connectés. En utilisant conjointement ces deux outils, vous pourrez bénéficier des fonctionnalités suivantes :

  • Lier, dans Squash TM, les cas de tests manuels avec leur version automatisée avec TA. Vous gardez ainsi la traçabilité avec l'exigence et l'ensemble des fonctionnalités proposées par Squash TM peuvent s'appliquer aux tests automatisés.
  • Ajouter dans un plan de test unique, les tests automatisés et les tests manuels.
  • Lancer l'exécution des tests automatisés depuis Squash TM.
  • Récupérer dans le plan de test de Squash TM, les résultats des tests automatisés. Les résultats de vos tests manuels et automatisés sont ainsi consolidés dans Squash TM.

 Quelles sont les fonctionnalités proposées par Squash TA ?

Voici quelques exemples de fonctionnalités proposées par Squash TA. L'ensemble des fonctionnalités existantes et futures sont décrites dans la roadmap de Squash TA.

  • Création de cas de test automatisés :
    • Ecriture simple, grâce à un DSL (pas de langage de programmation).
    • Gestion de templates de projet.
  • Interaction avec le SUT :
    • Applications web : prise en charge de Sahi et Selenium.
    • Web services : SoapUI.
    • Batchs distribués : Squash TA Batch.
  • Gestion d'opérations en base de données :
    • Exécution d'une requête SQL.
    • Exécution d'un script SQL.
    • Insertion, vérification et suppression de données à partir d'un dataset DbUnit.
    • Gestion du vieillissement des données : variabilisation des dates et substitution dynamique de dates au moment de l'exécution.
  • Gestion d'opérations sur fichiers :
    • Opérations FTP : dépôt, téléchargement et suppression de fichiers sur un serveur (S)FTP.
    • Gestion du vieillissement des données : variabilisation des dates et substitution dynamique de dates au moment de l'exécution.
    • Lecture/vérification/contrôle de fichiers séquentiel à champs fixes.
    • Lecture/vérification/contrôle de fichiers CSV.
    • Lecture/vérification/contrôle de fichiers TLV (à champs variables).

Reporting :

    • Publication de rapports d'exécution au format HTML.
    • Rapport d'exécution du test global.
    • Rapport détaillé en cas d'échec d'une vérification en BDD : comparaison ligne à ligne des résultats attendus / obtenus.
    • Rapport détaillé en cas d'échec d'un test Sahi.