Journée de l'automatisation, ou comment nous construisons la couche d'autotests

À 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.

Source: https://habr.com/ru/post/fr458546/


All Articles