Ce que contient réellement un framework d'automatisation des tests
Sessions et identifiants
Obtenir, mettre en cache et renouveler les tokens, environnement par environnement, sans risque entre workers parallèles.
Données de test
Créer ce dont chaque test a besoin, l'isoler, puis supprimer exactement cela ensuite.
Ordonnancement et dépendances
Savoir ce qui doit s'exécuter avant quoi, et ignorer les tests dépendants plutôt que de les faire échouer.
S'y ajoutent un reporting que les équipes liront vraiment, la configuration des environnements, la politique de relance et un moyen de mettre en quarantaine un test instable sans le perdre. Les tests eux-mêmes en sont généralement la plus petite partie.
Le coût caché
Chacune de ces briques est construite par la personne qui a mis le framework en place, dans un style qu'elle seule maîtrise vraiment. Quand elle s'en va, le framework devient une chose que l'équipe a peur de modifier — et une suite que l'on a peur de modifier est une suite que l'on met en quarantaine au lieu de la réparer.
Quand construire est le bon choix
Des besoins hors normes. Un protocole, une plateforme ou une contrainte de conformité qu'aucune solution du marché ne prend en charge.
Le test est au cœur du produit. Si vous vendez de la fiabilité, posséder l'outillage de test peut être stratégique.
Vous disposez de ressources dans la durée. Pas une personne pendant un trimestre. Un responsable pendant des années.
Quand ce n'est pas le cas
Si la vraie raison est que l'équipe aime construire des outils, ou qu'une évaluation n'a rien tranché, le framework sera construit puis lentement abandonné. C'est le cas le plus fréquent, et il vaut mieux le nommer avant le premier commit.
Les signes que le framework est devenu le produit
Mieux vaut disposer de quelques signaux concrets, car la bascule est progressive et personne ne l'annonce.
Quelqu'un demande comment ajouter un test et il faut plus de deux minutes pour l'expliquer. Les nouveaux arrivants écrivent leur premier test en copiant un test existant et en changeant les valeurs, sans comprendre les fixtures sous-jacentes. Un test qui échoue soulève la question de savoir si le framework a changé. Il existe un fichier que personne ne veut toucher. Le travail sur le framework revient régulièrement comme un sujet à part entière dans la planification de sprint.
Deux de ces signes suffisent : vous avez un produit dont la base de clients internes se résume à une équipe. Ce n'est pas nécessairement une erreur, beaucoup d'organisations ont fait ce choix délibérément. Cela ne devient un problème que lorsque personne ne l'a décidé, ce qui est le cas habituel.
La voie médiane
Gardez des tests écrits à la main pour les cas que vous avez délibérément spécifiés, et laissez une couverture générée assurer l'étendue, avec les problèmes de session, de données, d'ordonnancement et de nettoyage résolus par le produit plutôt que par votre infrastructure.
Terminal
npm install -g @testsprite/testsprite-cli
testsprite setup
La même configuration est disponible dans le tableau de bord TestSprite si vous préférez ne rien installer en local. Le reste des fonctionnalités du CLI se trouve dans le dépôt CLI.
Si le pipeline appartient à une autre équipe, la GitHub App est la voie de moindre résistance : c'est un webhook, elle ne change rien dans votre dépôt, et elle se déclenche quand votre build signale la mise en ligne de la nouvelle version. Si vous préférez que la vérification soit visible dans le dépôt, une étape GitHub Actions s'en charge.
Ce que vous obtenez au lieu de le construire
Les briques qui allaient constituer votre infrastructure arrivent sous forme de produit. Auto-Authentication maintient les sessions actives pendant toute une exécution, Dynamic Variables transporte les valeurs d'un appel à l'autre, Dependency Chains déduit l'ordre d'exécution et Auto-Cleanup supprime exactement ce que l'exécution a créé. Le reporting, la configuration des environnements et le comportement des relances viennent avec, si bien que rien de tout cela ne devient un fichier que personne ne veut toucher.
La couverture est générée à partir de votre produit et affinée en langage naturel, ce qui élimine l'autre moitié du coût : celle où chaque test doit être écrit par quelqu'un dont le temps est disputé.
L'enjeu n'est pas que construire soit une erreur. C'est que la plupart des équipes n'ont jamais décidé de construire et découvrent au neuvième mois qu'elles ont un produit avec un seul client interne. Garder les tests que vous avez délibérément spécifiés et laisser l'outillage de test à quelqu'un d'autre, c'est la version de tout cela qui n'accumule pas un responsable que vous n'aviez jamais budgété.
Combien de temps faut-il pour construire un framework ?
La première version qui fonctionne : des semaines. Celle qui gère le renouvellement des sessions, des données compatibles avec le parallélisme et un reporting lisible : des trimestres.
Quelle est la partie la plus sous-estimée ?
Les données de test. Les créer, les isoler et les nettoyer sans risque en contexte parallèle est plus difficile que tout le reste réuni.
Faut-il utiliser un framework existant ?
Presque toujours. Construire sur un framework n'est pas la même chose que construire un framework, et c'est le second qui s'installe sans bruit.
Comment savoir que le nôtre est devenu un fardeau ?
Quand les gens le contournent, ou quand une seule personne est capable de le modifier. Ce sont deux signaux tardifs, et deux signaux fréquents.
Pourra-t-on migrer plus tard ?
Les tests se transposent rarement. Considérez l'investissement comme perdu et décidez en conséquence.
Les tests sont la petite partie.
Un framework d'automatisation des tests, c'est la gestion des sessions, les données de test, l'ordonnancement, le reporting et la configuration. Construisez-en un quand vos besoins sont réellement hors normes et que vous avez un responsable pour des années, pas pour un trimestre.