Il y a six ans, Roman Pechersky d'Izhevsk a suivi des cours pour les testeurs fonctionnels et a commencé à travailler comme ingénieur QA. Quelques mois plus tard, il rencontre pour la première fois l'automatisation des tests et se rend compte qu'il souhaite évoluer dans ce sens.
Maintenant, Roman dirige une équipe d'experts en automatisation, ainsi qu'un
centre de formation pour les tests automatisés à Izhevsk EPAM. Il a raconté comment il avait commencé à étudier l'automatisation, comment il s'était développé, quels problèmes il avait traités et quels hacks de vie il avait utilisés.

Comment j'ai rencontré l'automatisation
J'ai rencontré l'automatisation pour la première fois lorsque le responsable technique de notre projet m'a suggéré de couvrir les auto-tests avec des contrôles afin qu'ils puissent être exécutés après tout changement et recevoir rapidement des commentaires. À ce moment-là , je n'avais pas travaillé dans les tests depuis un an, donc je ne me sentais pas très à l'aise. Malgré cela, la tâche m'a semblé intéressante, et j'ai décidé d'essayer de la terminer - même si je ne savais même pas par où commencer.
Quelqu'un des collègues du projet m'a parlé de l'IDE Selenium, un outil pour automatiser les actions d'un navigateur Firefox. Je me souviens de la façon dont j'ai écrit mon premier autotest en utilisant la méthode Record and Play: j'ai activé l'enregistrement, commencé à appuyer sur les boutons, saisir du texte dans la barre de recherche et cliquer sur les liens. Le résultat était un ensemble d'actions enregistrées que vous pouviez exécuter et voir immédiatement le résultat.
Ensuite, j'ai regardé trois conférences du
formateur en automatisation Mikhail Polyarush:Qu'est-ce que l'automatisation des testsComment écrire le premier test sur SeleniumComment écrire des localisateurs dans Selenium WebDriverLa connaissance de Selenium IDE et de ces conférences m'a suffi pour résoudre cette tâche de projet et commencer à prendre les premières mesures de côté dans l'automatisation.
Comment j'ai étudié l'automatisation
Bientôt, j'ai commencé à apprendre Java moi-même - l'un des langages les plus populaires pour tester l'automatisation - et à essayer d'écrire de simples autotests dans Eclipse, par exemple, pour tester la forme de connexion des applications.

Une fois, mon manager et moi avons discuté de mon développement futur. J'ai dit que j'avais l'intention de passer à l'automatisation et j'ai demandé des cours sur les tests automatisés pour les employés.
Les six mois suivants, j'ai travaillé et étudié - le soir, le week-end, les vacances. Tout était compliqué par le fait que les trois premiers mois, j'étais en voyage d'affaires sur un nouveau projet. Après le travail, je suis retourné à l'hôtel avec la pensée que si je ne rendais pas mes devoirs à temps, j'accumulerais des dettes pour lesquelles je pourrais être expulsé. Pour moi, c'était un stress terrible, et j'ai même perdu quelques kilos.
Voici ce qui m'a aidé à surmonter les difficultés:
• Comprendre pourquoi cela est nécessaireMalgré le fait que l'étude était difficile et parfois même ennuyeuse, j'ai clairement réalisé quelles opportunités elle m'ouvrirait. C'est pourquoi j'ai consacré tout mon temps libre à l'automatisation. Au lieu de se promener dans la ville - automatisation, au lieu de rassemblements dans un bar avec des collègues - automatisation, au lieu de la série du soir - automatisation.
• Soutien aux collègues
Il est toujours agréable de voir quelqu'un vous remonter le moral, en particulier les personnes qui ont déjà fait le même chemin.
• Un sens de la compétition
Le sentiment que je pouvais devenir l'élève le plus en retard du groupe m'a également encouragé à aller de l'avant.
À la fin des cours, j'ai commencé à travailler sur le projet, en alternant les fonctions de testeur fonctionnel et d'ingénieur en automatisation. Quelques mois plus tard, rejoint le nouveau projet - déjà dans le rôle de chef d'équipe. L'équipe QA était composée de seulement deux personnes - moi et un testeur fonctionnel, à qui j'ai expliqué les bases de l'automatisation.
Comment j'ai commencé à enseigner l'automatisation
Mon collègue de projet est la première personne à qui j'ai commencé à enseigner l'automatisation. Au début, mes connaissances n'étaient pas toujours suffisantes pour répondre à ses questions et aider à résoudre des problèmes de conception. Mais quand je ne pouvais pas lui expliquer quelque chose, je me suis rendu compte que je n'avais pas suffisamment développé moi-même le sujet et j'ai amélioré mes connaissances. J'ai généralement cherché des réponses sur
Stack Overflow ou je me suis tourné vers les développeurs pour obtenir de l'aide.
Petit à petit, mon équipe est passée à 10 automatismes. À ce moment-là , je me suis complètement éloigné des tests manuels et je me suis engagé dans un auto-test complexe des applications Web à l'échelle du système. Il a ensuite commencé à aider l'équipe dans la création de solutions architecturales pour les tests et est devenu le coordinateur du projet.
Il y a six mois, mes collègues et moi avons organisé notre propre centre de formation pour l'auto-test au bureau. Ils ont commencé à prendre des étudiants des derniers cours et des personnes qui ont décidé de changer le champ d'activité de la formation.
Récemment, j'ai moi-même suivi une courte formation - en JavaScript - et connecté à un nouveau projet. Je n'ai jamais rencontré JS auparavant. Il m'a fallu environ un mois pour commencer à me sentir plus ou moins confiant dans le travail avec la nouvelle langue.

Résumant mon expérience, je peux donner quelques conseils aux débutants qui font leurs premiers pas dans l'automatisation.
• Commencez par la pratique - créez votre propre autotestBeaucoup de gens pensent qu'avant d'écrire des autotests, vous devez d'abord comprendre la théorie des tests et apprendre Java ou un autre langage de programmation. Habituellement, l'enthousiasme de ces personnes ne dure pas longtemps, car c'est un processus long et compliqué.
Je pense que vous devez commencer par des choses simples. Créez vous-même un autotest simple. Pour le rendre plus intéressant, essayez de résoudre une tâche de la vie. Par exemple, écrivez un script qui automatise le transfert des relevés de compteurs d'eau vers le site d'un service d'eau. Aujourd'hui, cela peut être fait avec
Katalon Studio , qui a remplacé l'IDE Selenium. De telles tâches alimentent l'intérêt pour l'étude de l'automatisation. Ensuite, il sera possible de procéder à l'étude de la théorie et des spécificités de l'automatisation, et aussi de commencer à maîtriser le langage de programmation en collaboration avec
Selenium WebDriver .
• PrioriserSupposons que vous compreniez que vous souhaitiez évoluer en tant qu'ingénieur testeur-automatiste et que vous soyez prêt à passer du temps à étudier. Si vous prévoyez de vous immerger complètement dans la formation et de ne pas l'étirer pendant plusieurs mois, vous devez soit quitter votre emploi actuel, soit demander à votre patron de longues vacances.
Vous pouvez suivre mon exemple et essayer de combiner étude et travail. Vous économisez donc votre salaire, mais pendant plusieurs mois oubliez complètement l'existence du temps libre.
• Commencez par vous-même ou suivez des cours
Les cours sont une bonne option pour ceux qui ne savent pas du tout par oĂą commencer ou qui souhaitent organiser leurs connaissances. Les cours en ligne peuvent ĂŞtre trouvĂ©s Ă
Otus ,
Stepik ,
GeekBrains ,
Lynda ,
JavaRush . Si nous parlons de formation hors ligne, elle peut être organisée par différentes sociétés informatiques de votre ville: le
centre de formation EPAM , par exemple, opère dans six villes russes.
Habituellement, le programme de tout cours d'automatisation est divisé en trois modules:
1. Introduction à la théorie de l'automatisation;
2. Apprendre les bases d'un langage de programmation (par exemple, Java);
3. Écrire vos propres autotests.
C'est, à mon avis, un algorithme universel pour étudier l'automatisation des tests. Vous pouvez également le prendre comme base, si vous avez une formation technique et que vous décidez de comprendre indépendamment les bases de l'automatisation.
Voici l'ensemble minimal de connaissances que vous devez maîtriser pour commencer à travailler sur de vrais projets:
• Comprendre les concepts de base du test: cas de test, défauts, etc.
• Comprendre ce qui peut être automatisé et ce qui ne l'est pas;
• Connaissance des bases d'un langage de programmation (Java, JavaScript, Python, C #);
• Capacité à travailler avec
Selenium WebDriver ;
• Capacité à écrire des
localisateurs pour les éléments ;
• Connaissance d'un ou deux cadres d'unité.
• Soyez aussi intéressé que possibleLes débutants en automatisation sont le plus souvent effrayés par les erreurs de code. Ils exécutent le code, voient comment quelque chose se passe mal et tombent dans la stupeur. Que faire dans une telle situation? Essayez de trouver une solution sur Internet, par exemple, sur le même
débordement de pile . Une autre option consiste à demander de l'aide à des collègues plus expérimentés. Ils étaient aussi une fois à votre place et ont fait les mêmes erreurs. Lorsque vous discutez d'une tâche avec des ingénieurs en automatisation expérimentés, vous élargissez vos horizons professionnels.
• Ne restez pas immobilePour rester en forme, vous devez être constamment à la pointe de la technologie. Introduisez de nouveaux cadres et bibliothèques, comprenez l'intégration continue, approfondissez vos connaissances du langage de programmation ou maîtrisez-en un nouveau, lisez des articles thématiques et des blogs:
Un article sur qui est un si bon outil d'automatisationNotes de l'automatiseur (meilleures pratiques pour tester l'automatisation)Automatiseurs communautairesPortail sur les tests et la qualité des logicielsQA-community Comaqa.byDepuis cinq ans et demi que je travaille avec l'automatisation, je n'ai jamais regretté d'avoir choisi cette direction. J'aimais effectuer des tests manuels, mais je me suis rendu compte que tôt ou tard j'allais toucher le plafond. Le plafond pour le manager vient quand il teste différents types d'applications - web, desktop, mobile - si professionnellement que le travail cesse de poser de nouveaux défis et se transforme en routine. Afin de ne pas rester immobile et de continuer à évoluer, vous devez acquérir de nouvelles compétences. Vous pouvez faire l'automatisation des tests fonctionnels ou de charge, vous pouvez passer aux tests de sécurité ou, par exemple, trier les bases de données. Vous pouvez également regarder dans le sens du DevOps, de l'analyse commerciale ou de la
gestion de projet .
En tant que testeur manuel, je n'ai pas réussi à atteindre mon plafond - l'automatisation m'a fasciné plus tôt. En même temps, l'arrière-plan du manuel m'aide beaucoup dans mon travail toutes ces années. Non seulement j'implémente des cas de test, mais j'écris généralement des scripts pour eux-mêmes. Je comprends donc ce que je teste, quel type de fonctionnalité je couvre et quel type de résultat j'attends.