À quelle fréquence, lorsque vous travaillez en équipe, rencontrez-vous une situation où une partie des tâches d'automatisation des tests tombe dans l'arriéré et reste indéfiniment dans les tests manuels? Nous sommes constamment confrontés à un tel problème, et les raisons sont toujours différentes:
- n'a pas eu le temps / n'a pas eu assez de temps, puis a oublié;
- pas assez d'expérience;
- la tâche d'automatisation s'est avérée très importante, nécessitant des intégrations tierces.
Inspiré par l'idée de collègues d'
Avito , Ă la mi-mai,
Yaromudr et
moi avons organisé la première journée de l'automatisation, le but de cet événement est d'automatiser les tests là où, pour les raisons ci-dessus, nous ne l'avons pas fait.
À ce sujet, nous avons rassemblé tous les ingénieurs QA intéressés, et nous avons également préparé à l'avance:
- arriéré de tâches;
- règles de conduite;
- convenu d'une pile technologique;
- outils préparés;
- ordonné les accès nécessaires.
Pour l'automatisation, une couche de test d'intégration d'API a été choisie. Chaque tâche dans l'arriéré contenait:
- un lien vers le point d'extrémité, ainsi que les paramètres d'entrée et de sortie de la demande de repos au format json;
- l'essence du test, comment et pourquoi nous le vérifions.
Au début du projet, nous avons sélectionné la pile suivante pour l'automatisation, c'est sur celle-ci que nous avons préparé le modèle de projet, que nous remplirons de tests automatiques:
- Java8
- Junit5
- Printemps
- Unirest
Un exemple de modèle de projet peut être trouvé
ici .
Il convient de noter que nous préparions depuis longtemps un outil pour générer automatiquement des données de test depuis longtemps, sans cela, nous ne voulions pas créer un nouveau cadre, car il y avait déjà une mauvaise expérience avec les autotests d'intégration sur les données de test statiques, seulement une couche en dessous. Nous avons en partie évoqué ce problème lors de notre réunion de
communication qualitative MAP .
Les règles
Les règles pour les participants à la journée de l'automatisation étaient aussi simples que possible. Avant de commencer le développement, nous avons démontré une structure de projet préconçue et mené une brève réunion d'information. Lors du développement, les participants devaient adhérer à une structure de projet donnée.
De 10 à 19 ans, occasionnellement distraits par le déjeuner et le dîner, les participants passent des tests en Java + JUnit5. L'implémentation de la logique des tests en Java a été organisée en appels d'API à l'aide de la bibliothèque Unirest.
Et dans notre confortable salle de jeux, douze ingénieurs QA et deux organisateurs de l'événement Automation Day se sont réunis.
Il vaut la peine de dire que le niveau des ingénieurs QA était différent, quelqu'un connaissait toute la pile, quelqu'un n'avait jamais utilisé Spring dans leurs projets, quelqu'un n'avait que du repos dans leurs projets et n'avait jamais vu Unirest, certains n'avaient pas encore automatisé Les tests API et les ont testés avec vos mains.
Résultats
Ce que nous avons obtenu pour 8 heures de travail de développement intensif:
- + 12 demandes de tirage;
- 12 tâches fermées de l'arriéré;
- + 14 autotests d'intégration;
- > 99% des autotests réussis pour chaque lancement;
- 12 ingénieurs QA bien orientés dans le projet.
Un mois plus tard
Lorsque nous avons pris les mesures de test environ un mois plus tard, nous avons obtenu des indicateurs très intéressants:
- + 30 demandes de tirage;
- 30 tâches clôturées depuis l'arriéré;
- + 48 autotests d'intégration;
- remplacé Unirest par Retrofit;
- > 97% des autotests réussis pour chaque lancement.
Je voudrais particulièrement noter l'impact positif de tels événements sur la communication au sein de l'équipe AQ, lorsque les gens sont confrontés à de vrais défis de produits et qu'il y a des gens à proximité qui peuvent aider et enseigner, cela donne toujours un effet positif. Un exemple simple, l'un des participants
ilya_tad a suggéré d'utiliser Retrofit au lieu d'Unirest, pour un certain nombre de raisons, il s'est avéré être un outil plus pratique pour nous. Plus récemment, le même participant a organisé une deuxième journée d'automatisation, au cours de laquelle tout le monde a également écrit des tests, mais utilisait déjà Retrofit. À propos, le deuxième jour de l'automatisation, nous avons complètement remplacé Unirest par Retrofit, pour nous les améliorations étaient minimes. Un modèle approximatif du projet révisé peut être trouvé
ici .
Les avis
Tous les participants à la Journée de l'automatisation ont reçu des t-shirts de super-héros fraîchement imprimés. Et oui, bien sûr, nous avons recueilli les commentaires des participants après la première journée de l'automatisation. La réponse à la question «Qu'est-ce qui a été le plus précieux et utile en cette journée de l'automatisation?»:
- impliquer tous les participants dans la couverture d'une autre couche d'auto-tests de la pyramide de tests (déchargement de la couche supérieure d'auto-tests de l'interface utilisateur de bout en bout);
- la capacité de se concentrer sur la tâche sans être distrait par quoi que ce soit d'autre, ainsi que l'expérience inestimable du mentorat;
- travail collectif sur des tâches spécifiques pour une période de temps clairement spécifiée, axé sur la résolution d'un éventail restreint spécifique de tâches et de problèmes;
- une idée générale du cadre local est apparue.
Nous avons également recueilli les souhaits des participants, nous ne répertorierons pas tout, mais le plus populaire était de tenir régulièrement la journée de l'automatisation.
Conclusion
De toute évidence, nous essaierons d'organiser régulièrement de tels événements. Nous allons aborder différents sujets, essayer de nouveaux outils.
La journée de l'automatisation vous permet d'éduquer les gens sur les tâches réelles du produit, les gens commencent à partager leurs expériences, à prendre l'initiative et à mieux communiquer entre eux. Avec une préparation et une organisation appropriées, cet événement vous permet de former relativement rapidement toute une couche d'autotests et de préparer les gens au développement ultérieur de cette couche.

Nous prévoyons de consacrer la troisième journée de l'automatisation à l'écriture de tests de composants pour iOS à l'aide de l'outil EarlGrey.