Agilitest a été spécialement conçu pour gérer un grand nombre de tests :
- Les scripts ATS qu'il génère sont au format texte, lisibles, transférables et gérables dans les outils de gestion de la configuration.
- Ils sont stockés dans des répertoires qui peuvent être locaux ou partagés et sur lesquels les outils du système d'exploitation sont opérationnels (recherches, remplacements...).
- Un test correspond à un script ATS et vous n'avez pas de binaires supplémentaires, (évidemment sauf si vous utilisez la reconnaissance graphique).
- VVous pouvez utiliser des sous-scripts et les partager entre les scripts.
Ainsi, il n'est pas rare de voir certains de nos clients maintenir plus de 1000 tests dans le cadre d'un projet de test.
Il existe plusieurs actions possibles pour y parvenir :
- Agir sur la gestion des tests
- Agir sur la granularité des tests
- Agir sur les données d'essai
- Agir sur les environnements d'exécution des tests
Gestion des tests
Avec Agilitest, vous avez trois possibilités pour gérer vos tests :
Gestion à plat
Tous vos tests "racines" se trouvent dans un seul répertoire et vous pouvez utiliser des règles de nommage pour les identifier et identifier les différents domaines fonctionnels qu'ils couvrent. Ce n'est pas si facile lorsque vous avez beaucoup de tests, mais cette solution vous permet de voir tous vos tests d'un seul coup d'œil. Rappelez-vous que chaque test peut être représenté par un seul fichier dans le répertoire de base, et que vous pouvez ensuite placer les sous-scripts dans des sous-répertoires dédiés.
A simple example to do a test on roles or on a workflow, you can rename your test by using <object name>, <object state>, <role name>, <action performed> .
Gestion des paquets
Vous pouvez créer autant de sous-répertoires que vous avez de domaines fonctionnels à couvrir par vos tests, l'avantage est que chaque domaine fonctionnel est identifié et que le nombre de tests est réduit par domaine. Malheureusement, vous aurez des difficultés à gérer les tests inter-domaines.
Gestion par groupes
Agilitest vous permet d'affilier des tests à des groupes qui vous permettront ensuite d'effectuer des règles de filtrage. Cela vous permet de classer les tests dans plusieurs domaines à la fois, quel que soit l'endroit où ils peuvent être stockés dans vos arbres de tests. Dans ce cas, les deux options précédentes restent applicables.
- Différents domaines fonctionnels de votre application: les groupes permettent à un test d'appartenir à plusieurs domaines fonctionnels.
- Différentes priorités d'exécution: en fonction de vos besoins de livraison, il peut être utile de restreindre vos listes de tests pour effectuer des non-régressions rapides, ou de tout rejouer la nuit ...
- Différents types de tests: vous pouvez avoir des tests qui couvrent des fonctionnalités et qui ont été réalisés lors du développement de celles-ci, d'autres tests peuvent répondre à la correction d'un bug.
- Environnements d'exécution: vous pouvez typer vos tests en fonction des environnements sur lesquels vous souhaitez les exécuter : différents navigateurs, mobilité.
La gestion des tests reste une question de bon sens, mais n'oubliez pas que vous pourrez les transférer d'un répertoire à l'autre, ou même en modifier un certain nombre identifié à l'aide d'outils d'édition par lots : les tests sont en effet des fichiers texte.
La granularité des tests
Agilitest est un outil graphique, mais il permet de gérer des tests qui comportent encore un grand nombre d'actions.
Par action, nous entendons une opération fonctionnelle simple (cliquer sur un bouton, saisir un texte, rechercher un élément) qui, au final, comprendra tout un ensemble de contrôles techniques qui sont cachés à l'utilisateur final, et qui sont souvent représentés par plusieurs lignes de codes dans des outils équivalents, mais de niveau inférieur.
on considère qu'un test commence à être trop long à partir d'une centaine de lignes.
C'est pourquoi nous avons prévu les appels de sous-scripts pour vous permettre d'une part de mutualiser les comportements entre les tests, et d'autre part de simplifier ceux-ci en les rendant plus courts et plus faciles à comprendre.
Enfin, à partir d'un ensemble de sous-scripts correctement gérés, par exemple dans des répertoires dédiés (login, création de données, opération fonctionnelle simple...), vous pouvez facilement générer tout un ensemble de tests fonctionnels complexes très rapidement et de manière complémentaire.
Données d'essai
Les tests doivent être déterministes : chaque test doit savoir à l'avance quels doivent être les résultats envoyés par l'application et toujours vérifier ses propres données. (Cela permet aussi d'envisager plus sereinement la parallélisation des reprises nocturnes...).
C'est pourquoi nous pensons qu'il n'y a que deux façons de gérer correctement les données de test.
Chaque test crée ses données
Il est le plus simple à mettre en œuvre avec l'utilisation de sous-scripts et de fichiers de données qui vous permettront d'importer rapidement un ensemble de données pertinentes.
Agilitest fournit un moyen efficace de gérer les fichiers de données CSV ou JSON en les plaçant dans un répertoire dédié sous src / assets / data.
Il est alors possible pour chaque test d'utiliser des fichiers communs avec les autres tests dont il peut traiter certaines entrées pour les rendre uniques dans son application (par exemple, utilisation des fonctions$uuid, $now, $rndstring pour créer des identifiants uniques).
Les données sont créées au préalable par le système d'intégration continue.
Le principe est de générer un ensemble de données de test avant de lancer la campagne de test, qui est basé sur les fichiers CSV ou JSON stockés dans l'arbre de test, et par la suite, les tests vérifieront que les données sont correctement rapportées par l'application.
L'avantage est que cela peut être plus rapide au moment de l'exécution que de demander à chaque test de créer ses données en utilisant l'application.
Le problème est que vous devez connaître le modèle de données sous-jacent et donc que l'algorithme d'importation doit être modifié à chaque fois que le modèle évolue.
Environnements d'exécution des tests
Agilitest permet simplement de créer des exécutions qui agiront sur différents environnements d'exécution de tests et de les utiliser avec des systèmes d'intégration continue.
Ainsi, pour un ensemble de jeux de tests communs, il sera très simple de générer autant de possibilités de rejouer les tests que l'application supporte d'environnements, chaque fois qu'il s'agit d'une exécution avec des variables d'environnement qui peuvent varier :
- Plusieurs navigateurs Web transmettent le nom du navigateur comme variable d'entrée.
- Une succession de mobiles aux propriétés graphiques différentes.
- Listes de terminaux qui peuvent varier d'une exécution à l'autre
- Fichiers de données différents d'une exécution à l'autre
Dans Agilitest, presque tout peut être rendu variable, y compris les noms des fichiers CSV et des sous-scripts. Cela apporte beaucoup de flexibilité et de combinaisons possibles sans beaucoup de travail supplémentaire.
Mise en œuvre
Enfin, l'implémentation dépendra beaucoup de ce que vous allez vouloir faire pour réaliser vos tests :
- Il existe un ensemble de mécanismes qui permettent de fournir un grand nombre de mises en commun, de réutilisations et de combinatoires simples à mettre en œuvre afin d' augmenter les capacités de test.
- La flexibilité de ATS: les fichiers texte, les répertoires partagés et les éditions de masse possibles vous permettent d'envisager et de mettre en œuvre rapidement des changements.
- Agilitest permet une grande productivité et une rapidité de correction des tests qui vous permettra de gérer facilement l'ensemble de ces tests.