Gestion et automatisation des tests : Squash TM et Squash TA en version 1.4.0

Posté par  (site web personnel, Mastodon) . Modéré par Nÿco.
26
4
fév.
2013
Technologie

Le projet libre (GPLv3) Squash avance à très grand pas. La version 1.4.0 des modules de gestion du patrimoine de tests (Squash TM) et de celui d'automatisation des tests (Squash TA) ont été livrés le 21 décembre dernier. Depuis notre dernière dépêche sur la version 1.1 de Squash TM en avril dernier, beaucoup de nouvelles fonctionnalités ont été ajoutées.

Logo Squash

Revenons donc, dans la suite de cette dépêche sur le nouveau module, Squash TA et les nouveautés de Squash TM depuis la version 1.1

Sommaire

Squash TA, le petit nouveau

Présentation

Logo Squash TA
Commençons par présenter le nouveau module. Arrivé en juin dernier, Squash TA permet d'automatiser les tests fonctionnels et d'industrialiser leurs exécutions. Il est compatible avec plusieurs automates open source, il permet de gérer les tests automatisés d'applications Web (via Sahi, Selenium 1 et 2), de webservices (via SoapUI) et de batchs (via Squash-TA-Batch, un automate développé par le projet Squash).
Architecture Squash TA
Concrètement, Squash TA est un framework écrit en Java et intégré dans deux packages différents :

  • Squash TA Toolbox : 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. Il comprend un plugin Eclipse apportant une meilleur ergonomie pour la réalisation des tests automatisés. Ce plugin peut-être téléchargé seul.
  • 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.

Liste détaillée de fonctionnalités

Pour démarrer, le projet met à disposition un petit tutoriel illustré qui vous permettra de réaliser l'ensemble des fonctionnalités suivantes pour le moment :

  • Création de cas de test automatisés :
    • Écriture simple, grâce à un DSL (pas de langage de programmation).
    • Structuré en 3 phases : setup (pré-opération), run (interaction avec le SUT), teardown (post-opération).
    • Gestion de templates de projet.
  • Gestion de campagnes de tests automatisés :
    • Orchestration de l'exécution de plusieurs cas de tests automatisés (quel que soit le SUT et l'automate utilisé).
  • Interaction avec le SUT avec comme mentionné, Sahi, Selenium, SoapUI et 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).
  • Exécution des tests automatisés :
    • Localement, sur le poste de l'automaticien.
  • 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.
  • Plugin Eclipse :
    • Assistants :
    • Assistant de création de projet TA.
    • Assistants de création de Target : ftp, ssh, http, database.
    • Aide à la saisie des scripts automatisés (éditeur de fichiers TA) :
    • Coloration syntaxique
    • Auto-complétion
  • Points d'extension :
    • Le framework comprend des nombreux points d'entrée, qui permettent d'implémenter de nouveaux types de ressources, opérations et assertions.
  • Serveur d'exécution centralisé (Squash TA Server)
    • Exécution centralisée des tests automatisés.
    • Connexion avec TM.
    • Pilotage des campagnes de tests par Jenkins.

Squash TM 1.4.0 : nouveautés et feuille de route

Logo Squash TM
Depuis 10 mois lors de sa présentation détaillée ici même, le gestionnaire de tests s'est particulièrement étoffé sur pas mal d'aspects :

  • Améliorations transverses
    • Création d'un lien entre Squash TM et Squash TA,
    • Prise en charge des tests automatisés directement dans TM,
    • Mise en place de vues transverses entre les différents espaces,
    • Ajouts multiples (champs personnalisés, templates de projets, etc.)
  • Améliorations sur la partie bugtracking
    • Amélioration de l'intégration entre le bugtracker et Squash TM : l'accès au bugtracker est intégré à la barre de navigation de Squash TM.
    • Prise en charge de JIRA,
    • Prise en charge de bugtrackers multiples,
  • Amélioration sur la génération de rapports
    • Création des rapports sous forme de plugins désormais
    • Ajout de nouveaux rapports
    • Couverture qualitative de l'exécution
  • Améliorations aux modules d'import/export
    • Import d'exigences au format CSV / XLS / Calc
    • Export en CSV des cas de test
  • Perfectionnement de la partie administration
    • Affinage de la gestion des habilitations en introduisant la notion de 'profil',
    • Bloc de statistiques
    • Retouches ergonomiques

Captures d'écran Squash TM

Pour le (proche) futur, Squash TM devrait être en mesure de variabiliser les tests, importer des cas de test au format CSV/XLS/Calc, gérer les releases, ajouter des assistants et pouvoir créer des liens et dépendances entre exigences. L'ensemble des nouveautés présentes et à venir est détaillé dans la feuille de route du projet. Et le site de démonstration de Squash TM est lui aussi passé en version 1.4

Rappels sur le projet Squash

Logo Squash
Pour rappel, Squash est un projet libre dont l'objet principal est la structuration et l’industrialisation des tests fonctionnels et plus largement de la qualité logicielle. Squash TM et Squash TA n'en sont que les deux premières briques. À terme, le projet souhaite adresser plusieurs domaines de la qualification fonctionnelle :

  • La gestion du référentiel de tests, avec Squash TM (Test Management), l'outil pivot de la suite permettant la gestion du patrimoine de tests, à l'instar de Salomé-TMF ou encore TestLink ;
  • L'automatisation des tests de non régression avec Squash TA (Test Automation), comprenant modélisation des scripts, lancement des campagnes automatisées, reporting, etc. ;
  • La gestion des jeux de données avec Squash Data comprenant l'extraction, l'échantillonnage, l'anonymisation, le stockage, le chargement dynamique, la maintenance des données, etc. ;
  • Le pilotage et administration de Centre de Services Qualité Logicielle assuré par Squash SC (Services Center) pour tous les aspects de planning, gestion des ressources, suivi des demandes, GED, supervision des outils et environnements.

Les deux dernières briques devraient être disponibles plus tard dans l'année.

Aller plus loin

  • # comparaison avec test link et petites questions

    Posté par  . Évalué à 3.

    Bonjour,

    Au boulot nous utilisons test link que je trouve assez lourd et perfectible sur certains point (notamment sur les liens entre exigences et cas de test pas souvent très clair).

    Quel sont les principales différences (technique et fonctionnelle) entre Squash Tm et testlink?
    Une migration de l'un a l'autre se fait facilement?
    Y a t-il une intégration avec des forge existante comme redmine ou autre?

    En tout cas, je viens de prendre 30 secondes pour cliquer un peu partout sur la démo ça a l'air déjà moins austère que testlink, il va falloir que je test cela en profondeur.
    Dernière petite question sur les rapports, sont-ils extensible facilement (oui mon chef c'est un vrai chef, il aime les reporting)?

    • [^] # Re: comparaison avec test link et petites questions

      Posté par  (site web personnel) . Évalué à 3.

      Henix, l'entreprise qui est derrière va bien trop vite dans l'enthousiasme. Les bugs sont encore tellement nombreux que la dénomination 1.x n'est pas justifiée, et l'entreprise ne joue pas le jeu du libre avec ceux qui lui servent de béta-testeurs.

    • [^] # Re: comparaison avec test link et petites questions

      Posté par  . Évalué à 4. Dernière modification le 06 février 2013 à 14:00.

      @Bibitte,

      Faisant parti de l'équipe Squash, je peux vous fournir quelques éléments de réponse :

      Quel sont les principales différences (technique et fonctionnelle) entre Squash Tm et testlink?

      Les principales différences (macro) sur le plan fonctionnel :

      • La philosophie de Squash TM se rapproche de celle de QC
      • L'ergonomie de Squash TM est basée sur les standard du Web 2.0 (copier/coller, glisser-déposer, etc.)
      • Squash TM est inter-projets (vous pouvez "appeler" des exigences et cas de test d'un projet A, à partir d'un projet B)
      • TestLink propose un reporting plus riche que celui de Squash

      Les principales différences (macro) sur le plan technique :

      • TestLink est codé en PHP, Squash en Java

      Une migration de l'un a l'autre se fait facilement?

      Non : il n’existe pas d'outil de migration et les imports/exports de l'un ne sont pas compatibles avec l'autre.

      Y a t-il une intégration avec des forge existante comme redmine ou autre?

      Non.

      Dernière petite question sur les rapports, sont-ils extensible facilement (oui mon chef c'est un vrai chef, il aime les reporting)?

      Un mécanisme de plugin permet de développer ses propres rapports, mais nécessite des connaissances en JasperReport, SQL et Java.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.