Vous cherchez un testeur d'emploi? Préparez-vous à démontrer les compétences des développeurs

Bonjour encore. Avant le début du cours Java QA Engineer, nous avons préparé un petit matériel qui sera utile à ceux qui vont juste faire carrière dans cette direction.




Testeur - qui est-ce?


Un ingénieur en assurance qualité logicielle (AQ) défend les intérêts des utilisateurs finaux. Il développe un processus de test de logiciels qui garantit la qualité - afin que le produit non seulement satisfasse, mais dépasse également les attentes des clients.

Les types de tests suivants sont distingués:

  1. Manuel Il s'agit de se familiariser avec le produit à l'aide des outils que le consommateur utilisera: clavier, souris, doigts sur l'écran tactile.
  2. Régression. Après avoir ajouté de nouvelles fonctions, le testeur doit vérifier si l'application a conservé ses propriétés opérationnelles, du point de vue de l'utilisateur final.
  3. Automatisé. Fournit l'écriture de code pour vérifier que le comportement attendu et réel de l'application correspond.

Les tests automatisés ne sont pas un nouveau concept pour l'industrie du logiciel. La fourniture gratuite d'outils de test automatisés pour créer de meilleurs logiciels n'est pas non plus un nouveau concept. La nouveauté est que grâce à Selenium WebDriver, développé par ThoughtWorks et soutenu par Google, les solutions open source sont devenues acceptables même pour les entreprises qui sont habituées à travailler uniquement avec des logiciels certifiés standard.

Selenium WebDriver en combinaison avec CI / CD a créé une telle augmentation de la demande d'encodeurs que la phrase «test manuel» a pour la plupart disparu de la liste des exigences pour les candidats. Qu'est-ce qui a pris sa place? Développement d'outils d'automatisation.

Le testeur écrit, en fait, ces tests et crée un environnement automatisé pour soutenir l'exécution des tests et leur analyse. Ce faisant, il essaie de répondre aux questions suivantes:

  • Quels types de tests effectuons-nous? Allons-nous nous concentrer sur l'automatisation de la suite de tests de régression du navigateur via Selenium WebDriver? Ou allons-nous également automatiser de nouvelles fonctionnalités?
  • Si nous utilisons Selenium WebDriver pour automatiser les tests du navigateur, allons-nous le lier à Java, Python, C #, JavaScript ou Ruby, par exemple?
  • Pouvons-nous avancer d'un niveau dans la pyramide des tests de Mike Cohen et tester les services Web qui fournissent à l'application de navigateur des fonctionnalités de base?
  • Quelles solutions de test correspondent le mieux au langage de programmation d'application?

Comment se déroulent les entretiens d'embauche de testeurs aujourd'hui?


Quand je suis venu à la première entrevue après une pause de deux ans, tout s'est bien passé ... jusqu'au moment où on m'a demandé de venir au conseil d'administration.

"En utilisant votre langage de programmation préféré, écrivez une méthode pour tester si un mot donné est un palindrome."

S'ils m'avaient donné ces devoirs, j'aurais pu le comprendre. Mais quand je me suis retrouvé devant le tableau, et que deux développeurs aux visages de pierre m'ont évalué, mon esprit s'est transformé en une toile vierge.

Ayant traité la moitié de la mission, j'ai commencé à plaisanter:

  • Si seulement j'avais un ordinateur portable avec IntelliJ!
  • Si j'avais écrit du code pour un test automatisé, j'aurais fait beaucoup mieux.

La réponse a été: "Tous les employés doivent avoir une programmation à un certain niveau minimum - même pour les postes de contrôle qualité."

Après cela, j'ai dû me préparer à un entretien pour un autre emploi ...



Entretien d'écriture de code: pas seulement pour les ingénieurs logiciels


Quand j'ai été interviewé il y a trois ans, je n'ai rencontré qu'une seule fois l'écriture de code. Et cette fois, il y en avait 5 sur 7 qui me convenaient. Pourquoi les candidats au poste de testeur sont-ils soumis à la même vérification que les développeurs eux-mêmes? La réponse me parut étrange:

Parce que les testeurs sont aujourd'hui des développeurs.

Ces dernières années, la fonction d'automatisation est passée de testeurs capables d'écrire du code à des développeurs capables de tester.

Les développeurs ne trouvent pas les questions posées par les testeurs lors de l'entretien difficiles. Ils ne demandent pas aux candidats de résoudre la Tour de Hanoi ou de résoudre des équations mathématiques du niveau de deuxième année d'une bonne université technique.

La plupart des exemples de code qu'ils demandent à écrire sont liés aux boucles, aux mathématiques de base, aux chaînes et aux manipulations symboliques.

Pourquoi les interviews d'écriture de code sont-elles si compliquées?


Les sujets d'activités peuvent être en dehors de votre domaine d'expertise.

  • Je travaille généralement avec le langage de programmation Java. Je n'ai qu'occasionnellement à utiliser une structure de données plus complexe qu'une table de hachage.
  • Le code que j'écris tourne autour de Selenium WebDriver. J'ouvre le navigateur, accède à la page, saisis les données dans les champs de texte, sélectionne les boutons radio et ça marche!
  • Je compare constamment les chaînes et vérifie si le texte d'avertissement à l'écran correspond à celui attendu. Cependant, dans mon travail quotidien, je n'utilise que légèrement les méthodes d'assistance pour la méthode d'objet chaîne.

Pas d'IntelliSense pour une interview

  • Si j'ai besoin d'utiliser des méthodes d'assistance dans une chaîne, un caractère ou un objet entier, je n'ai qu'à mettre un point après le mot, et les méthodes seront affichées.

Ces tests ne permettent pas d'utiliser des sources d'informations externes.

  • Vous ne pouvez pas utiliser le forum spécialisé ou StackOverflow.com .

Lors des entretiens, un sentiment d'isolement peut apparaître.

  • Lorsque je commence à écrire un test pour une fonctionnalité que je ne connais pas, j'échange généralement des idées avec des collègues. Mais pendant l'entretien, je ne peux pas échanger d'idées avec les enquêteurs. Ou puis-je encore? Il me semblait que je ne pouvais pas - parfois ils n'étaient pas très sympathiques.



Comment se préparer à de telles tâches?


Rafraîchissez vos connaissances

Une bonne option consiste à suivre des cours de programmation en ligne gratuits.

RTFM


Utilisez les ressources d'apprentissage Java d'Oracle: «Le Guide Java est des instructions pratiques pour les programmeurs qui souhaitent utiliser Java pour créer des applications. Le manuel comprend des dizaines de leçons et des centaines d'exemples.

Consultez la documentation de l'API


Pour travailler avec un langage de programmation, vous devez comprendre les termes de base répertoriés dans la documentation de l'API.

Si votre langage de programmation principal est Java, jetez un œil à https://docs.oracle.com/javase/8/docs/api/java , en vous concentrant sur les sujets de type Entier , Chaîne et Caractère , en particulier:

Fonctions de chaîne

Besoin de trouver le premier caractère d'une chaîne? Utilisez charAt(0) . Découvrez si un caractère ou un mot est dans une chaîne? Utiliser contains . Besoin d'un suffixe? Essayez endsWith . Vous pouvez vérifier si les deux lignes correspondent en utilisant equals et equalsIgnoreCase .

Fonctions de caractères

Les fonctions booléennes isLetter , isLetterOrDigit , isLowerCase , isUpperCase , isLowerCase , isWhitespace permettent de se familiariser avec la nature des caractères. Par exemple: Character.isLetter('A') sera vrai. Lorsque vous saisissez de nouveaux caractères, placez-les entre guillemets simples, par exemple: char newCharacter = 'a' .

Fonctions entières

Vous voulez convertir un entier? Entrez un entier dans Integer.toBinaryString(int i) , Integer.toHexString(int i) ou Integer.toOctalString(int i) pour le convertir au format souhaité.

Pratique sur papier

Par exemple, demandez-vous comment utiliser la boucle de boucle pour révéler:

  • tous les entiers de 1 à 100;
  • tous les nombres pairs (i% 2 == 0) compris entre 1 et 100 {1 ... 100}
  • tous les nombres divisibles par 3 (i% 3 == 0).

Ou voici les exercices à cordes:

  • écrire une méthode qui prend la chaîne s et renvoie la longueur sous la forme d'un entier s.length ;
  • écrire une méthode qui prend la chaîne s et renvoie le premier caractère s.charAt(0) .

Important:

  • Essayez de tout écrire dans une écriture lisible.
  • N'oubliez pas d'ouvrir et de fermer correctement les supports.
  • Venez avec des tests de validation pour votre code. Cela fonctionnera-t-il si la chaîne se compose d'un seul caractère? Et si sur 100? Et si 0?

Surveillez l'erreur de l'unité non comptabilisée dans les cycles:

  • Lors du comptage de caractères dans une chaîne ou le premier index d'un tableau, le nombre n est considéré dans la plage de 0 à n-1 . Autrement dit, le premier caractère est (0) et le dernier est (longueur - 1).
  • La boucle for (for i = 0; i < 5; i++) se terminera par le nombre 5. Si vous affichez ceci, alors 0, 1, 2, 3, 4 y seront affichés. Pour afficher 5 de plus, entrez i <= 5 .

Dans la deuxième partie de l'article, nous expliquerons pourquoi les interviews d'écriture de code sont si compliquées. Et c'est tout pour aujourd'hui. Des informations plus intéressantes peuvent être obtenues lors du webinaire gratuit , qui se tiendra le 19 décembre.

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


All Articles