Les testeurs manuels ne sont pas nécessaires ou il est temps d'automatiser



Non, bien sûr, un frein à main sera nécessaire. Mais chaque année, ils en auront de moins en moins besoin. Le niveau de salaire atteindra rapidement le plafond et, à cause de tâches monotones, il vomira. Si vous souhaitez rester en QA et devenir un ingénieur en automatisation (développeur?), Alors le texte ci-dessous est pour vous.

Qui suis je?


Apprenons à vous connaître d'abord. Je m'appelle Alexander et je travaille dans les tests depuis 15 ans. Il a commencé le développement, est entré dans les tests, était un frein à main, maintenant un outil d'automatisation. J'ai testé le bureau, l'interface utilisateur, les applications mobiles, les API, effectué des tests de charge et beaucoup de choses intéressantes liées à l'assurance qualité. Je vais vous dire brièvement comment construire ma carrière en auto-test, ce que j'étudierais et par où commencer. Oui, il me manque quelque chose, mais mes conseils sont le reflet de mon expérience, et non la vérité ultime.

Quels étaient les testeurs manuels avant


Auparavant, c'était mieux. Il y a une quinzaine d'années, la profession commençait à peine. Les entreprises ont compris l'importance des tests et ont commencé à embaucher des testeurs. Le principal (pas toujours!), En bref, les exigences pour un testeur sont un programmeur léger ou un spécialiste qui n'est pas entré dans les programmeurs, ainsi que la connaissance des bases du test. Peut-être que la phrase précédente vous troublera, mais je l'expliquerai plus tard.

Les testeurs eux-mêmes étaient divisés en frein à main et en automatisation. Des produits HP étaient disponibles pour l'automatisation, Selenium, des langages de script ont été introduits. Les freins à main ont été testés avec les mains, ils ont écrit la documentation de test.

Le temps a passé et le frein à main a fusionné en une seule branche avec l'automatisation. De plus, à mon avis, l'automatisation est devenue dominante. Et maintenant je vais vous dire comment devenir AQE (ingénieur qualité automatisation).

Ce que vous devez savoir pour commencer?


Théorie des tests. Ceci est nécessaire. Types de tests, documentation de test, connaître et pouvoir appliquer des techniques de conception de test. Et explorez également la pyramide des tests. Peut-être que tout ne sera pas clair, mais avec le temps, il se révélera dans toute sa splendeur.

En principe, le livre de Savin "Testing Dot Kom" et vingt heures sur YouTube conviennent pour commencer.



Les livres sont lus, YouTube est révisé, il y a de l'expérience dans les tests manuels. Essayons maintenant d'aller vers l'automatisation, c'est plus intéressant là-bas.

Mythes


«Le travail de QA, en tant que l'un des points d'entrée relativement faciles pour l'informatique»,
«Les autotests s'éteindront bientôt. En règle générale, ce sont de tels sous-programmeurs "
" Nous sommes des testeurs, pas des développeurs, nous n'avons pas besoin de savoir / pas supposé / pas nécessaire "

J'ai trouvé les deux premières déclarations sur Internet. J'ai entendu le troisième en direct. Si vous voulez atteindre un haut niveau d'automatisation, alors ne soyez pas d'accord avec ces mythes. Ce sera dur, long, mais intéressant. Vos connaissances doivent être au niveau des programmeurs. Et dans la plupart des cas, et plus encore, vous devez toujours connaître et appliquer la théorie des tests.
D'où viennent ces mythes? Je pense à partir du point ci-dessus - ce qu'étaient les testeurs manuels. Les testeurs sont des programmeurs légers (NON).

Je pense que je peux le prouver. Connaissez-vous des testeurs / managers / développeurs? Demandez-leur combien d'autotests (forts) ont-ils trouvés en un an? Je pense que peu d'unités. Notre entreprise a scanné 20 candidats en un an et en a embauché un. Milieu.

Vous pouvez essayer d'obtenir une entrevue chez Signora AQE. Là déjà "Nous sommes des testeurs, pas des développeurs, nous n'avons pas besoin de le savoir" ne fonctionnera pas. Et les développeurs vous intervieweront après la théorie des tests. Parce qu'un système d'automatisation moderne et puissant est un développeur à part entière.

Choisir un langage de programmation


Pas vraiment important. Globalement, les langages de programmation sont similaires et au cours de votre carrière, vous en connaîtrez quelques-uns. Si vous comprenez les bases, la transition vers une nouvelle langue sera rapide.
Commencez par explorer les concepts de base: types de données, classes, tableaux, boucles, manipulation de chaînes, fonctions, POO. Après avoir accédé à une langue spécifique.

En 2020, pour le développement des autotests, je me pencherais sur ces langages (je rappelle que cela est basé sur mon expérience, et non sur une instruction d'action):

JavaScript est idéal pour tester l'interface utilisateur. Se développe rapidement dans les tests. Les frameworks JS remplacent activement Selenium

Java, le langage d'automatisation le plus populaire en Russie. Donc, historiquement, beaucoup de postes vacants.

Pythonlangue avec l'entrée la plus rapide. La langue est «simple», facile à lire et à apprendre.

Et il faut comprendre que cela fait longtemps, il faut être patient. Selon l'intensité de l'entraînement de 4 mois à un an.

Modèles de conception


Les modèles de conception décrivent des moyens typiques de résoudre des problèmes courants lors de la conception de programmes.

Voici ce que j'ai récemment entendu:

«Nous avons besoin de moyens solides qui ratisseront et comprendront nos tests. Nous les comprenons déjà un peu. »

Lorsque vous avez un site Web de 3 à 2 pages, tout est simple, rapide et beau. Mais, si vous avez un projet où les tests ui / api / mobile / e2e sont en même temps, et tout cela est écrit sans modèles, alors dans 90% des cas, cela se transformera en ordures (désolé).

Connaître l'objet Page est bien, mais il existe de nombreux modèles plus utiles dans le monde qui peuvent faciliter le développement. Plus tôt vous résolverez ce problème, moins il y aura de problèmes à l'avenir (c'est comment trouver un bogue à un stade précoce, alors il sera moins cher de le corriger).

Voici un lien à lire .

Si vous ne pouvez toujours pas traiter ce sujet, demandez l'aide de vos développeurs. Nous avons ainsi amélioré le projet en plusieurs itérations, après l'avoir réglé avec le développeur.

Je recommande également de lire le livre Head First. Modèles de conception. Freeman Eric, Robson Elizabeth.

Quel OS choisir?


Pas important. Maintenant, c'est une question d'habitude, utilisez ce qui vous convient. Si j'avais un tel choix maintenant, je choisirais un système de type UNIX. L'expérience avec elle est appréciée sur le marché du travail et il y a moins de problèmes.

Cadre de test


Framework (eng, framework - structure, framework) - un ensemble de décisions sur l'architecture, la structure et les méthodes de combinaison des composants du système qui peuvent être appliquées à de nombreuses tâches similaires.

Nous approchons maintenant des tests. Il existe d'excellents cadres pour chaque langue. Pour JS, c'est Cypress, Nightwatch, Puppeteer et autres. Java a Selenide, Python a la norme pytest. Étudiez-les le moment venu. La documentation à leur sujet est la mer.

Le temps viendra et vous développerez vous-même votre cadre, bien sûr, avant cela, en ayant une bonne compréhension du thème des motifs.

Git et revue


Git (prononcé "git") est un système de contrôle de version distribué.
Votre code doit être stocké quelque part. Il y a du git pour ça. Git est la norme de facto.
Ici, le processus d'apprentissage peut être construit comme ceci:
Installez git
Register sur github.com
Lisez la documentation
Ouvrez YouTube, trouvez des leçons et travaillez dessus.

Pour vous connecter, vous devrez apprendre un petit nombre de commandes git:
cloner, ajouter, pousser, tirer, cacher, valider, statut, rebaser, extraire. En une semaine, vous l'apprendrez et le maîtriserez. La pratique principale.

Le code de révision est un outil puissant pour partager des connaissances, trouver des bogues et des erreurs «stupides» et vérifier votre code. Au début, ils vérifieront plus souvent que vous, mais avec le temps, vous commencerez à revoir les autres. Essayez de percevoir l'examen comme une aide et un développement personnel. Tout le monde a des erreurs et des fautes de frappe.

Lis

Quoi d'autre à apprendre?


CI / CD Continuous Integration / Continuous Deployment.

Les principaux objectifs de CI / CD sont de minimiser les erreurs, d'accélérer l'assemblage et d'améliorer la qualité du produit final:



Read

Docker est une plate-forme conçue pour développer, déployer et exécuter des applications dans des conteneurs.

Read

HTTP est un protocole d'échange de données sur un réseau. Vous pouvez peut-être écrire des tests d'interface sans connaître HTTP, mais il n'y a pas d'API à tester. Et la localisation du problème sera plus rapide avec cette connaissance.

Read

xpath est un langage permettant d'interroger des éléments d'un document XML.

Lien vers la feuille de triche

SQL est un langage informatique standard pour la gestion des bases de données relationnelles et le traitement des données. SQL est utilisé pour interroger, insérer, mettre à jour et modifier des données.

Lire

Cette liste continue, mais je m'arrêterai ici.

Où obtenir des connaissances?


Youtube
Forums thématiques
Livres
Cours de programmation
Cours d'automatisation des tests

J'ai spécialement divisé les cours de programmation et les cours d'automatisation des tests. Mieux vaut commencer par le premier. Dans les deuxièmes cours, vous apprendrez l'automatisation et fermerez les yeux sur la «justesse» du développement. Il vaut mieux jeter les bases, puis passer à l'automatisation.

Vaut-il la peine d'économiser sur les frais de scolarité? Puis-je prendre un livre / lire un article / regarder YouTube et ne pas choisir des cours payants? Non. Si possible, bien sûr. Il y a des mentors dans les cours, cela accélérera considérablement l'apprentissage. Il y a beaucoup de tâches inventées pour vous qui devraient stimuler les compétences. La seule chose est d'aborder judicieusement le choix des enseignants. Lisez les avis.

PS J'ai parcouru tout: livres, YouTube, articles, cours. Et les cours étaient les meilleurs pour moi, c'était un saut de développement. Vous aurez peut-être une manière différente.

Références


forum d'autotests (presque tout y est) automatisé- testing.info
js pour tester t.me/js_for_testing
QA - outil d' automatisation
Serious t.me/serious_tester testeur
Si vous ne l'avez pas encore fait, ajoutez aux signets, c'est un must have ru. stackoverflow.com

Pourquoi j'ai écrit ça


Récemment, j'étais à une réunion où l'un des conférenciers a parlé de son expérience dans l'utilisation de l'automatisation des tests. Et son entreprise est parvenue à la conclusion qu'il est plus facile de trouver des développeurs et d'en faire AQE que de chercher des auto-testeurs qui n'apportent pas les avantages que l'on attendait d'eux sur une longue distance. Et les raisons étaient que les autotests n'avaient pas suffisamment de connaissances en développement (patterns, connaissance des bibliothèques). À certains égards, je suis d'accord avec eux. Je suis sûr que quelqu'un pensera que j'ai décrit les exigences d'un super testeur ou d'un développeur en test (Software Developer In Test). Avec le développement de Scrum, quand un développeur / analyste / testeur disparaît, nous devenons des ingénieurs et des membres égaux d'une équipe dont le but est de sortir un produit / créer une fonctionnalité pour un sprint.Dans ces conditions, les exigences pour les autotests augmenteront et les spécialistes en forme de T seront appréciés sur le marché (article sur vc.ru ). Ces personnes peuvent non seulement localiser clairement le problème, mais aussi le résoudre (par exemple, à l'avant). Et c'est l'avenir.

la fin


Comme je l'ai écrit plus tôt, le processus d'apprentissage ne sera pas facile. Pour entrer dans la profession, l'AQE devra passer + - un an. De nombreux articles ont été écrits sur la façon de construire la formation, mais je noterai deux points:

  1. Sachez vous détendre et faire des pauses.
  2. Entraine toi. Choisissez des sites, des projets. Écrivez des tests sur eux, testez l'API. Gardez votre code sur github, appelez vos amis, vos collègues pour examen.

Bonne chance

All Articles