Question d'entretien pour Développeur backend

Comment testez-vous du code qui parle à une base de données et à une API externe ?

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

Réponse rapide

Testez contre une vraie base de données dans un conteneur plutôt que de simuler la couche de données, parce que la plupart des bugs vivent dans les requêtes, les migrations et les transactions qu'un mock ne sait pas exprimer. Pour les API externes, simulez à la frontière du transport avec des réponses HTTP enregistrées ou bouchonnées pour que votre propre code client soit exercé, et ajoutez un petit ensemble de tests de contrat contre le vrai service pour détecter la dérive. Gardez les tests isolés avec des transactions par test ou des schémas frais.

Pourquoi les recruteurs posent cette question

Le recruteur veut savoir si vos tests attraperaient vraiment une régression. Simuler la couche de dépôt produit des suites qui passent pendant que la production casse, donc il écoute les tests sur vraie base, les bouchons HTTP au niveau frontière, et un plan pour détecter quand un tiers change. La vitesse et l'isolation comptent aussi, puisqu'une suite lente ou instable finit ignorée quelle que soit son exhaustivité.

Comment structurer votre réponse

  • Énoncez le principe : simulez à la frontière du processus, pas à l'intérieur de votre propre code.
  • Utilisez une vraie base dans un conteneur et expliquez l'isolation entre tests.
  • Traitez les API tierces avec un transport bouchonné plus des vérifications de contrat.
  • Traitez la vitesse et l'instabilité pour que les gens continuent d'exécuter la suite.

Exemple de réponse

Exemple parlé, à la première personne

Ma règle est de simuler à la limite de mon processus et pas à l'intérieur. Donc la base est réelle, tournant dans un conteneur avec le même moteur et la même version qu'en production, et les migrations sont appliquées au début de l'exécution, ce qui veut dire que la migration elle-même est testée à chaque fois. Chaque test tourne dans une transaction annulée à la fin, ou obtient son propre schéma quand il doit valider, pour que les tests restent isolés et puissent tourner en parallèle. Simuler la couche de dépôt me donnerait des tests verts qui ne prouvent rien, puisque les bugs que j'expédie vraiment sont dans les requêtes, les contraintes et les frontières de transaction. Pour une API externe, je bouchonne au niveau HTTP avec des réponses enregistrées, pour que mon client, ma logique de reprise et mon parsing tournent vraiment ; je ne vais simplement pas sur le réseau. Comme les enregistrements dérivent, je lance aussi une petite suite de contrat contre leur bac à sable de façon planifiée, pas à chaque pull request, pour apprendre un changement par un job en échec plutôt que par une alerte à trois heures du matin.

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 gardez-vous la suite rapide une fois que vous avez une vraie base de données ?
  • Comment testez-vous un mode de défaillance comme une expiration de cette API ?
  • Que faites-vous des tests qui dépendent du temps ou de l'ordre ?

Autres questions pour Développeur backend

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