Aller au contenu

Release notes de Squash TM 9.X

Installation et mise à jour automatique de la base de données

Squash TM 9.0 introduit un système d'installation et de mise à jour automatique de la base de données.
Celui-ci peut être configuré via le paramètre squash.db.update-mode dans le fichier squash.tm.cfg.properties. Les valeurs possibles et leurs effets sont décrits sur cette page.
Pour les installations de Squash TM dans Docker ou en tant que service Windows ou Linux (systemd), le mode forced doit être utilisé. (Dans l'image Docker fournie par Henix, ce paramètre est déjà défini à forced.)

Squash TM 9.0.0

Sortie le 30/01/2025

Évolutions

  • Exigences :

    • 256 L'option sélectionnée dans le filtre du tableau de bord de l'espace Exigences est persistée.
  • Cas de test :

    • Lors de la copie d'un cas de test généré par l'IA, l'indicateur "Proposé par l'IA" est conservé.
  • Exécutions :

    • 142 Le cas de test lié à une exécution est accessible depuis la page d'exécution.
    • 256 L'option sélectionnée dans le filtre du tableau de bord de l'espace Exécutions est persistée.
  • Anomalies :

    • Plusieurs anomalies peuvent être liées successivement à une exécution sans fermer la pop-up.
  • Reporting :

    • Dans les rapports éditables d'exigences et de cas de test, les images manquantes sont remplacées par leur texte alternatif ou par "image introuvable" en l'absence de texte alternatif.
  • Automatisation :

    • En cas d'échec d'un test automatisé, les messages d'erreurs fonctionnelles des tests sont affichés dans la vue des détails d'une suite automatisée.
    • Les anomalies peuvent être créées ou associées aux messages d'erreur des tests depuis la vue des détails d'une suite automatisée.
    • Des indicateurs sont automatiquement ajoutés dans la vue des détails d'une suite automatisée pour signaler si le test doit être analysé, est instable ou a été corrigé.
    • Un retour visuel (coche verte) est affiché lorsque la transmission d'un cas de test est réussie.
    • 1 Toutes les colonnes des tableaux de l'espace Automatisation sont redimensionnables.
    • Des paramètres peuvent être passés aux scripts automatisés pour SoapUI.
  • Transverse / Ergonomie :

    • Les boutons d'action à la fin des lignes de tous les tableaux sont fixes.
  • Administration :

    • Les permissions des espaces Exigences, Cas de test et Actions peuvent être configurées pour des profils personnalisés.
    • Les utilisateurs et les équipes liés à un profil peuvent être transférés vers un autre profil.
    • La suppression d'un dépôt lié à un serveur de gestion de code source via l'interface utilisateur le supprime également sur le serveur Squash.
    • Les dépôts peuvent être recréés au même emplacement sur le serveur Squash.
  • Technique :

    • La mise à niveau de la base de données Squash est effectuée automatiquement par défaut lors de la mise à jour de l'application.
    • Le chemin des modèles personnalisés de rapports peut être défini via la propriété squash.report-custom-template.folder-path.
  • Performance :

    • La performance des fonctionnalités suivantes a été améliorée :
      • 66 Export des campagnes ;
      • Copier/coller des dossiers de l'espace Exécutions, campagnes, itérations, suites de tests, groupes de sprints et sprints ;
      • Suppression des items de plan d'exécution ;
      • Affichage du plan d'exécution ;
      • Affichage des suites automatisées.
  • Xsquash4GitLab :

    • La configuration Xsquash4GitLab (équivalences et paramètres) peut être effectuée dans les modèles de projet Squash et transmise aux projets liés ou aux projets créés à partir d'un modèle de projet.
    • L'état d'une issue GitLab (ouverte/fermée) peut être synchronisé dans un champ personnalisé des exigences Squash, dans le tableau des tickets de sprint et sur une page de tickets de sprint.
    • Le nombre d'éléments (exigences et tickets de sprint) synchronisés avec succès par rapport au total est affiché dans le tableau des synchronisations de la page de configuration Xsquash4GitLab et sur la page de supervision des synchronisations.
  • Xsquash4Jira :

    • Le nombre d'éléments (exigences et tickets de sprint) synchronisés avec succès par rapport au total est affiché dans le tableau de synchronisation de la page de configuration Xsquash4Jira et sur la page de supervision des synchronisations.
  • Bugtracker GitLab :

    • Les issues GitLab à lier aux exécutions peuvent être recherchées par leur nom et description.
    • Le nombre d'issues GitLab retournées lors d'une recherche pour les lier à une exécution peut être défini via la propriété squash.bugtracker.max-results-per-search.
    • Fonctionnalités du cache :
      • La mise à jour du cache peut être configurée avec une expression cron via la propriété squash.bugtracker.cache-update-cron.
      • Le nombre de workers dédiés à la construction du cache peut être défini via la propriété squash.bugtracker.cache-worker-pool-size.
      • La dernière mise à jour réussie du cache est affichée dans l'interface utilisateur.
      • Les valeurs précédentes sont conservées lorsque le cache ne peut pas être mis à jour.
    • L'état des issues GitLab (ouverte/fermée) peut être affiché dans la colonne "Statut" des tableaux des anomalies connues.
  • API REST :

    • Dépréciations :
      • Dépréciation de /executions/{id}/issues au profit du nouvel endpoint /executions/{id}/attach-issue qui prend désormais en charge les bugtrackers GitLab et AzureDevOps. Aucune date de suppression n'est fixée, mais aucune amélioration future ne sera apportée à /executions/{id}/issues.
    • Transverse :
      • 170 Ajout des endpoints pour récupérer (informations principales) et supprimer des entités dans l'espace Reporting :
        • Graphiques : /charts/{id} ;
        • Exports personnalisés : /custom-exports/{id} ;
        • Tableaux de bord : /dashboards/{id} ;
        • Rapports : /reports/{id} ;
        • Dossiers de l'espace Reporting : /reporting-folders/{id}.
      • Ajout des endpoints pour récupérer les paramètres d'insensibilité à la casse des logins (/configuration/case-insensitive-login) et des actions BDD (/configuration/case-insensitive-action-word).
      • Création d'un projet à partir d'un modèle (/projects) : ajout des paramètres pour copier le serveur d'IA (copy_ai_server_binding), l'activation des plugins (copy_plugins_activation), la configuration des plugins (copy_plugins_configuration) et lier la configuration des plugins (keep_plugins_binding).
      • Création d'un modèle à partir d'un projet (/projects) : ajout des paramètres pour copier le serveur d'IA (copy_ai_server_binding), l'activation des plugins (copy_plugins_activation) et la configuration des plugins (copy_plugins_configuration).
  • Administration API REST :

    • Ajouter un dépôt à un serveur SCM (/scm-servers/{id}/scm-repositories) : l'attribut repository_path n'est plus nécessaire dans le corps de la requête et sa valeur est ignorée si elle est présente, Squash gérant le chemin.

Fonctionnalités supprimées

  • Authentification OAuth 1A pour les serveurs Jira ;
  • Import de cas de test au format Zip ;
  • Export de cas de tests au format CSV.

Corrections

  • Exigences :

    • Un utilisateur avec la permission WRITE ne pouvait pas modifier l'association des jalons aux exigences.
    • Un utilisateur non-administrateur ne pouvait pas lier un dossier d'exigences à une exigence de haut niveau.
  • Cas de test :

    • L'import d'un fichier contenant des appels à des cas de test entraînait une erreur.
    • Les tests exploratoires exécutés dans un sprint n'apparaissaient pas dans l'onglet "Sessions" des cas de test.
    • 315 Il était impossible de sélectionner (et copier) la description de l'exigence depuis la page des détails d'un pas de test.
    • La colonne "Chemin" était absente de l'onglet "Sessions" d'un cas de test exploratoire.
    • Le mode n'était pas affiché dans l'onglet "Exécutions" d'un cas de test.
    • Un utilisateur avec le profil "Valideur" pouvait supprimer le lien entre une exigence et un pas de test.
    • Lorsqu'une valeur d'un jeu de données ne contenait qu'un espace, l'indicateur visuel pour modifier le champ disparaissait, rendant difficile l'accès au mode édition.
    • Un utilisateur avec le profil "Testeur avancé" pouvait interagir avec le bouton pour supprimer une pièce jointe d'un pas de test, même si la suppression n'était pas prise en compte. Le bouton n'est désormais plus affiché.
    • Il y avait des incohérences concernant les permissions lors de l'association d'exigences aux cas de test et aux pas de test.
    • 252 Pour les cas de test BDD, dans l'autocomplétion, les différentes parties des actions (fixes et variables) pouvaient être dans le mauvais ordre.
    • 281 Lors de l'import de cas de test, le contenu du champ dans la colonne TC_AUTOMATABLE était ignoré.
  • Exécutions :

    • Un testeur référent pouvait supprimer une suite de test contenant des exécutions.
    • Les pièces jointes n'étaient pas prises en compte lors du copier/coller d'un sprint.
    • Lors de la tentative de suppression d'exécutions dans un sprint fermé, aucun message n'indiquait à l'utilisateur que cela était impossible.
    • Les notes d'exécutions exploratoires n'étaient pas reportées dans l'onglet "Activité" des sessions exploratoires ajoutées à un sprint.
    • Les sessions exploratoires n'étaient pas accessibles lors du copier/coller d'un sprint.
    • Les anomalies n'étaient pas affichées dans le bloc "Anomalies connues" des sessions exploratoires ajoutées à un sprint.
    • Le temps de chargement était long lors de la navigation dans le plan d'exécution global d'un sprint contenant plus de 100 tests.
    • La suppression d'un cas de test exécuté depuis l'espace Cas de test supprimait la ligne dans le plan d'exécution global du sprint au lieu d'afficher "Supprimé".
    • Lors de la navigation dans les onglets d'un sprint, le nombre d'éléments affichés dans le "Plan d'exécution global du sprint" n'était pas sauvegardé si modifié.
    • Les profils non autorisés pouvaient interagir avec les fonctionnalités "Statut de validation" des exigences de sprint, même si la modification n'était pas prise en compte.
    • Le bouton [Tester] dans le tableau des exigences de sprint n'était pas affiché pour les profils "Valideur" et "Invité".
    • Le champ "Modification" d'un sprint n'était pas affiché à l'emplacement correct dans le bloc "Informations".
    • 107 L'export de campagne échouait lorsque le nom de la campagne contenait des caractères spéciaux, y compris ,.
    • Les profils non autorisés pouvaient interagir avec le bouton de suppression en masse des items de plan d'exécution, même si la suppression n'était pas prise en compte.
    • 205 La recherche depuis un plan d'exécution avec l'option "Recherche par exigences liées" entraînait une erreur lorsqu'il y avait un gros volume de données.
    • 67 Un utilisateur avec le profil "Testeur référent" ne pouvait pas supprimer des items de plan de test contenant uniquement des statuts "fastpass". Tant qu'aucune exécution réelle n'est liée à un élément du plan de test, le "Testeur référent" peut désormais les retirer des plans d'exécution.
    • Le statut d'une session exploratoire n'était pas transféré au statut d'exécution d'une suite de tests.
  • Reporting :

    • La génération d'un rapport éditable d'Exigences ou de Cas de test entraînait une erreur si le périmètre incluait une entité avec une image invalide.
  • Automatisation :

    • Dans la fenêtre de supervision des exécutions automatisées, le message d'erreur concernant le jeton JWT n'était pas affiché correctement.
    • Pour certaines exécutions lentes, l'envoi du statut "En cours" survenait après l'envoi du statut final, entraînant des exécutions sans statut final ni durée, mais avec tous les rapports.
    • 289 Certains profils, autorisés à exécuter des tests, ne pouvaient pas voir ni modifier les variables d'environnement depuis la fenêtre de supervision des exécutions automatisées.
    • 239 Il était impossible de filtrer sur la colonne "URL SCM" dans les tableaux de l'espace Automatisation avec une base de données PostgreSQL.
  • Transversal :

    • 40 Lors de la recherche sur deux champs personnalisés du même type, l'opérateur appliqué était "OU" au lieu de "ET".
    • Divers messages ont été corrigés.
  • Administration :

    • La permission d'ajouter et de supprimer des pièces jointes dans l'espace Actions était absente.
    • L'option "Ajouter un modèle à partir du projet sélectionné" était disponible lorsqu'un modèle était sélectionné.
    • Les résultats de recherche étaient incorrects avec certains termes dans la matrice des permissions.
    • Les rôles des liens entre exigences ne pouvaient pas être renommés dans le tableau "Lien entre exigences" et ce tableau n'était pas affiché correctement.
    • L'ajout d'une pièce jointe à un modèle de projet entraînait une erreur.
    • Il n'y avait pas de redirection vers la page des modèles après la création d'un nouveau modèle à partir d'un projet.
    • Le focus sur l'ancre était perdu lors de la navigation entre des entités du même type (entre projets, par exemple).
    • Sur une page de configuration de projet, lors de l'association d'un projet Mantis, le champ était intitulé "Chemin du projet" au lieu de "Nom du projet".
  • Technique / Sécurité :

    • La valeur de Xmx a été modifiée à 2048 dans le fichier startup.bat pour correspondre à celle définie dans le fichier startup.sh.
    • Supprimer un plugin de bugtracker configuré dans Squash empêchait Squash de fonctionner.
    • Les logs étaient générés avec un type MIME incorrect.
    • Diverses améliorations concernant la sécurité ont été réalisées.
  • Xsquash4GitLab :

    • 343 Les dossiers de milestones étaient dupliqués lorsque le nom du milestone GitLab contenait un /.
    • 253 Les dossiers d'itération étaient dupliqués lorsque le nom de l'itération GitLab contenait un espace au début ou à la fin.
    • La simulation de synchronisation continuait de fonctionner même après la fermeture de la pop-up "Ajouter une synchronisation" et était toujours affichée lors de l'ajout d'une nouvelle synchronisation.
    • La pop-up de modification de synchronisation était lente à s'afficher pour les gros périmètres de synchronisation. Les données responsables de cette lenteur (labels, milestones…) sont désormais chargées séparément du reste des informations.
    • Lorsqu'un milestone GitLab était fermé, les exigences synchronisées ne restaient pas dans le dossier du milestone et étaient déplacées dans le dossier racine.
  • Xsquash4Jira :

    • La date de fin des sprints Jira n'était pas synchronisée dans les sprints Squash.
  • Bugtracker GitLab :

    • La mise à jour du cache s'arrêtait lorsque le rate limit de GitLab était atteint, et le délai restant n'était pas respecté.
    • Les données mises en cache (labels, assignés…) n'étaient pas automatiquement mises à jour après suppression du cache.
  • Bugtracker Jira Cloud :

    • 118 Aucun message clair n'était affiché si aucun identifiant n'était saisi lors de l'ajout d'une anomalie à une exécution.
  • Bugtracker Jira Data Center :

    • 118 Aucun message clair n'était affiché si aucun identifiant n'était saisi lors de l'ajout d'une anomalie à une exécution.
  • Bugtracker Tuleap :

    • Il était impossible de créer une nouvelle anomalie sur le 11ème projet Tuleap créé dans l'instance Tuleap et au-delà.
  • SCM Git :

    • 330 L'ajout d'un nouveau dépôt avec une branche différente de la branche par défaut entraînait une erreur.
  • API REST :

    • 307 Les autorisations n'étaient pas respectées pour les endpoints projects/{id}/campaign, projects/{id}/requirements et projects/{id}/test-cases.
    • Les utilisateurs avec le profil de chef de projet ne pouvaient pas gérer les habilitations au projet.
  • API REST d'administration :

    • Les utilisateurs avec le profil "Invité" pouvaient modifier le paramètre d'insensibilité à la casse pour les logins.
    • Les utilisateurs avec le profil "Invité" pouvaient voir et modifier l'URL publique de Squash.
    • Les utilisateurs avec le profil "Invité" pouvaient voir et modifier la limite de taille d'import.
    • Les utilisateurs avec le profil "Invité" pouvaient voir et modifier la limite de taille de pièces jointes.
    • Les utilisateurs avec le profil "Invité" pouvaient voir et modifier la liste blanche des extensions de pièces jointes.

Plugins

  • Nouvelle version pour tous les plugins : compatibilité avec Squash TM et corrections.
  • Les release notes des plugins sont incluses dans la release note de Squash TM.

Compatibilité avec les logiciels tiers

La version 9.X de Squash TM a été validée avec les versions suivantes des logiciels tiers. Elle devrait être compatible avec des versions plus récentes.

Gestion des tickets

Logiciel Version
GitLab Cloud 17.9.0-pre
GitLab Server 17.6
Jira Cloud 10.01
Jira DataCenter 9.11.2

Gestion des anomalies

Logiciel Version
Azure DevOps Services 2025.01
Azure DevOps Server 2022.1
Bugzilla 5.0.6
Mantis 2.25.3
Redmine 6.0.2
RTC 6.0.3
Tuleap 14.4.99.130

Automatisation

Technologies de test Version
Agilitest 💎 2.3.0
Cucumber JVM 7.0.0
Cucumber JVM 4.2.6
Cypress 12.12.0
JUnit 5.3.2
JUnit 4.12
Katalon 💎 8.2.0
Playwright 1.43.1
Postman 8.12.1
Ranorex 💎 9.5
Robot Framework 6.1.1
SKF 1.14.0
SoapUI 5.6.0
UFT 💎 15.0.2