Question d'entretien pour Ingénieur logiciel

Comment décidez-vous ce que vous couvrez par des tests unitaires plutôt que par des tests d'intégration ?

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

Réponse rapide

Testez unitairement la logique avec des branchements et des cas limites : règles de tarification, analyse syntaxique, machines à états. Testez en intégration les coutures où vos hypothèses rencontrent la réalité : requêtes en base, sérialisation, middleware d'authentification, clients tiers. Si un test a besoin de cinq mocks pour tourner, il teste surtout vos mocks et la valeur est plutôt dans un test d'intégration. Visez beaucoup de tests unitaires rapides plus un ensemble plus restreint de tests d'intégration couvrant les chemins critiques.

Pourquoi les recruteurs posent cette question

C'est en réalité une question sur l'origine des bugs. Le recruteur veut voir que vous testez le comportement plutôt que l'implémentation, que vous savez que des tests unitaires bourrés de mocks peuvent passer pendant que la production casse, et que vous savez articuler un ratio sans réciter la pyramide des tests comme un dogme. Le jugement sur ce qui ne vaut pas la peine d'être testé du tout est le signal le plus fort ici.

Comment structurer votre réponse

  • Découpez selon que le risque est logique ou d'intégration.
  • Signalez le symptôme du test bourré de mocks.
  • Décrivez la forme de suite que vous visez.
  • Dites ce que vous ne testez délibérément pas.

Exemple de réponse

Exemple parlé, à la première personne

Je découpe selon l'endroit où vit le risque. Si le risque est logique, des branchements, des arrondis, des cas limites dans une machine à états, c'est un test unitaire, et il doit être assez rapide pour que je lance tout le fichier à chaque sauvegarde. Si le risque est à une couture, mon SQL renvoie-t-il vraiment ce que je crois, le JSON se sérialise-t-il comme le client l'attend, le middleware rejette-t-il un jeton expiré, c'est un test d'intégration avec une vraie base dans un conteneur. L'heuristique que j'utilise, c'est le nombre de mocks : s'il m'en faut quatre pour faire tourner un test, ce test affirme mon modèle mental de ces quatre choses, et mon modèle mental est exactement ce qui est faux quand ça casse en production. J'essaie aussi d'être honnête sur ce que je ne teste pas. Un contrôleur mince qui ne fait que passer les données, ou un accesseur, est couvert incidemment et le tester séparément est un coût de maintenance sans signal. La suite que je veux, c'est beaucoup de tests unitaires rapides et peut-être vingt tests d'intégration sur les chemins où il y a de l'argent ou de l'authentification.

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 empêchez-vous les tests d'intégration de devenir lents et instables ?
  • Que pensez-vous des objectifs de couverture ?
  • Où se placent les tests de contrat entre services ?

Autres questions pour Ingénieur logiciel

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