Traitez l'instabilité comme un incident de production, parce qu'un pipeline auquel personne ne fait confiance n'apporte aucune sécurité. Mesurez d'abord : suivez le taux de réussite et mettez en quarantaine les tests qui échouent par intermittence pour que main redevienne verte. Puis corrigez les tests en quarantaine par cause, en général de l'état partagé, des hypothèses de timing, ou une vraie condition de course. Imposez une règle : la quarantaine est temporaire, avec un responsable et une échéance, pour qu'elle ne devienne pas un cimetière.
Pourquoi les recruteurs posent cette question
C'est une question de culture et de systèmes. Le recruteur veut voir que vous identifiez le vrai dégât, à savoir que relancer entraîne les gens à ignorer les vrais échecs, et que vous avez un plan concret plutôt qu'un appel à la discipline. Il écoute aussi si vous supprimeriez ou mettriez en quarantaine des tests à la légère, puisqu'un test instable révèle parfois un vrai bug de concurrence dans le produit.
Comment structurer votre réponse
- Nommez le vrai coût : un build rouge qui ne veut plus rien dire.
- Mesurez l'instabilité avant de corriger quoi que ce soit.
- Mettez en quarantaine pour restaurer la confiance, puis corrigez à la racine.
- Posez des garde-fous sur la quarantaine pour qu'elle reste temporaire.
Exemple de réponse
Le danger, ce n'est pas le temps perdu, c'est que les gens ont appris que rouge ne veut pas dire cassé, donc le jour où une vraie régression arrive, elle passe aussi à coups de relances. Je commence par mesurer, parce que les opinions sur quels tests sont instables sont en général fausses. Relancez la suite plusieurs fois sur un commit inchangé, ou suivez le taux de réussite par test sur quelques centaines d'exécutions, et vous obtenez une liste classée. Puis mettez les pires hors du chemin bloquant pour que main soit verte et que rouge redevienne un signal, mais une quarantaine avec un responsable et une date d'expiration, sinon ça devient un cimetière que personne ne regarde. Pour les corriger, les causes se regroupent : des tests qui partagent de l'état via une base ou un singleton, des sleeps à la place de vraies attentes, et de la dépendance à l'ordre d'exécution. Et certains sont de vrais bugs. J'ai un jour poursuivi un test qui échouait une fois sur cinquante et c'était une vraie condition de course dans un pool de connexions, qui aurait donné un problème de production intermittent que personne n'aurait su reproduire.
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 marcheQuestions de relance à prévoir
- Comment empêcheriez-vous de nouveaux tests instables d'être mergés ?
- Quand est-ce que supprimer un test est le bon choix ?
- Comment gérez-vous une instabilité causée par un environnement de test partagé ?
Autres questions pour Ingénieur DevOps
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