Question d'entretien pour Ingénieur QA

Comment structurez-vous une base de code d'automatisation d'interface pour qu'elle ne devienne pas immaintenable ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Séparez les couches. Les objets de page ou de composant encapsulent les sélecteurs et les interactions de bas niveau ; une couche de parcours les compose en actions métier comme se connecter ou finaliser une commande ; les tests ne contiennent que l'intention et les assertions. Gardez les sélecteurs à un seul endroit, préférez des identifiants de test dédiés aux chemins CSS fragiles, et gardez les assertions hors des objets de page pour que les échecs pointent la bonne couche.

Pourquoi les recruteurs posent cette question

Les suites d'interface s'effondrent sous leur propre poids quand les sélecteurs et la logique sont éparpillés, donc les recruteurs veulent voir que vous traitez le code de test comme du code de production. Ce qu'ils guettent, c'est un seul foyer pour les sélecteurs, une couche de parcours au-dessus des objets de page, et des assertions gardées dans les tests. Mentionner des attributs de test dédiés plutôt que du CSS ou du XPath fragile est un signal pratique fort.

Comment structurer votre réponse

  • Nommez les couches et ce que chacune possède.
  • Mettez chaque sélecteur à un seul endroit par page ou composant.
  • Défendez les identifiants de test dédiés face aux sélecteurs fragiles.
  • Gardez les assertions dans les tests, pas dans les objets de page.
  • Mentionnez la préparation partagée via l'API plutôt que via l'interface.

Exemple de réponse

Exemple parlé, à la première personne

Je traite le code de test comme du code de production, donc les mêmes règles s'appliquent : pas de duplication, des couches claires, des noms parlants. Tout en bas j'ai des objets de page ou de composant qui possèdent les sélecteurs et la mécanique d'interaction avec ce morceau d'interface. Au-dessus se trouve une couche de parcours pour les actions de niveau métier, du genre se connecter avec un utilisateur ayant ce rôle, ou ajouter un article et finaliser la commande, parce que ces séquences sont réutilisées en permanence et que vous ne voulez pas les voir copiées-collées dans quarante tests. Les tests se lisent alors comme l'exigence, essentiellement des appels de méthodes et des assertions. Je garde les assertions hors des objets de page, parce que quand un objet de page fait une assertion, un échec vous dit qu'une page est mécontente plutôt que quel comportement a cassé. Sur les sélecteurs, je pousse fort pour des attributs de test dédiés convenus avec les développeurs, parce que courir après des chemins CSS qui changent dès que quelqu'un restyle un composant est la raison principale de l'abandon de ces suites. Et je fais la préparation via l'API dès que possible : si un test porte sur la commande, créer le compte et le panier en HTTP est plus rapide et bien moins instable que de piloter douze écrans pour y arriver.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Comment évitez-vous que les objets de page deviennent des objets fourre-tout de mille lignes ?
  • Que feriez-vous si les développeurs refusaient d'ajouter des identifiants de test ?
  • Comment partagez-vous l'état de connexion entre les tests sans répéter le parcours de connexion ?

Autres questions pour Ingénieur QA

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot