Path QA Fighter

Un bref aperçu de vos options de développement de carrière dans le contrôle et l'assurance qualité.

Par où commencer?


Supposons donc que vous envisagiez une carrière dans l'informatique et que vous ayez d'abord entendu parler de l'assurance qualité. Maintenant, vous voulez comprendre ce que c'est.





L'AQ est un processus visant à garantir la qualité d'un produit logiciel à tous les stades de développement, mais dans la CEI, ce terme est souvent appliqué aux tests logiciels.

De quoi un débutant aura-t-il besoin pour marcher sur le chemin d'un combattant de qualité? Voyons maintenant.

Pour la plupart des entreprises et projets, il suffira:

  • Une idée du processus de développement logiciel (une formation technique proche de l'informatique sera un plus, mais comme le montre l'expérience de nombreux collègues, ce n'est pas un prérequis);
  • Connaissance des principes de base des produits logiciels (applications mobiles ou autonomes, sites, selon le profil de l'entreprise);
  • Connaissance de la théorie des tests, une compréhension de base de la conception des tests, de la nature de la documentation de test et de sa provenance (c'est très facile à google si vous le souhaitez);
  • La capacité de traiter rapidement avec le système TMS;
    habr.com/en/post/461205
  • Le désir d'apprendre de nouvelles choses, de comprendre rapidement les détails du fonctionnement actuel du logiciel et de son fonctionnement.

Si les points ci-dessus sont réalisables, nous pouvons prendre la route.

OK, où allons-nous?

Ensuite, nous parlerons des directions à pomper et des résultats qui peuvent être atteints en commençant votre chemin dans l'informatique avec l'assurance qualité.

Rôles en QA


Vous pouvez choisir une direction sans changer le champ d'activité et vous développer en tant que spécialiste plus étroit. Ou combinez plusieurs rôles. Vous devez maîtriser les stratégies et les types de tests dans différentes méthodologies de développement, apprendre à utiliser les outils de gestion des tests ( TestLink , TestRail , Test IT , etc.) et les systèmes de suivi des bogues (Jira, Redmine) - ces connaissances et compétences sont fondamentales pour tous les ingénieurs QA . Les options de spécialisation les plus populaires sont les tests automatisés et les tests de charge.

Test manuel


Lorsque vous devez dépenser plus de ressources pour développer des autotests que pour le produit lui-même, il est plus facile / moins cher / plus rapide de vérifier de nouvelles fonctionnalités avec vos mains.

Beaucoup de gens pensent que le test manuel est quelque chose de simple et que tout le monde peut le gérer. En fait, les tests manuels nécessitent beaucoup de compétences. Les testeurs manuels résolvent les tâches auxquelles d'autres ne peuvent pas faire face.

Pour les tests manuels, vous aurez besoin de:

  • Compétences analytiques élevées. Non seulement vous attendez des erreurs, mais également des suggestions sur la façon de faire mieux. Après tout, ce n'est que manuellement que vous pouvez vérifier des choses telles que, par exemple, la convivialité;
  • La créativité Dans les réalités modernes du développement, les exigences ne sont pas toujours complètes et les testeurs sont confrontés au fait qu'ils doivent réfléchir à de nombreuses options pour utiliser les systèmes qu'ils testent;
  • Maintenance de la documentation de test. Un bon testeur a toujours un plan d'action clair et des activités de test basées sur les exigences et les délais;
  • Connaissance et expérience du système de gestion des tests;
  • Possession d'outils pour travailler avec les requêtes HTTP (Postman, curl);
  • Connaissance des bases de données, capacité à écrire des requêtes SQL.

Et bien plus encore, cela dépend de l'industrie et de la sphère pour laquelle le développement est en cours. Cela peut fonctionner avec des programmes et du matériel hautement spécialisés.

Automatisation des tests


Les tests automatisés permettent de publier de nouvelles fonctionnalités plus rapidement, de tester plus rapidement et de réduire les tests manuels.

Alors, qu'est-ce qui peut être nécessaire pour commencer à automatiser les tests?

  • Il sera nécessaire d'écrire du code, par exemple, en Java ou en Python;
  • Outils d'automatisation principaux (Selenium, Katalon);
  • Connaissance de base de HTML, CSS, XPath;
  • Capacité à travailler avec des systèmes de contrôle de version et des référentiels de code;
  • Compétences API;
  • Connaissance des systèmes CI / CD (Jenkins, TeamCity, etc.).

Si vous pensez que vous êtes prêt, vous pouvez prendre le script de test le plus simple, qui a été répété mille fois et essayer de l'automatiser - vous l'aimerez sûrement

Test de charge


La signification des tests de résistance est de mesurer la qualité d'un système qui fonctionne sous une charge spécifique. En effectuant des tests de performances, vous pouvez déterminer l'évolutivité, la tolérance aux pannes et la stabilité du produit logiciel.

Le travail des spécialistes de ce profil comprend la collecte de données sur les performances des applications, le temps de réponse et la localisation des erreurs sous une charge qui dépasse les scénarios d'utilisation normale du système.

Les compétences les plus importantes pour ceux qui veulent faire des tests de résistance:

  • Connaissance de l'architecture du système testé. L'immersion dans les tests de performances vous obligera à apprendre les langages de développement et les frameworks utilisés pour créer le produit;
  • Capacité à développer et analyser des profils de charge;
  • Encore une fois la programmation. Pour les scripts de test de charge, des langages tels que Java, Python, JavaScript, C ++, C # et des cadres spéciaux, par exemple, Gatling;
  • Connaissance de l'architecture matérielle et réseau. Souvent, le matériel peut devenir la cause d'une diminution des performances des applications, vous devez naviguer dans des concepts tels que la mémoire, le processeur, la bande passante réseau et être en mesure d'analyser les données les concernant.

Analyste de test


L'analyste de test est une personne dont le travail consiste à créer des artefacts de test en fonction des besoins. Dans les petites équipes, ces tâches sont résolues par un testeur ordinaire, tandis que dans les grandes équipes, les fonctions de test et de conception de test sont souvent clairement réparties entre les personnes.

Une chaîne d'interactions idéale ressemblerait à ceci:

  • l'analyste priorise les tests et établit une carte logique du projet;
  • l'analyste de test, sur la base de ces informations, commence à développer des tests;
  • le testeur teste les cas de test décrits (oui, voici une phrase).



Parcours alternatifs. Y a-t-il une vie après l'AQ?


Analyste système


Avez-vous eu des difficultés avec des exigences mal décrites tout au long de votre carrière? Vous avez une chance de le réparer. Vous communiquerez avec les utilisateurs du système, collecterez et analyserez les exigences, puis les enregistrerez dans la documentation. Une interaction étroite avec les développeurs et l'expérience d'un ingénieur en assurance qualité aideront à garantir que les exigences sont complètes et élaborées. De plus, la participation à la mise en œuvre, la formation des utilisateurs et la collecte de commentaires sur l'efficacité du système sont possibles.

Analyste d'affaires


Le principal avantage des testeurs sur les développeurs est qu'ils acquièrent des connaissances dans le domaine, dans le domaine des affaires. Une option fréquente pour un testeur de progresser dans sa carrière est de passer à l'analyse commerciale. En tant qu'analyste d'affaires, vous participerez à la formation des exigences de produits pour l'entreprise.

Manager


Disons qu'il est plus facile pour vous de communiquer avec les gens qu'avec les bases de données - alors vous pouvez essayer le rôle d'un manager. Les professionnels de l'assurance qualité ont une compréhension approfondie de la façon d'améliorer les logiciels. Si vous êtes prêt à prendre des décisions difficiles et à en assumer l'entière responsabilité, il n'y aura aucun problème. Ici aussi, il y a une branche, par exemple: chef de projet, responsable des ressources, responsable des tests, etc. Tout dépend des processus construits dans l'entreprise.

Développeur


Les testeurs se lancent souvent tête baissée dans étant côte à côte avec les programmeurs, il est beaucoup plus facile d'apprendre leur métier que de recevoir une éducation spéciale. De plus, ils vous le diront, vous le demanderont et vous aideront. C'est une bonne façon de démarrer une carrière, de se familiariser avec le processus de développement de l'intérieur. Surtout si vous connaissez déjà les langages de programmation et avez été engagé dans l'automatisation des tests. L'essentiel est le désir.

Si vous avez raté quelque chose, je suis heureux d'en discuter dans les commentaires!

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


All Articles