
Aujourd'hui, nous félicitons les personnes qui, chaque jour, veillent à ce qu'il y ait un peu plus d'ordre dans le monde : les testeurs. En ce jour, GeekUniversity de Mail.ru Group pour ceux qui souhaitent rejoindre les rangs des combattants contre l'entropie de l'Univers. Le programme du cours est conçu de manière à ce que le métier de « Testeur de logiciels » puisse être appris depuis le début, même si l'on a auparavant travaillé dans un domaine complètement différent.
Nous publions également l'histoire de l'étudiante de GeekBrains Maria Lupandina (). Maria est candidate au doctorat en acoustique. Elle travaille actuellement comme testeur de logiciels dans une grande entreprise d'ingénierie qui développe des logiciels pour des établissements médicaux.
Dans cet article, je veux montrer la possibilité d'un changement de carrière assez radical. Avant de devenir testeur, je n'avais pas beaucoup d'interactions avec les technologies de l'information, sauf pour les aspects nécessaires à mon ancien travail. Mais sous la pression de plusieurs facteurs, dont je parlerai en détail ci-dessous, j'ai décidé de quitter le domaine scientifique pour plonger dans l'IT. Tout a fonctionné, et maintenant je peux partager mon expérience.
Comment tout a commencé : technologies et science
Après avoir terminé l'université avec un diplôme en ingénierie biomédicale, j'ai trouvé un emploi dans une entreprise industrielle en tant qu'ingénieur de laboratoire. C'est un travail assez intéressant, mes responsabilités incluaient la mesure et le contrôle des paramètres des produits de l'entreprise, ainsi que des matières premières à différentes étapes de la production.
Je voulais devenir un bon spécialiste, donc je me suis progressivement immergée dans les technologies de production et j'ai acquis des spécialités connexes. Par exemple, lorsque cela était nécessaire, j'ai étudié la méthode de réalisation des analyses chimiques pour contrôler la qualité de l'eau, en utilisant comme sources des normes nationales et des règlements sectoriels. Plus tard, j'ai formé d'autres laboratoristes à cette méthode.
En même temps, j'ai préparé ma thèse de doctorat, que j'ai réussie à défendre avec succès. Devenue docteure, j'ai réussi à obtenir une importante subvention du Fonds russe pour la recherche fondamentale (RFFI). C'est à ce moment-là que j'ai été invitée à travailler à l'université en tant qu'enseignante à un taux de 0,3. J'effectuais des travaux liés à la subvention, élaborais des programmes d'études et des matériaux pédagogiques pour l'université, publiais des articles scientifiques, donnais des cours, encadrais des travaux pratiques, et concevais des contrôles et des tests pour le système d'éducation électronique. J'aimais beaucoup enseigner, mais malheureusement, le contrat a pris fin, tout comme ma carrière en tant qu'employée de l'université.
Pourquoi ? D'un côté, je souhaitais poursuivre mon chemin dans la science, en devenant par exemple maîtresse de conférences. Le problème est que le contrat était à durée déterminée, et je n'ai pas pu me fixer dans l'établissement — un nouveau contrat ne m'a malheureusement pas été proposé.
C'est à ce moment-là que j'ai quitté l'entreprise, car j'ai décidé qu'il fallait changer quelque chose, je ne souhaitais pas passer toute ma vie à travailler en tant qu'ingénieure de laboratoire. Je n'avais tout simplement nulle part où grandir professionnellement, la possibilité de développement faisait défaut. L'entreprise était petite, donc parler de perspectives de carrière était impossible. À l'absence de perspectives de carrière s'ajoutaient un salaire peu élevé, un emplacement peu pratique et un risque accru d'accidents au travail. Nous obtenons ainsi un ensemble de problèmes qu'il a fallu tout simplement trancher comme un nœud gordien, c'est-à-dire démissionner.
Après ma démission, je me suis lancée en freelance. J'ai donc développé des projets sur commande dans des domaines tels que la radioélectronique, l'électrotechnique et l'acoustique. En particulier, j'ai conçu des antennes paraboliques à micro-ondes, et développé une chambre acoustique étouffée pour l'étude des paramètres de microphones. J'avais de nombreuses commandes, mais je souhaitais néanmoins autre chose. À un certain moment, j'ai eu envie d'essayer mes forces en tant que programmeuse.
Nouvelle étude et freelance
Un jour, je suis tombée sur une publicité pour les cours de GeekBrains et j'ai décidé d'essayer. J'ai d'abord suivi le cours "Introduction à la programmation". J'en voulais plus, donc j'ai suivi également des cours de "Développement web", et ce n'était que le début : j'ai maîtrisé HTML/CSS, HTML5/CSS3, JavaScript, après quoi j'ai commencé à étudier Java dans le cadre des cours "L'apprentissage a été un grand défi pour mes capacités — non pas à cause de la difficulté du cours, mais parce qu'il fallait souvent étudier avec un enfant dans les bras.
Pourquoi Java en particulier ? J'ai souvent lu et entendu que c'est un langage universel, que l'on peut utiliser, par exemple, en développement web. De plus, j'ai entendu dire qu'en connaissant Java, on pouvait passer à n'importe quel autre langage si besoin. Cela s'est avéré vrai : j'ai écrit du code en C++, et il fonctionnait, même si je n'avais pas creusé trop profondément dans les bases de la syntaxe. Ça a bien marché aussi avec Python, où j'ai écrit un petit parseur de page web.

Parfois, je devais travailler comme ça — mettre l'enfant dans un porte-bébé, lui donner un jouet et espérer que cela suffirait pour exécuter la prochaine commande.
Dès que j'ai acquis un certain bagage de connaissances et d'expérience en programmation, j'ai commencé à réaliser des commandes en freelance. J'ai ainsi développé une application de gestion des finances personnelles et un éditeur de texte sur commande. En ce qui concerne l'éditeur, il est simple, avec quelques fonctions de base pour le formatage du texte, mais il est efficace pour sa tâche. De plus, je résolvais des problèmes de traitement de texte et faisais également de la mise en page de pages web.
Je souligne que l'apprentissage de la programmation a élargi mes capacités et ma perspective en général : je peux non seulement écrire des programmes sur commande, mais je travaille aussi sur des projets pour moi-même. Par exemple, j'ai développé un petit programme utile qui permet de savoir si quelqu'un altère vos articles sur Wikipédia. Le programme analyse la page d'un article, trouve la date de la dernière modification, et si cette date ne correspond pas à celle de votre dernière édition, vous recevez une notification. J'ai également écrit un programme pour le calcul automatique du coût d'un produit spécifique comme la main-d'œuvre. L'interface graphique du programme est réalisée à l'aide de la bibliothèque JavaFX. Bien sûr, j'ai utilisé un manuel, mais j'ai élaboré l'algorithme moi-même, et pour sa réalisation j'ai appliqué les principes de la POO et le modèle MVC.
Le freelance, c'est bien, mais le bureau, c'est mieux.
Dans l'ensemble, être freelance était agréable — on peut gagner de l'argent sans sortir de chez soi. Mais le problème réside dans la quantité de commandes. Quand il y en a beaucoup, les finances vont bien, mais il y a des projets urgents qui nécessitent de travailler tard dans la nuit dans un mode d'urgence. Quand il y a peu de clients, on ressent le besoin d'argent. Les principaux inconvénients du freelance sont des horaires irréguliers et un niveau de revenu instable. Tout cela a bien sûr eu un impact sur la qualité de vie et sur l'état psychologique général.
J'ai compris que l'emploi officiel était la clé pour écarter ces problèmes. J'ai commencé à chercher des offres d'emploi sur des sites spécialisés, j'ai élaboré un bon CV (merci à mes enseignants — je les consultais souvent sur ce qu'il fallait indiquer dans le CV et ce qu'il était préférable de mentionner lors d'un entretien personnel avec un employeur potentiel). Pendant ma recherche, j'ai réalisé des tests, certains étaient assez difficiles. J'ai ajouté les résultats à mon portfolio, qui est devenu assez volumineux au final.
Finalement, j'ai réussi à décrocher un poste de testeur dans une entreprise qui développe des systèmes d'information médicale pour automatiser la gestion documentaire dans les établissements de santé. Mes études supérieures en « ingénierie biomédicale » ainsi que mes connaissances et mon expérience en développement logiciel m'ont aidé à trouver ce travail. J'ai été invitée à un entretien et j'ai obtenu le poste.
Actuellement, ma tâche principale consiste à vérifier les applications développées par nos programmeurs pour leur robustesse. Si le logiciel ne passe pas le test, il falloir le retravailler. De plus, j'examine les messages des utilisateurs du système de ma société. Une équipe entière travaille sur la résolution de divers problèmes, et j'en fais partie. La plateforme logicielle, conçue par notre entreprise, est implantée dans des hôpitaux et des cliniques. En cas de difficultés, les utilisateurs envoient une demande de résolution de problème. Ce sont ces demandes que nous traitons. Parfois, je choisis moi-même la tâche sur laquelle je vais travailler, et parfois, je consulte mes collègues plus expérimentés sur le choix des tâches.
Une fois la tâche fixée, le travail commence. Pour résoudre le problème, je détermine l'origine de l'erreur (il est toujours possible que la cause soit un facteur humain). Après avoir clarifié tous les détails avec le client, je rédige un cahier des charges pour le programmeur. Une fois que le composant ou le module est prêt, je les teste et les intègre dans le système du client.
Malheureusement, la plupart des tests doivent être effectués manuellement, car la mise en œuvre de l'automatisation est un processus commercial complexe qui nécessite de solides justifications et une préparation minutieuse. Cela dit, j'ai été introduite à certains outils d'automatisation. Par exemple, à la bibliothèque Junit pour tester un bloc via API. Il existe également le framework twin d'ebayopensource, qui permet d'écrire des scripts simulant les actions d'un utilisateur, très similaire à Selenium, utilisé sur le web. De plus, j'ai maîtrisé le framework Cucumber.
Mes revenus à mon nouveau poste ont doublé par rapport à mon travail en freelance — surtout grâce au fait que je travaille à plein temps. D'ailleurs, selon les statistiques de hh.ru et d'autres ressources, le salaire d'un développeur à Taganrog se situe entre 40 000 et 70 000 roubles. Dans l'ensemble, ces données sont en adéquation avec la réalité.
Le poste de travail est équipé de tout le nécessaire, le bureau est spacieux, avec de nombreuses fenêtres et toujours de l'air frais. De plus, il y a une cuisine, une machine à café et, bien sûr, des gâteaux ! L'équipe est super, il n'y a vraiment aucun inconvénient à ce niveau. Un bon travail, des collègues, que peut souhaiter de plus un programmateur-testeur pour être heureux ?
Je tiens à préciser que le bureau de l'entreprise est situé à Taganrog, ma ville natale. Il y a pas mal d'entreprises IT ici, donc il y a des opportunités. Si l'on souhaite, on peut déménager à Rostov — il y a plus d'opportunités là-bas, mais pour l'instant, je ne prévois pas de déménagement.
Et après ?
Pour l'instant, j'aime ce que j'ai. Mais je ne compte pas m'arrêter — c'est pourquoi je continue à apprendre. J'ai un cours sur « JavaScript. Niveau 2 » en réserve, et dès que j'aurai plus de temps libre, je commencerai à l'étudier. Je révise régulièrement les matériaux que j'ai déjà appris, en plus de regarder des conférences et des webinaires. De plus, je participe au programme de mentorat de GeekBrains. Ainsi, pour les étudiants ayant terminé avec succès les cours et ayant soumis leurs devoirs, il est possible de devenir mentor pour d'autres apprenants. Le mentor répond aux questions et aide avec les devoirs. Pour moi, c'est aussi une répétition et une consolidation du matériel déjà étudié. Pendant mon temps libre, je résous des problèmes sur des ressources comme ,,.
J'apprends également un cours sur le développement Android dispensé par des enseignants d'ITMO. Ces cours sont gratuits, et si vous le souhaitez, vous pouvez passer un examen payant. Je souligne que l'équipe d'ITMO maintient le championnat du monde dans les compétitions de programmation.
Quelques conseils pour ceux qui s'intéressent à la programmation
Ayant déjà une certaine expérience en développement, je voudrais conseiller à ceux qui envisagent de se lancer dans l'IT de ne pas plonger tête baissée. Pour devenir un bon spécialiste, il faut être passionné par son métier. Pour cela, il est important de choisir une direction qui plaît vraiment. Heureusement, ce n'est pas difficile — il y a des tas de témoignages et de descriptions de n'importe quel domaine de développement, de langage ou de framework sur internet.
Il faut aussi être prêt à un processus d'apprentissage constant. Un programmeur ne doit pas s'arrêter — c'est équivalent à la mort, bien sûr, dans notre cas, il ne s'agit pas de la mort physique, mais de la mort professionnelle. Si vous êtes prêt à cela — alors allez-y, pourquoi pas ?
Source : habr.com
