Préparation entretien · 227 questions

Questions d'entretien QA manuel

Mis à jour

Les questions que les candidats QA manuel se font vraiment poser — avec la réponse courte et directe qu'un examinateur veut entendre, la relance qui suit, et le piège qui coule les gens. Parcourez les aperçus ; ouvrez ce dont vous avez besoin.

56 questions

Quelle est la différence entre sévérité et priorité ?

Gestion des défautsjuniormid

La sévérité est à quel point le produit casse — le testeur la fixe. La priorité est à quelle échéance le métier a besoin du correctif — le product owner la fixe.

La sévérité est à quel point le produit casse — le testeur la fixe. La priorité est à quelle échéance le métier a besoin du correctif — le product owner la fixe. Elles bougent indépendamment, et les examinateurs posent ça pour voir si vous savez tenir les deux prismes à la fois.

Exemple concret

Un crash dans un rapport que presque personne n'ouvre : sévérité haute, priorité basse. Une faute dans le nom de l'entreprise sur la page d'accueil : sévérité basse, priorité haute — chaque visiteur la voit. Citez une paire comme celle-ci de votre propre projet et la question est gagnée.

Points clés
  • Sévérité = impact, la QA la fixe
  • Priorité = urgence, le produit la fixe
  • Elles peuvent diverger
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Réciter les définitions et s'arrêter. Chaque candidat sait les définir ; c'est l'exemple qui est noté.

Copier le lien

Décrivez-moi le cycle de vie d'un bug.

Gestion des défautsjunior

New → Assigned → In Progress → Fixed → Ready for Test → Verified/Closed, avec Reopened quand le retest échoue. Plus les fins sans correctif : Rejected, Duplicate, et Deferred.

New → Assigned → In Progress → Fixed → Ready for Test → Verified/Closed, avec Reopened quand le retest échoue. Plus les fins sans correctif : Rejected, Duplicate, et Deferred.

Les noms d'états varient selon l'entreprise et la config Jira — ce qui ne varie jamais, c'est le passage de relais : qui possède le bug à chaque étape et quelle preuve le fait avancer.

Exemple concret

Un bug de checkout trouvé une semaine avant un gel de release est corrigé et vérifié. Le même bug trouvé deux jours avant le gel peut être Deferred — ce n'est pas un bug fermé, c'est un risque que le métier a accepté par écrit, et il rouvre le jour où le gel se lève.

Points clés
  • New → Fixed → Verified/Closed
  • Reopened au retest échoué
  • Deferred = risque accepté, consigné
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Lister les états comme un poème. Les examinateurs écoutent qui possède le bug à chaque étape.

Copier le lien

Qu'est-ce qui fait un bon rapport de bug ?

Gestion des défautsjuniormid

Un bon rapport de bug se fait corriger sans que personne ne revienne vous poser des questions. Ça demande : un titre disant ce qui a cassé et où, des étapes numérotées depuis un point de départ…

Un bon rapport de bug se fait corriger sans que personne ne revienne vous poser des questions. Ça demande : un titre disant ce qui a cassé et où, des étapes numérotées depuis un point de départ connu, résultat attendu vs réel, environnement et build, et une preuve — capture d'écran, ligne de log, ou ID de requête.

L'écart entre attendu et réel EST le bug.

Exemple concret

Le titre « Le checkout renvoie 500 quand le panier a plus de 10 articles » s'est fait corriger en un jour — le développeur l'a reproduit du premier coup depuis les étapes. Le titre « Checkout cassé » de la même semaine a fait des allers-retours pendant trois jours de questions d'abord.

Points clés
  • Titre : ce qui a cassé, où, quand
  • Attendu vs réel — l'écart est le bug
  • Preuve : l'ID de requête bat la capture d'écran
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Dire « des étapes de reproduction claires » et rien d'autre — c'est la réponse que tout le monde donne.

Copier le lien

Un développeur rejette votre bug avec « ça marche sur ma machine ». Comment gérez-vous ça ?

Gestion des défautsmidsenior

Supposez que la différence est réelle — environnement ou données, pas la personne. Comparez les contextes : build, navigateur, compte, données de test, feature flags.

Supposez que la différence est réelle — environnement ou données, pas la personne. Comparez les contextes : build, navigateur, compte, données de test, feature flags. Reproduisez à nouveau sur un état propre et comptez le taux.

Puis apportez une preuve au lieu de répéter les étapes : un enregistrement avec l'onglet réseau ouvert, l'ID de la requête en échec, le log à cet horodatage — et proposez dix minutes à votre bureau pour un repro en direct.

Exemple concret

Le bug qui m'a appris ça : une remise appliquée deux fois — pour moi, jamais pour le développeur. La différence était un feature flag activé pour mon compte de test et désactivé pour le sien. Depuis, les flags et l'état du compte sont la première chose que je compare, pas la dernière.

Points clés
  • Comparez build, données, flags, compte
  • Comptez le taux de repro
  • Preuve + offre de repro en direct
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Rouvrir avec « ça se produit encore chez moi » et aucune nouvelle information — une mise à jour de statut, pas une investigation.

Copier le lien

Comment décidez-vous de la sévérité d'un défaut ?

Gestion des défautsjuniormid

Par l'impact utilisateur, pas par sa laideur : ce qui casse, pour combien d'utilisateurs, et y a-t-il un contournement.

Par l'impact utilisateur, pas par sa laideur : ce qui casse, pour combien d'utilisateurs, et y a-t-il un contournement. Critique = perte de données, sécurité, ou un flux principal bloqué sans échappatoire. Haute = fonctionnalité majeure cassée, contournement pénible. Moyenne = un contournement raisonnable existe. Basse = cosmétique.

Exemple concret

Un crash de paiement par carte était Critique — jusqu'à ce qu'on confirme que PayPal marchait encore, ce qui l'a fait passer Haute : même bug, un contournement a changé la décision. Les deux questions qui règlent chaque débat de sévérité : qui rencontre ça, et qu'est-ce que ça leur coûte ?

Points clés
  • Impact × portée × contournement
  • Critique = perte de données, sécurité, flux principal bloqué
  • Un contournement abaisse la sévérité
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Tout appeler critique. Si tout est critique, rien ne l'est, et les développeurs cessent de faire confiance à vos rapports.

Copier le lien

Quelles sont les phases du SDLC, et où s'insère la QA ?

SDLC & STLCjunior

Exigences → conception → développement → test → déploiement → maintenance. La réponse moderne : la QA s'insère dans chaque phase, pas seulement celle du test — questionner les exigences, relire les…

Exigences → conception → développement → test → déploiement → maintenance. La réponse moderne : la QA s'insère dans chaque phase, pas seulement celle du test — questionner les exigences, relire les conceptions pour la testabilité, préparer les cas pendant le développement, surveiller la production après la release.

Exemple concret

En refinement j'ai posé une question sur une fonctionnalité de remise : « que se passe-t-il si le code expire pendant que le panier est ouvert ? » Personne n'avait décidé. Y répondre a coûté cinq minutes dans cette réunion ; le découvrir en test aurait coûté un bug codé, un correctif et un retest.

Points clés
  • Six phases, la QA dans toutes
  • Les bugs d'exigences sont les moins chers
  • « La QA commence après le code » = mauvaise réponse
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Placer la QA seulement dans la phase de test — l'idée fausse exacte que la question existe pour attraper.

Copier le lien

Qu'est-ce que le STLC et quelles sont ses étapes ?

SDLC & STLCjunior

Le Software Testing Life Cycle : analyse des exigences → planification des tests → conception des cas de test → mise en place de l'environnement → exécution → clôture.

Le Software Testing Life Cycle : analyse des exigences → planification des tests → conception des cas de test → mise en place de l'environnement → exécution → clôture. C'est la piste de test qui tourne à l'intérieur du SDLC.

Ne récitez pas juste les noms — dites ce que chaque étape produit : la planification donne le périmètre et les estimations, la conception donne les cas et les données, l'exécution donne les défauts, la clôture donne le résumé et les leçons.

Points clés
  • Six étapes, analyse → clôture
  • Chaque étape a une sortie
  • Les sorties rendent la réponse réelle
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Réciter les noms d'étapes sans rien derrière. Nommez les sorties et vous avez l'air de l'avoir fait.

Copier le lien

Expliquez la différence entre Waterfall, modèle en V et Agile du point de vue du test.

SDLC & STLCjuniormid

En Waterfall, le test est une phase tardive unique — les bugs surgissent des mois après avoir été écrits, à leur coût maximal.

En Waterfall, le test est une phase tardive unique — les bugs surgissent des mois après avoir été écrits, à leur coût maximal. Le modèle en V associe chaque étape de développement à une étape de test, donc la conception des tests commence tôt mais l'exécution reste tardive. En Agile, le test tourne dans chaque sprint.

La vraie différence est le temps de feedback : mois, semaines, jours.

Exemple concret

Même bug d'exigence, trois mondes : en Waterfall il est trouvé au sixième mois pendant le test système. En modèle en V il est attrapé en écrivant les tests d'acceptation contre la spec — avant le code. En Agile il surgit dans la conversation des trois amigos du sprint, la semaine même où il a été écrit.

Points clés
  • Waterfall : test tardif, bugs chers
  • Modèle en V : conception tôt, exécution tard
  • Agile : test à chaque sprint
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Décrire les modèles sans jamais dire quand un bug est trouvé — c'est le point de vue du test qu'ils ont demandé.

Copier le lien

Que sont les critères d'entrée et de sortie ?

SDLC & STLCjuniormid

Critères d'entrée : ce qui doit être vrai avant que le test commence — build déployé, smoke qui passe, données de test prêtes.

Critères d'entrée : ce qui doit être vrai avant que le test commence — build déployé, smoke qui passe, données de test prêtes. Critères de sortie : ce qui définit « terminé » — cas planifiés exécutés, aucun défaut critique ou haut ouvert.

Leur rôle est la protection : les critères d'entrée vous empêchent de brûler des jours sur un build cassé ; les critères de sortie empêchent « terminé » d'être celui qui argumente le plus fort le jour de la release.

Exemple concret

On a une fois accepté un build qui échouait au smoke « pour gagner du temps ». Deux testeurs ont passé une journée à logger des bugs qui étaient tous un seul déploiement cassé. Les critères d'entrée existent pour que ce jour ne se répète jamais : smoke vert, ou le build repart.

Points clés
  • Entrée = apte à démarrer
  • Sortie = autorisé à s'arrêter
  • Faits vérifiables, pas des opinions
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Des critères vagues comme « le test est terminé ». Si vous ne pouvez pas le vérifier objectivement, ce n'est pas un critère.

Copier le lien

Qu'est-ce que le shift-left testing ?

SDLC & STLCmidsenior

Déplacer le test plus tôt dans le cycle de vie — à gauche sur la timeline. Au lieu de trouver les bugs après le développement, vous les prévenez : relire les exigences, participer aux discussions de…

Déplacer le test plus tôt dans le cycle de vie — à gauche sur la timeline. Au lieu de trouver les bugs après le développement, vous les prévenez : relire les exigences, participer aux discussions de conception, écrire les cas de test avant le code, exécuter des vérifications automatisées en CI à chaque commit.

La justification est le coût : un bug d'exigence attrapé en revue coûte des minutes ; en production il coûte une release.

Exemple concret

Le bug le moins cher que j'aie jamais « trouvé » était une phrase : une story disait que les utilisateurs pouvaient recommander « n'importe quelle commande passée », et j'ai demandé si ça incluait les commandes avec des produits arrêtés. Ce n'était pas le cas — la story a changé en refinement, et le bug n'a jamais existé.

Points clés
  • Tester plus tôt : revues, conception, CI
  • La prévention plutôt que la détection
  • Le correctif le moins cher est pré-code
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Le définir comme « tester tôt » sans activité concrète. Nommez la réunion de refinement, la revue, la vérification CI.

Copier le lien

Quelle est la différence entre vérification et validation ?

Fondamentaux du testjunior

Vérification : construisons-nous le produit correctement — correspond-il à la spec ? Surtout statique : revues, walkthroughs. Validation : construisons-nous le bon produit — sert-il l'utilisateur ?

Vérification : construisons-nous le produit correctement — correspond-il à la spec ? Surtout statique : revues, walkthroughs. Validation : construisons-nous le bon produit — sert-il l'utilisateur ? Surtout dynamique : exécuter des tests, UAT.

Ancre : vérifier la spec, valider le besoin.

Exemple concret

La spec dit que la remise est de 10 % ; le code applique exactement 10 % — la vérification passe. Mais le métier avait promis 15 % aux clients — la validation échoue, parce que la spec elle-même était fausse. Une implémentation parfaite d'une mauvaise exigence reste un mauvais produit.

Points clés
  • Vérification = contre la spec
  • Validation = contre le besoin
  • Bonne construction d'une mauvaise spec échoue à la validation
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Inverser les deux sous pression. Ancrez-le : vérifier la spec, valider le besoin.

Copier le lien

Quelle est la différence entre QA, QC et test ?

Fondamentaux du testjuniormid

La QA porte sur le processus — prévenir les défauts en améliorant comment le logiciel est construit : revues, standards, travail de cause racine.

La QA porte sur le processus — prévenir les défauts en améliorant comment le logiciel est construit : revues, standards, travail de cause racine. Le QC porte sur le produit — vérifier la chose construite. Le test est l'activité principale dans le QC : exécuter le produit pour trouver des défauts.

Une ligne : la QA prévient, le QC détecte, le test est comment le QC détecte.

Exemple concret

Après la troisième release avec des bugs de paiement, on n'a pas juste testé plus fort — on a ajouté une checklist de scénarios de paiement en refinement et une vérification de contrat sandbox en CI. Ce changement de processus, c'est de la QA. La régression qui vérifie encore chaque release, c'est du QC.

Points clés
  • QA = processus, prévention
  • QC = produit, détection
  • Test = exécution dans le QC
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Traiter les trois mots comme des synonymes — la question existe pour vérifier que vous savez qu'ils ne le sont pas.

Copier le lien

Qu'est-ce que le test statique et en quoi diffère-t-il du test dynamique ?

Fondamentaux du testjuniormid

Le test statique examine le travail sans l'exécuter — revues d'exigences, revues de code, walkthroughs, linting. Le test dynamique exécute le logiciel et vérifie le comportement.

Le test statique examine le travail sans l'exécuter — revues d'exigences, revues de code, walkthroughs, linting. Le test dynamique exécute le logiciel et vérifie le comportement.

Le statique trouve les défauts à leur coût le plus bas ; les équipes fortes font les deux, et commencent par le statique.

Exemple concret

Une revue d'exigences a attrapé « l'utilisateur est notifié » sans canal défini — e-mail ? in-app ? SMS ? Un commentaire l'a corrigé. Trouvé dynamiquement des semaines plus tard, ce même manque aurait été une fonctionnalité construite ne notifiant personne, plus un bug, un correctif et un retest.

Points clés
  • Statique = revue, pas d'exécution
  • Dynamique = exécuter et observer
  • Le statique est l'attrapage le moins cher
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Penser que le test statique n'est que pour le code — les exigences et les conceptions sont ses plus gros gains.

Copier le lien

Quelle est la différence entre smoke et sanity testing ?

Types de testjunior

Le smoke est une vérification large et peu profonde sur un nouveau build : les chemins critiques marchent-ils du tout ? Il décide si le build vaut la peine d'être testé davantage.

Le smoke est une vérification large et peu profonde sur un nouveau build : les chemins critiques marchent-ils du tout ? Il décide si le build vaut la peine d'être testé davantage. Le sanity est une vérification étroite et ciblée après un correctif précis ou un petit changement : ce domaine se comporte-t-il rationnellement ?

Accroche : le smoke demande « le build est-il vivant ? », le sanity demande « ce correctif a-t-il vraiment atterri ? »

Exemple concret

Le build du matin arrive : login, recherche, checkout — quinze minutes de smoke. Il échoue au login, donc le build repart direct ; personne ne passe la journée à tester un build mort. Plus tard un correctif de paiement atterrit : vingt minutes de sanity autour des paiements uniquement.

Points clés
  • Smoke : large + peu profond, garde le build
  • Sanity : étroit, après un changement
  • Smoke échoué = rejeter le build
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Utiliser les mots de façon interchangeable — l'examinateur vérifie que vous exécutez des vérifications de formes différentes pour des raisons différentes.

Copier le lien

Quelle est la différence entre test de régression et retest ?

Types de testjunior

Le retest vérifie un correctif précis : rejouer le cas en échec exact — passe, ou rouvre. La régression vérifie que le correctif n'a rien cassé à proximité : rejouer les tests qui passaient autour du…

Le retest vérifie un correctif précis : rejouer le cas en échec exact — passe, ou rouvre. La régression vérifie que le correctif n'a rien cassé à proximité : rejouer les tests qui passaient autour du changement.

Donc le retest rejoue les cas échoués, la régression rejoue ceux qui passaient — et la régression est le candidat classique à l'automatisation, parce qu'elle se répète pour toujours et ne fait que grossir.

Exemple concret

Un bug de sélecteur de date est corrigé. Retest : la date exacte cassée marche maintenant. Régression : chaque formulaire qui utilise le même composant de date — parce que le correctif a touché du code partagé, et « corrigé ici, cassé là » est précisément ce que la régression existe pour attraper.

Points clés
  • Retest = le correctif, sur le cas échoué
  • Régression = tout ce qui l'entoure
  • La régression est ce qu'on automatise
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Dire que la régression « teste le correctif ». C'est le retest — la régression porte sur tout ce qui l'entoure.

Copier le lien

Quelle est la différence entre test fonctionnel et non-fonctionnel ?

Types de testjunior

Le test fonctionnel vérifie ce que le système fait — les fonctionnalités contre les exigences. Le non-fonctionnel vérifie à quel point il le fait bien — performance, sécurité, utilisabilité,…

Le test fonctionnel vérifie ce que le système fait — les fonctionnalités contre les exigences. Le non-fonctionnel vérifie à quel point il le fait bien — performance, sécurité, utilisabilité, accessibilité, fiabilité.

Même fonctionnalité, deux prismes : le login marche (fonctionnel) ; le login répond en moins de deux secondes, verrouille contre la force brute, et marche avec un lecteur d'écran (non-fonctionnel).

Exemple concret

Une fonctionnalité de recherche passait chaque cas fonctionnel — bons résultats, bons filtres. En production elle s'est effondrée : réponses de 4 secondes sous charge réelle et pas de limitation de débit. Rien de « fonctionnel » n'était faux ; la release a quand même échoué. C'est pour ça que le second prisme existe.

Points clés
  • Fonctionnel = ce qu'il fait
  • Non-fonctionnel = à quel point bien
  • Perf, sécurité, utilisabilité, accessibilité
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Ne nommer que la performance. Sécurité, accessibilité et utilisabilité sont aussi non-fonctionnelles — les nommer est ce qui sonne senior.

Copier le lien

Expliquez le test boîte noire, boîte blanche et boîte grise.

Types de testjunior

Boîte noire : tester via l'interface sans connaissance du code — entrées et sorties. Boîte blanche : tester avec pleine visibilité du code — chemins, branches, unités.

Boîte noire : tester via l'interface sans connaissance du code — entrées et sorties. Boîte blanche : tester avec pleine visibilité du code — chemins, branches, unités. Boîte grise : connaître certains internes et les utiliser pour concevoir des tests boîte noire plus pointus.

Une bonne QA manuelle est en boîte grise en pratique : vous ne lisez pas chaque ligne, mais vous vérifiez la base de données après une sauvegarde et l'onglet réseau après un clic.

Exemple concret

Tester une mise à jour de profil : la boîte noire vérifie le message de succès. La boîte grise ouvre l'onglet réseau, voit que l'API a renvoyé 200 mais avec un corps vide, puis interroge la base de données — la sauvegarde n'a jamais eu lieu. L'UI mentait ; les internes disaient la vérité.

Points clés
  • Noire = interface, blanche = code
  • Grise = internes partiels, tests plus pointus
  • Vérifications BD + onglet réseau = boîte grise
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Des définitions de manuel sans exemple d'usage des internes — l'exemple de boîte grise est le facteur de différenciation.

Copier le lien

Quelle est la différence entre test alpha et beta ?

Types de testjunior

Les deux sont au stade d'acceptation. L'alpha se passe en interne avant la release — utilisateurs internes, environnement contrôlé, bugs encore attendus.

Les deux sont au stade d'acceptation. L'alpha se passe en interne avant la release — utilisateurs internes, environnement contrôlé, bugs encore attendus. La beta se passe dans la nature — vrais utilisateurs, vrais appareils, vraies données.

La distinction utile est le contrôle : en alpha vous pouvez observer et déboguer directement ; la beta échange le contrôle contre la réalité, et la réalité trouve ce que le labo ne peut pas.

Exemple concret

Une app est passée sans encombre en alpha sur le Wi-Fi du bureau et des téléphones récents. La beta a trouvé la vérité : des timeouts sur des réseaux mobiles capricieux et une mise en page cassée sur de petits écrans plus vieux — des environnements que le labo n'a jamais eus. C'est l'échange que la beta fait à dessein.

Points clés
  • Alpha : interne, contrôlé
  • Beta : vrais utilisateurs, vrai chaos
  • La beta trouve les bugs d'environnement
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Ne dire que « alpha à l'intérieur, beta à l'extérieur » — dites à quoi chaque stade SERT.

Copier le lien

Qu'est-ce que le User Acceptance Testing et qui le réalise ?

Types de testjuniormid

L'UAT est la vérification finale que le logiciel marche pour le métier — réalisée par des utilisateurs ou des représentants métier, pas par la QA.

L'UAT est la vérification finale que le logiciel marche pour le métier — réalisée par des utilisateurs ou des représentants métier, pas par la QA. Ils exécutent leurs vrais workflows et décident : accepter ou non.

La QA le rend possible : environnements, données, support des scénarios, triage des constats. Si l'UAT trouve de simples bugs fonctionnels, le test antérieur a échoué — l'UAT devrait confirmer l'adéquation, pas découvrir des défauts.

Exemple concret

Dans un déploiement de paie, la QA avait tout passé contre la spec. Les utilisateurs finance de l'UAT l'ont rejeté en une heure : l'export ne correspondait pas au format dont leur téléversement bancaire avait besoin. Rien n'était « cassé » — ça ne correspondait juste pas à comment le métier travaille vraiment. C'est tout le travail de l'UAT.

Points clés
  • Les utilisateurs métier réalisent, la QA rend possible
  • Confirme l'adéquation, pas un code sans bug
  • Des bugs fonctionnels en UAT = échec antérieur
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Dire que la QA réalise l'UAT. Le A, c'est « acceptance » — les gens qui acceptent sont les utilisateurs.

Copier le lien

Expliquez le partitionnement en classes d'équivalence avec un exemple.

Techniques de conception de testjunior

Diviser toutes les entrées possibles en groupes que le système devrait traiter pareil, puis tester une valeur par groupe au lieu de centaines.

Diviser toutes les entrées possibles en groupes que le système devrait traiter pareil, puis tester une valeur par groupe au lieu de centaines.

Ça marche parce que si le système gère correctement un membre d'une partition, il gère presque certainement le reste de la même façon — même chemin de code, même comportement.

Exemple concret

Champ d'âge acceptant 18–60 : trois partitions — en dessous de 18 (invalide), 18–60 (valide), au-dessus de 60 (invalide). Trois tests : 10, 35, 70. Vous avez couvert l'espace significatif avec trois valeurs au lieu de tester soixante âges qui parcourent tous le même code.

Points clés
  • Grouper les entrées qui se comportent pareil
  • Une valeur par partition
  • N'oubliez pas les partitions invalides
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Oublier les partitions invalides — la moitié de la valeur de la technique est de tester ce qui devrait être rejeté.

Copier le lien

Expliquez l'analyse des valeurs limites et pourquoi elle est efficace.

Techniques de conception de testjuniormid

Tester aux bords d'une plage, parce que c'est là que vivent les bugs. Pour chaque limite : un en dessous, la limite elle-même, un au-dessus.

Tester aux bords d'une plage, parce que c'est là que vivent les bugs. Pour chaque limite : un en dessous, la limite elle-même, un au-dessus.

C'est efficace parce que les bugs de limite sont des erreurs d'une frappe dans le code — un développeur écrivant > quand il voulait >=. Le partitionnement dit où tester ; les limites disent les valeurs exactes.

Exemple concret

Champ valide 18–60 : testez 17, 18, 19 et 59, 60, 61. Un vrai attrapage : « commande minimum 10 $ » rejetait exactement 10,00 $ — le code disait plus-grand-que au lieu de plus-grand-ou-égal. Seule la valeur limite elle-même aurait pu l'attraper ; 15 $ passait bien.

Points clés
  • En dessous, sur, au-dessus de chaque bord
  • Attrape les erreurs > vs >=
  • 18–60 → 17,18,19,59,60,61
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Ne tester que la limite valide et sauter les valeurs juste-en-dehors — ce sont elles qui attrapent l'off-by-one.

Copier le lien

Qu'est-ce que le test par table de décision et quand l'utiliseriez-vous ?

Techniques de conception de testmid

Une table de combinaisons de conditions et leurs résultats attendus — pour quand les règles métier interagissent et qu'aucune plage de champ unique ne raconte l'histoire.

Une table de combinaisons de conditions et leurs résultats attendus — pour quand les règles métier interagissent et qu'aucune plage de champ unique ne raconte l'histoire.

Sa force est d'exposer des combinaisons que personne n'a spécifiées : la ligne pour laquelle la spec n'a pas de réponse est un bug d'exigence trouvé avant qu'un seul test ait tourné.

Exemple concret

Livraison gratuite si : commande de plus de 50 $ ET membre ET non surdimensionnée. Huit combinaisons, huit lignes. Construire la table a fait surgir que personne n'avait décidé « plus de 50 $, membre, surdimensionné » — la spec était muette. Cette question est repartie vers le produit avant qu'un code soit testé.

Points clés
  • Lignes = combinaisons de règles + résultat
  • Pour des règles qui interagissent, pas des plages
  • Ligne vide = bug de spec trouvé tôt
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

L'utiliser pour une simple plage — c'est le travail du partitionnement. Les tables de décision sont pour les règles qui interagissent.

Copier le lien

Qu'est-ce que le test de transition d'états ?

Techniques de conception de testmid

Tester des systèmes où le comportement dépend de l'état — la même action donne des résultats différents selon ce qui s'est passé avant.

Tester des systèmes où le comportement dépend de l'état — la même action donne des résultats différents selon ce qui s'est passé avant. Cartographiez les états, événements et transitions, puis testez les chemins valides ET les invalides.

Les transitions invalides sont là où se cachent les bugs et les chemins de fraude.

Exemple concret

Flux de commande : Placée → Payée → Expédiée → Livrée. Annuler en état Placée marche ; annuler en état Expédiée doit refuser. Le bug qu'on a attrapé : un remboursement autorisé sur une commande en état Remboursée — argent sorti deux fois. C'est un test de transition invalide qui paie toute la technique.

Points clés
  • Pour un comportement dépendant de l'historique
  • Cartographier états, événements, transitions
  • Tester les transitions interdites
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Ne parcourir que le chemin nominal à travers les états — la valeur de la technique est les transitions qui NE doivent PAS arriver.

Copier le lien

Qu'est-ce que le test pairwise (toutes-paires) et pourquoi ça marche ?

Techniques de conception de testmidsenior

Une technique pour les explosions de combinaisons : au lieu de chaque combinaison de navigateur × OS × langue × rôle, vous testez un ensemble où chaque PAIRE de valeurs apparaît ensemble au moins une…

Une technique pour les explosions de combinaisons : au lieu de chaque combinaison de navigateur × OS × langue × rôle, vous testez un ensemble où chaque PAIRE de valeurs apparaît ensemble au moins une fois — des outils comme PICT le génèrent.

Ça marche parce que la plupart des bugs de combinaison sont déclenchés par deux facteurs qui interagissent, pas cinq. Toutes les paires ≈ la plupart des vrais bugs à une fraction du coût.

Exemple concret

3 navigateurs × 3 OS × 4 langues × 2 rôles = 72 combinaisons. L'ensemble pairwise couvre chaque paire en environ 12 tests. Le bug qu'il attrape encore : du texte allemand débordant d'un bouton — mais seulement dans Safari. C'est une interaction à deux facteurs, exactement ce que les paires couvrent.

Points clés
  • Couvrir chaque paire, pas chaque combo
  • La plupart des bugs d'interaction = deux facteurs
  • 72 combos → ~12 tests
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Prétendre qu'il couvre tout — il échange l'exhaustivité contre l'efficacité, et le dire est la réponse senior.

Copier le lien

Qu'est-ce que l'error guessing, et est-ce une technique légitime ?

Techniques de conception de testmid

Utiliser l'expérience pour viser directement les défaillances probables : entrées vides, zéro, négatifs, valeurs énormes, caractères spéciaux, double-clics, bouton retour après paiement, sessions…

Utiliser l'expérience pour viser directement les défaillances probables : entrées vides, zéro, négatifs, valeurs énormes, caractères spéciaux, double-clics, bouton retour après paiement, sessions expirées. Totalement légitime — comme complément.

Les techniques formelles donnent une couverture que vous pouvez défendre ; l'error guessing ajoute le punch de chaque bug que vous avez déjà vu.

Exemple concret

Un champ nom, formellement couvert par des partitions de longueur. L'error guessing ajoute : une apostrophe (O'Brien — casse le SQL naïf), un emoji, un espace de tête, et coller 10 000 caractères. L'apostrophe l'a trouvé : le formulaire renvoyait 500. Aucune table de partitions ne suggère O'Brien ; les cicatrices si.

Points clés
  • Attaques ciblées par l'expérience
  • Complément, jamais remplacement
  • S'affûte avec chaque bug vu
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

L'appeler « test aléatoire ». Il est ciblé par l'expérience — l'opposé de l'aléatoire.

Copier le lien

Combien de cas de test écririez-vous pour une page de connexion ?

Techniques de conception de testjuniormid

Pas de nombre magique — le bon mouvement est les catégories d'abord, puis la priorisation. Fonctionnel (valide, invalide, vide), validation (format, longueur, casse), sécurité (verrouillage,…

Pas de nombre magique — le bon mouvement est les catégories d'abord, puis la priorisation. Fonctionnel (valide, invalide, vide), validation (format, longueur, casse), sécurité (verrouillage, énumération, injection, masquage), session (expiration, déconnexion, se-souvenir-de-moi), non-fonctionnel (vitesse, accessibilité).

Puis : « avec un temps limité je lancerais le chemin nominal, le verrouillage et l'injection d'abord — le risque le plus élevé d'abord. » La structure plus les priorités, c'est ce qui est noté.

Points clés
  • Des catégories, jamais un nombre
  • Fonctionnel, validation, sécurité, session
  • Concluez par ce qui tourne en premier
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Répondre par un nombre. N'importe quel nombre est faux — la question sonde comment vous pensez, pas comment vous comptez.

Copier le lien

Quelle est la différence entre un scénario de test et un cas de test ?

Documentation de testjunior

Un scénario est quoi tester, une ligne : « vérifier qu'un utilisateur peut réinitialiser son mot de passe ». Un cas de test est comment : étapes, données, préconditions, résultats attendus.

Un scénario est quoi tester, une ligne : « vérifier qu'un utilisateur peut réinitialiser son mot de passe ». Un cas de test est comment : étapes, données, préconditions, résultats attendus. Un scénario se décompose généralement en plusieurs cas.

Les scénarios sont pour les conversations de couverture ; les cas sont pour l'exécution.

Exemple concret

Scénario : « l'utilisateur peut payer par carte ». Ses cas : chemin nominal carte valide, carte refusée, carte expirée, mauvais CVV, formulaire de carte abandonné en plein paiement. Cinq cas depuis une ligne — et dans une revue de couverture vous discutez de la ligne, pas des cinq documents.

Points clés
  • Scénario = quoi, une ligne
  • Cas = comment, avec des étapes
  • Un scénario → plusieurs cas
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Écrire des cas de 40 étapes pour tout — les équipes modernes tournent souvent sur des scénarios plus des notes exploratoires.

Copier le lien

Quelle est la différence entre un plan de test et une stratégie de test ?

Documentation de testmidsenior

La stratégie est l'approche permanente de l'organisation — niveaux, outils, environnements, standards. Elle change rarement.

La stratégie est l'approche permanente de l'organisation — niveaux, outils, environnements, standards. Elle change rarement. Un plan applique cette stratégie à une release ou une fonctionnalité : ce périmètre, ces personnes, ces dates, ces risques.

Une ligne : la stratégie est comment on teste ici ; un plan est comment on teste CECI.

Exemple concret

La stratégie dit : tests d'API en CI, automatisation UI pour les chemins de revenu, exploratoire chaque sprint. La migration de prestataire de paiement du T3 reçoit alors un plan : le périmètre inclut les remboursements et les webhooks, hors périmètre le prestataire legacy, les critères de sortie incluent un rapprochement sandbox complet.

Points clés
  • Stratégie = niveau org, stable
  • Plan = cette release, daté
  • Le plan hérite de la stratégie
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Utiliser les mots de façon interchangeable — la différence de périmètre est toute la question.

Copier le lien

Quels sont les contenus essentiels d'un plan de test ?

Documentation de testmid

Le périmètre (dedans ET dehors), l'approche par domaine, les environnements, les critères d'entrée et de sortie, le planning et les personnes, les risques avec mitigations, et le reporting.

Le périmètre (dedans ET dehors), l'approche par domaine, les environnements, les critères d'entrée et de sortie, le planning et les personnes, les risques avec mitigations, et le reporting.

Les deux sections qui séparent un vrai plan d'un modèle : le hors périmètre — ce que vous ne testerez délibérément pas, consigné avant la release — et les risques. Un plan sans risques veut dire que personne n'a réfléchi dur.

Exemple concret

La ligne hors périmètre qui a sauvé une dispute : « Tests de charge exclus — possédés par l'équipe plateforme ce trimestre. » Quand un souci de performance a surgi plus tard, le plan montrait que le métier avait accepté ce manque sciemment — une conversation, pas une chasse au coupable.

Points clés
  • Périmètre dedans ET dehors
  • Critères d'entrée/sortie
  • Des risques, sinon c'est un modèle
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Lister dix sections IEEE de mémoire — les examinateurs veulent les deux ou trois pour lesquelles vous vous battriez vraiment.

Copier le lien

Qu'est-ce qu'une matrice de traçabilité des exigences et pourquoi compte-t-elle ?

Documentation de testmid

Une correspondance entre les exigences et les cas de test qui les couvrent — pour que « est-ce que tout est testé ? » reçoive une réponse avec des preuves, pas un ressenti.

Une correspondance entre les exigences et les cas de test qui les couvrent — pour que « est-ce que tout est testé ? » reçoive une réponse avec des preuves, pas un ressenti. Une exigence sans cas lié est un manque de couverture trouvé avant la release.

Elle marche aussi à l'envers : quand une exigence change, la matrice dit exactement quels tests revisiter.

Exemple concret

Avant une release bancaire, la matrice montrait REQ-31 « détection de virement en double » avec zéro cas lié — tout le monde supposait que quelqu'un d'autre l'avait couvert. Une ligne vide dans un tableur a attrapé ce qui aurait été la pire surprise de production possible.

Points clés
  • Correspondance exigences ↔ tests
  • Ligne vide = manque trouvé tôt
  • Impact de changement : recherche inverse
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

L'appeler de la bureaucratie — la question est de savoir si vous pouvez PROUVER la couverture, pas si vous aimez les tableurs.

Copier le lien

Quelles métriques de test suivez-vous vraiment, et pourquoi ?

Métriquesmidsenior

Un petit ensemble, chacune liée à une décision : la fuite de défauts (le process attrape-t-il les choses ?), la densité de défauts par module (où concentrer), la progression d'exécution (sommes-nous…

Un petit ensemble, chacune liée à une décision : la fuite de défauts (le process attrape-t-il les choses ?), la densité de défauts par module (où concentrer), la progression d'exécution (sommes-nous dans les temps ?), et le taux d'instabilité s'il y a de l'automatisation (peut-on faire confiance au rouge ?).

La moitié senior, c'est ce que je NE suis pas : le pourcentage de réussite seul est de la décoration — chaque métrique rapportée doit changer une décision.

Exemple concret

La densité pointait vers le module de facturation : 3× les défauts de tout le reste. Ce chiffre a bougé de vraies décisions — la facturation a reçu des sessions exploratoires chaque sprint et un refactoring a intégré la prochaine roadmap. Une métrique qui déplace l'effort mérite d'être gardée ; le reste est du papier peint.

Points clés
  • Fuite, densité, progression, instabilité
  • Chaque métrique pilote une décision
  • Le taux de réussite seul = vanité
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Lister toutes les métriques dont vous avez entendu parler. Nommez les deux ou trois sur lesquelles vous agiriez, avec l'action.

Copier le lien

Qu'est-ce que la densité de défauts et l'efficacité d'élimination des défauts ?

Métriquesmid

La densité de défauts = défauts par unité de taille (par module, par KLOC) — son vrai usage est de comparer les modules pour trouver le point chaud.

La densité de défauts = défauts par unité de taille (par module, par KLOC) — son vrai usage est de comparer les modules pour trouver le point chaud. La DRE = attrapés avant la release ÷ total (attrapés + échappés) × 100 — le pourcentage que votre process a attrapé à temps.

La tendance bat l'instantané pour les deux.

Exemple concret

90 bugs attrapés en interne, 10 échappés en production : DRE = 90 ÷ 100 = 90 %. Le chiffre lui-même compte moins que sa direction — une DRE glissant de 95 à 85 sur trois releases est une fuite de process qui s'annonce tôt.

Points clés
  • Densité : défauts ÷ taille, par module
  • DRE : attrapés ÷ total × 100
  • Surveiller la tendance, pas l'instantané
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Citer des formules sans ce que vous FERIEZ du chiffre — le chiffre sans la décision est de l'anecdote.

Copier le lien

Qu'est-ce que le test exploratoire et quand est-ce le bon choix ?

Test exploratoiremid

Apprentissage, conception et exécution simultanés — vous explorez, et chaque résultat façonne le test suivant. Un travail qualifié avec un but, pas du clic aléatoire.

Apprentissage, conception et exécution simultanés — vous explorez, et chaque résultat façonne le test suivant. Un travail qualifié avec un but, pas du clic aléatoire.

Bon quand : les exigences sont minces, le temps est court, une fonctionnalité vient d'atterrir, ou les suites scriptées passent sans cesse pendant que les utilisateurs trouvent des bugs. Les scripts vérifient ce qu'on a prédit ; l'exploration trouve ce qu'on n'a pas prédit.

Exemple concret

Une suite de checkout était verte depuis des mois pendant que les tickets de support continuaient. Une session exploratoire de 90 minutes — charter : « attaquer le checkout en utilisateur impatient » — a trouvé trois bugs : double-clic double-débit, bouton retour après paiement, et un changement de prix en pleine session. Tous imprévisibles, tous non scriptés.

Points clés
  • Apprendre + concevoir + exécuter ensemble
  • Charter et time-box
  • Trouve ce que les scripts ne peuvent pas prédire
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Le décrire comme non structuré. Chartes, time-boxes et notes sont ce qui en font une discipline.

Copier le lien

Qu'est-ce que le session-based test management ?

Test exploratoiremidsenior

La couche de responsabilité du test exploratoire : des sessions time-boxées (60–90 min), chacune avec un charter, se terminant par des notes, des bugs, et un court debrief.

La couche de responsabilité du test exploratoire : des sessions time-boxées (60–90 min), chacune avec un charter, se terminant par des notes, des bugs, et un court debrief.

Ça répond à la question de management légitime « qu'a réellement fait l'exploration ? » — avec les sessions exécutées, les domaines couverts, les constats par charter — sans scripter l'exploration elle-même.

Exemple concret

Le budget exploratoire du sprint : six sessions. Le tableau après : « paiements — 2 sessions, 4 bugs », « nouvel onboarding — 1 session, propre », « rapports — non couverts ». Dix secondes de lecture disent au lead exactement où la confiance existe et où personne n'a regardé.

Points clés
  • Time-box + charter + notes + debrief
  • Rend l'exploration auditable
  • Charter = mission, pas des étapes
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Confondre le charter avec un cas de test — c'est une mission, et la liberté à l'intérieur est le point.

Copier le lien

Quelle est la différence entre test ad-hoc et test exploratoire ?

Test exploratoirejuniormid

L'ad-hoc est un tâtonnement non structuré — pas de but, pas de notes, pas de trace. L'exploratoire est une discipline : charter, time-box, notes, chaque constat orientant le test suivant.

L'ad-hoc est un tâtonnement non structuré — pas de but, pas de notes, pas de trace. L'exploratoire est une discipline : charter, time-box, notes, chaque constat orientant le test suivant.

Les deux sont non scriptés ; un seul laisse quelque chose derrière. Non scripté n'est pas la même chose que non professionnel.

Exemple concret

Ad-hoc : dix minutes à cliquer autour d'un nouveau build avant le stand-up — bien comme prise de pouls, invisible après. Exploratoire : un charter contre le même build, 90 minutes, des notes montrant trois domaines couverts et deux bugs. Même liberté, valeur complètement différente.

Points clés
  • Les deux non scriptés
  • Exploratoire : charter + notes
  • L'ad-hoc ne laisse pas de trace
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Les traiter comme synonymes — l'examinateur vérifie que vous savez que l'exploration peut être rigoureuse.

Copier le lien

Qu'est-ce que le test basé sur le risque ?

Stratégie de testmidsenior

Prioriser par le risque = probabilité × impact. Notez les fonctionnalités sur les deux, testez les plus risquées d'abord et le plus en profondeur, et allégez consciemment sur le reste.

Prioriser par le risque = probabilité × impact. Notez les fonctionnalités sur les deux, testez les plus risquées d'abord et le plus en profondeur, et allégez consciemment sur le reste.

La partie honnête : le test basé sur le risque veut dire accepter moins de couverture sur les domaines à faible risque — et le dire à voix haute au métier, au lieu de prétendre que tout reçoit une attention égale.

Exemple concret

Flux de paiement : impact élevé, change chaque sprint — test profond, d'abord, toujours. La page FAQ statique : un coup d'œil. Quand le temps a été coupé en pleine release, le classement de risque a fait l'argument pour nous : la FAQ est restée non testée et tout le monde avait déjà convenu que c'était bien.

Points clés
  • Risque = probabilité × impact
  • Le plus profond là où le risque est le plus élevé
  • Dire le compromis à voix haute
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Prétendre que le test basé sur le risque couvre tout — c'est une méthode de priorisation, et admettre le compromis est le point.

Copier le lien

Vous avez deux jours pour tester une release qui en demande deux semaines. Que faites-vous ?

Stratégie de testmidsenior

Couper par le risque, et mettre la coupe par écrit. Ordre : le rayon d'impact du diff, puis les chemins de revenu (login, checkout), puis les modules à historique de bugs, puis les hotfixes récents.

Couper par le risque, et mettre la coupe par écrit. Ordre : le rayon d'impact du diff, puis les chemins de revenu (login, checkout), puis les modules à historique de bugs, puis les hotfixes récents. Sauter le cosmétique, les flux à faible trafic, tout ce qu'une automatisation fiable couvre déjà.

Puis envoyez le plan AVEC la liste des non-testés — ma contrainte devient la décision informée du métier, ce qui est là où elle appartient.

Exemple concret

L'e-mail qui fait le job : « En deux jours je couvrirai le checkout, l'auth, et les trois modules changés. NON couvert : reporting, admin, export en masse. Si c'est inacceptable, on décale la date ou on ajoute des mains. » Chaque destinataire partage maintenant le risque qu'il me refilait silencieusement.

Points clés
  • Domaines changés → chemins de revenu → historique
  • Sauter ce que l'automatisation couvre
  • Liste des non-testés, par écrit
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

« Je ferais des nuits et des week-ends. » Ça cache un échec de planification et garantit qu'il se répète.

Copier le lien

Comment testeriez-vous une fonctionnalité sans exigences ni documentation ?

Stratégie de testmidsenior

Reconstruisez l'intention depuis ce qui existe : commentaires du ticket, la pull request, les maquettes, des fonctionnalités similaires, des concurrents.

Reconstruisez l'intention depuis ce qui existe : commentaires du ticket, la pull request, les maquettes, des fonctionnalités similaires, des concurrents. Puis explorez la fonctionnalité et notez ce qu'elle fait réellement sous forme d'affirmations simples — ce document devient la spec de facto.

Puis faites-la corriger par le développeur et le product owner : corriger une affirmation fausse est facile ; écrire une spec de zéro n'arrive jamais.

Exemple concret

Une fonctionnalité d'export non documentée : je l'ai explorée et écrit quatorze affirmations — « exporte les filtres actuels uniquement », « plafonne à 10 000 lignes », « envoie un e-mail à la fin ». Le PO a barré le plafond (« devrait être 50 000 ») et le développeur a entouré l'e-mail (« seulement en cas de succès — bug ? »). Deux constats avant que le test formel commence.

Points clés
  • Fouiller tickets, PRs, maquettes
  • Explorer → affirmations écrites
  • Leurs corrections = des constats
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

« Je ne peux pas tester sans exigences. » Le métier est de tester dans l'ambiguïté — cette réponse dit que vous ne savez pas faire le métier.

Copier le lien

Quel est le rôle d'un testeur dans les cérémonies Agile ?

Agile & Scrumjuniormid

Actif dans toutes, le plus fort tôt. Refinement : poser les questions de cas limites avant qu'elles deviennent du code. Planning : dimensionner le travail de test, signaler le risque.

Actif dans toutes, le plus fort tôt. Refinement : poser les questions de cas limites avant qu'elles deviennent du code. Planning : dimensionner le travail de test, signaler le risque. Stand-up : remonter les bloqueurs — environnements, données. Review : montrer ce qui a été testé, pas juste ce qui a passé. Rétro : apporter les bugs de process.

La valeur la moins chère de la QA est avant que le code existe.

Exemple concret

Une question de refinement — « qu'arrive-t-il à un renouvellement d'abonnement si le paiement échoue à mi-parcours ? » — s'est transformée en une story à part entière. Non posée, ç'aurait été un incident de production avec un débit partiel ; posée, c'était une décision de conception prise autour d'un café.

Points clés
  • Refinement = la plus grande valeur de la QA
  • Poser les cas limites pré-code
  • Rétro : les bugs de process comptent
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Décrire la QA comme des participants silencieux attendant les builds — le rôle moderne est le plus fort avant que le développement commence.

Copier le lien

Qu'est-ce que la Definition of Done, et en quoi les critères d'acceptation diffèrent-ils ?

Agile & Scrumjuniormid

La Definition of Done est la checklist permanente de l'équipe pour CHAQUE story : relue, testée, déployée en staging, documentée.

La Definition of Done est la checklist permanente de l'équipe pour CHAQUE story : relue, testée, déployée en staging, documentée. Les critères d'acceptation sont par story : les conditions que CETTE fonctionnalité doit remplir.

La DoD est la même barre pour toutes les stories ; les critères sont uniques par story. Les deux portes doivent se fermer.

Exemple concret

Une story de connexion a passé tous ses critères d'acceptation — le verrouillage marchait, les erreurs correctes. Toujours pas Done : la DoD exigeait des tests automatisés en CI et un déploiement en staging, et aucun n'existait encore. Les critères disaient que la fonctionnalité marche ; la DoD disait que le travail n'est pas fini.

Points clés
  • DoD : une barre, chaque story
  • Critères : cette story uniquement
  • Les deux doivent passer
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Les mélanger — ancre : la DoD est la barre de l'équipe, les critères sont la barre de la story.

Copier le lien

Qu'est-ce que la pratique des « trois amigos » ?

Agile & Scrummid

Une courte conversation avant le développement : le produit (de quoi a-t-on besoin ?), le développement (comment va-t-on le construire ?), la QA (qu'est-ce qui pourrait mal tourner, comment on le…

Une courte conversation avant le développement : le produit (de quoi a-t-on besoin ?), le développement (comment va-t-on le construire ?), la QA (qu'est-ce qui pourrait mal tourner, comment on le teste ?). Ensemble ils parcourent la story, font surgir les cas limites, s'accordent sur les critères d'acceptation.

Quinze minutes ici sont la prévention de bugs la moins chère qui existe.

Exemple concret

Story : « les utilisateurs peuvent appliquer un code de remise ». Les amigos, minute neuf : la QA demande à propos d'un code appliqué, puis le panier édité sous le minimum du code. Personne n'avait décidé. La règle a été écrite sur le champ — un bug qui n'a jamais existé, tué par une invitation de calendrier.

Points clés
  • Produit + dev + QA, pré-code
  • Cas limites tant qu'ils sont gratuits
  • Sortie : critères convenus
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

L'appeler une réunion de process — ça porte sur les cas limites d'une story, concret et court.

Copier le lien

Comment gérez-vous le test quand les stories ne sont prêtes que le dernier jour du sprint ?

Agile & Scrummidsenior

Deux réponses : composer aujourd'hui, corriger le système demain. Aujourd'hui : tester par ordre de risque, time-boxer l'exploration, et rendre explicite ce qui n'a pas été couvert avant la…

Deux réponses : composer aujourd'hui, corriger le système demain. Aujourd'hui : tester par ordre de risque, time-boxer l'exploration, et rendre explicite ce qui n'a pas été couvert avant la validation — ne jamais amincir le test en silence.

Demain : soulever le schéma en rétro avec des chiffres, et pousser les vrais correctifs — stories plus petites, QA en refinement, passations plus tôt, une limite de WIP.

Exemple concret

La ligne de rétro qui a changé ça : « Quatre sprints d'affilée, 60 % des stories ont atteint la QA le dernier jour — voici les dates. » Les chiffres ont transformé une plainte en un problème de process que l'équipe a possédé ; les stories ont été fractionnées plus petit et le test a commencé le premier jour, en plein développement.

Points clés
  • Aujourd'hui : ordre de risque + manques visibles
  • Ne jamais couper la couverture en silence
  • Rétro avec des chiffres, pas des ressentis
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Ne répondre qu'à la moitié héroïque de court terme. Les candidats seniors corrigent le système, pas juste le sprint.

Copier le lien

Dans un sprint, quand décidez-vous d'automatiser un test ?

Agile & Scrummid

Automatisez quand le test tournera de nombreuses fois contre une fonctionnalité stable : chemins de régression, smoke, répétitions à forte charge de données.

Automatisez quand le test tournera de nombreuses fois contre une fonctionnalité stable : chemins de régression, smoke, répétitions à forte charge de données. Restez manuel pendant que la fonctionnalité évolue, pour les ponctuels, et pour les décisions de jugement — visuels, utilisabilité, exploration.

La règle : manuel d'abord pendant que ça se stabilise, automatiser quand ça cesse de bouger. ROI en une ligne : le coût d'écriture sera-t-il remboursé par les exécutions ?

Exemple concret

Nouvelle refonte du checkout : manuel et exploratoire pendant deux sprints pendant que l'UI bougeait chaque jour — l'automatiser alors aurait voulu dire réécrire les locators chaque matin. Sprint trois, design gelé : le chemin nominal et les cas de paiement-refusé sont entrés dans la suite, où ils tournent à chaque build depuis.

Points clés
  • Automatiser : répété + stable
  • Manuel : en évolution ou jugement
  • ROI = coût d'écriture vs exécutions
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

« Tout automatiser » — la réponse qui dit que vous n'avez jamais maintenu une suite instable.

Copier le lien

Qu'est-ce que REST, et que signifient les méthodes HTTP et codes de statut courants ?

Bases des APIjuniormid

REST est le style standard pour les API web : des ressources aux URLs, des méthodes HTTP disant ce que vous faites. GET lit, POST crée, PUT/PATCH mettent à jour (complet vs partiel), DELETE supprime.

REST est le style standard pour les API web : des ressources aux URLs, des méthodes HTTP disant ce que vous faites. GET lit, POST crée, PUT/PATCH mettent à jour (complet vs partiel), DELETE supprime.

Les codes par famille : 2xx succès, 4xx vous vous êtes trompé (400 requête erronée, 401 non authentifié, 403 interdit, 404 manquant), 5xx ils se sont trompés. La paire que tout le monde confond : 401 = qui êtes-vous ; 403 = je vous connais, et non.

Exemple concret

Tester une suppression : DELETE /orders/123 renvoie 200. Le prolongement boîte grise : GET /orders/123 devrait maintenant renvoyer 404, et un second DELETE devrait aussi renvoyer 404 — pas 200 à nouveau, et surtout pas 500. Trois requêtes, et vous avez testé plus que le chemin nominal de l'endpoint.

Points clés
  • GET lire, POST créer, PUT/PATCH mettre à jour, DELETE supprimer
  • Familles 2xx / 4xx / 5xx
  • 401 = non authentifié, 403 = non autorisé
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Bafouiller 401 vs 403 — la question d'API la plus courante qui soit.

Copier le lien

Comment testez-vous une API manuellement avec Postman ?

Bases des APIjuniormid

Construisez la requête — méthode, URL, en-tête d'auth, corps JSON — envoyez, et vérifiez plus que le statut : les champs et valeurs du corps, le temps de réponse, et l'effet de bord (un GET de suivi…

Construisez la requête — méthode, URL, en-tête d'auth, corps JSON — envoyez, et vérifiez plus que le statut : les champs et valeurs du corps, le temps de réponse, et l'effet de bord (un GET de suivi ou la base de données montre-t-il le changement ?).

Puis la moitié négative : champs manquants, mauvais types, pas de token, l'ID de quelqu'un d'autre. Sauvegardez tout en collection avec des variables d'environnement pour que ça se rejoue comme une suite.

Exemple concret

POST /users renvoie 201 — a l'air terminé. Les vérifications qui trouvent les vrais bugs : GET le nouvel utilisateur (existe-t-il vraiment ?), POST le même e-mail à nouveau (409 ou doublon ?), POST sans auth (401 ?), et lire le corps de la réponse — on l'a une fois trouvé renvoyant le hash du mot de passe.

Points clés
  • Statut + corps + effet de bord
  • Cas négatifs : mauvaises données, pas d'auth
  • Collections + variables = réutilisable
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

« Envoyer la requête, vérifier 200. » Un 200 avec un mauvais corps passe ce test — ce qui est exactement le point de la question.

Copier le lien

Que testez-vous dans une API au-delà du code de statut ?

Bases des APImidsenior

Le corps : bons champs, valeurs, types. Le contrat : la réponse correspond au schéma documenté. Les erreurs : bons codes ET messages utiles.

Le corps : bons champs, valeurs, types. Le contrat : la réponse correspond au schéma documenté. Les erreurs : bons codes ET messages utiles. La sécurité : puis-je lire les données de quelqu'un d'autre en changeant un ID ? Les effets de bord : la base de données a-t-elle réellement changé ? Plus le temps de réponse et les en-têtes.

Celui qui impressionne : l'idempotence — le même POST deux fois ne doit pas créer deux enregistrements.

Exemple concret

GET /orders/124 avec le token de l'utilisateur A, où la commande 124 appartient à l'utilisateur B — elle a renvoyé la commande. Statut 200, JSON parfait, contrat impeccable… et une IDOR critique fuyant les achats d'autres clients. Aucune vérification de code de statut ne l'aurait jamais attrapé.

Points clés
  • Corps + schéma, pas juste le statut
  • IDOR : échangez l'ID, attendez 403
  • Idempotence : même POST deux fois
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

S'arrêter à « valider la réponse » — nommez les vérifications : schéma, sécurité, effets de bord, idempotence.

Copier le lien

Pourquoi les testeurs ont-ils besoin de SQL, et à quoi l'utiliseriez-vous ?

Bases du SQLjuniormid

Parce que l'UI montre une affirmation ; la base de données montre la vérité. SQL vérifie ce qu'une action a réellement persisté, construit des données de test précises au lieu de les mendier, et…

Parce que l'UI montre une affirmation ; la base de données montre la vérité. SQL vérifie ce qu'une action a réellement persisté, construit des données de test précises au lieu de les mendier, et règle la plus vieille question du triage : mauvaise donnée, ou mauvais affichage ?

Ça fait passer vos rapports de bug d'opinions à preuves.

Exemple concret

Le rapport qui se fait corriger en une heure : « Commande sauvegardée avec NULL dans la colonne remise — SELECT attaché. » Le rapport qui déclenche une dispute de trois jours : « le total a l'air faux parfois. » Même bug — la différence est une requête.

Points clés
  • Vérité de la BD vs affirmation de l'UI
  • Construire ses propres données de test
  • Rapports de bug de qualité preuve
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

« Pour vérifier les données dans la base » sans scénario — donnez l'histoire de la colonne NULL, pas la définition.

Copier le lien

Écrivez une requête SQL pour trouver les enregistrements en double, et expliquez brièvement les JOINs.

Bases du SQLjuniormid

Doublons : grouper et compter.

Doublons : grouper et compter.

SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;

HAVING filtre après le regroupement — c'est ce qu'ils vérifient ; WHERE ne peut pas voir le compte. JOINs : INNER = seulement les lignes correspondant dans les deux tables ; LEFT = toutes les lignes de gauche plus les correspondances, avec des NULL là où le côté droit manque.

Exemple concret

Le LEFT JOIN classique du testeur : users vers orders, puis WHERE orders.id IS NULL — chaque utilisateur qui n'a jamais commandé. Le même schéma trouve les commandes payées sans ligne de facture, les comptes sans enregistrement de vérification : les NULL sont votre liste de bugs de données manquantes.

Points clés
  • GROUP BY + HAVING COUNT > 1
  • HAVING filtre après le regroupement
  • LEFT JOIN + IS NULL = le trouveur de manques
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Écrire WHERE COUNT(*) > 1 — ça ne s'exécute pas, et c'est l'erreur exacte que la question a été construite pour attraper.

Copier le lien

Comment abordez-vous le test multi-navigateurs et multi-appareils ?

Types de testmid

Depuis l'analytique, pas depuis une liste maîtresse : couvrez les combinaisons que vos utilisateurs exécutent vraiment — généralement 4 à 6 paires couvrent 90 %+ du trafic.

Depuis l'analytique, pas depuis une liste maîtresse : couvrez les combinaisons que vos utilisateurs exécutent vraiment — généralement 4 à 6 paires couvrent 90 %+ du trafic. Passe fonctionnelle complète sur la paire principale ; sur les autres, mise en page, flux critiques, et différences de saisie (tactile, claviers, viewports).

Grids cloud plutôt que tiroirs d'appareils ; automatisation de captures d'écran pour le rendu. Couverture choisie par l'usage, pas par la peur.

Exemple concret

L'analytique disait : Chrome desktop 58 %, Chrome Android 22 %, Safari iOS 12 %, Edge 5 % — quatre paires, 97 % des utilisateurs. La matrice est devenue une passe profonde et trois ciblées. L'ancien plan avait onze navigateurs « pour être sûr » ; personne ne l'avait jamais fini.

Points clés
  • Matrice depuis VOTRE analytique
  • Profond sur les paires principales, ciblé sur le reste
  • Grid cloud + captures d'écran
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Promettre de tester « tous les navigateurs et appareils » — ce n'est pas une stratégie, c'est une excuse à l'avance.

Copier le lien

Qu'est-ce que le test d'accessibilité et par où commenceriez-vous ?

Types de testmidsenior

Vérifier que le produit marche pour les personnes en situation de handicap — visuel, moteur, auditif, cognitif — généralement contre les WCAG, souvent niveau AA.

Vérifier que le produit marche pour les personnes en situation de handicap — visuel, moteur, auditif, cognitif — généralement contre les WCAG, souvent niveau AA. Dans beaucoup de marchés c'est la loi, pas du polissage.

Commencez : un scan automatisé (axe/Lighthouse) pour le tiers facile, puis débranchez la souris — une passe complète au clavier seul trouve le plus de vrais bugs par minute. Puis un lecteur d'écran sur le flux critique, le contraste, le texte alternatif.

Exemple concret

Clavier seul sur un checkout : Tab atteignait le bouton payer mais le focus était invisible — contour blanc sur blanc — et le champ de code promo était inaccessible du tout. Deux vrais bloqueurs en dix minutes, sur une page dont le score Lighthouse était de 96.

Points clés
  • WCAG AA, souvent légal
  • Les scans attrapent ~un tiers
  • La passe clavier seul = la meilleure valeur
Ils demanderont ensuite · touchez-en un pour la réponse
Le piège

Traiter un score Lighthouse comme la réponse complète — le scanner ne peut pas dire si la page a du sens les yeux fermés.

Copier le lien

Pourquoi un testeur a-t-il besoin de SQL, et qu'est-ce que le test de base de données ?

Bases du SQLjuniormid

Parce que l'UI peut mentir et que la base de données est la source de vérité. Le test de base de données vérifie que les données sont stockées, mises à jour et reliées correctement — que ce qu'un…

Parce que l'UI peut mentir et que la base de données est la source de vérité. Le test de base de données vérifie que les données sont stockées, mises à jour et reliées correctement — que ce qu'un écran ou une API prétend a réellement atterri dans les tables, avec les bonnes valeurs et sans corruption.

SQL est comment vous le vérifiez. Après une action, vous interrogez la base de données et affirmez que la ligne est là, que les champs sont bons, et que rien d'autre n'a été touché. Une UI montrant « sauvegardé » alors que l'enregistrement n'a jamais persisté est exactement le bug que seule une requête attrape.

Points clés
  • La BD est la source de vérité ; l'UI peut montrer des données périmées ou fausses
  • Vérifier que les données ont persisté correctement, avec les bonnes valeurs, sans corruption
  • SQL permet d'affirmer sur la ligne derrière l'écran
Ils demanderont ensuite · touchez-en un pour la réponse
Copier le lien

Quelle est la différence entre un INNER JOIN et un LEFT JOIN ?

Bases du SQLmid

Un INNER JOIN renvoie seulement les lignes qui correspondent dans les deux tables. Un LEFT JOIN renvoie chaque ligne de la table de gauche, plus les correspondances de la droite — et des NULL là où…

Un INNER JOIN renvoie seulement les lignes qui correspondent dans les deux tables. Un LEFT JOIN renvoie chaque ligne de la table de gauche, plus les correspondances de la droite — et des NULL là où il n'y a pas de correspondance.

Pour le test, cette différence est une vraie vérification : un LEFT JOIN de orders vers shipments avec un shipment NULL trouve les commandes jamais expédiées — des enregistrements qu'un INNER JOIN cacherait silencieusement. Recourir au bon join est souvent comment vous faites surgir le bug de données manquantes.

Exemple concret

Pour trouver les utilisateurs qui n'ont jamais passé de commande : LEFT JOIN users vers orders et filtrer WHERE orders.id IS NULL. Un INNER JOIN abandonnerait exactement les utilisateurs que vous cherchiez.

Points clés
  • INNER : seulement les lignes correspondantes dans les deux tables
  • LEFT : toutes les lignes de gauche + correspondances, NULL sans correspondance
  • LEFT JOIN + IS NULL trouve les enregistrements manquants/orphelins
Ils demanderont ensuite · touchez-en un pour la réponse
Copier le lien

Quelle est la différence entre WHERE et HAVING ?

Bases du SQLmid

WHERE filtre les lignes individuelles avant qu'elles soient groupées. HAVING filtre les groupes après un GROUP BY, en utilisant les résultats d'agrégation.

WHERE filtre les lignes individuelles avant qu'elles soient groupées. HAVING filtre les groupes après un GROUP BY, en utilisant les résultats d'agrégation. Vous ne pouvez pas mettre une agrégation comme COUNT(*) dans un WHERE — c'est à ça que sert HAVING.

Donc pour trouver les clients avec plus de cinq commandes : GROUP BY client, puis HAVING COUNT(*) > 5. WHERE filtrerait les commandes avant de compter ; HAVING filtre les comptes eux-mêmes.

Points clés
  • WHERE filtre les lignes avant le regroupement
  • HAVING filtre les groupes après GROUP BY, sur les agrégations
  • Les agrégations (COUNT, SUM) vont dans HAVING, pas WHERE
Ils demanderont ensuite · touchez-en un pour la réponse
Copier le lien

Comment vérifieriez-vous qu'une API a réellement écrit les bonnes données dans la base de données ?

Bases du SQLmid

Appelez l'API, puis interrogez la table directement et affirmez que la ligne correspond à ce que vous avez envoyé — pas juste que l'API a renvoyé 200.

Appelez l'API, puis interrogez la table directement et affirmez que la ligne correspond à ce que vous avez envoyé — pas juste que l'API a renvoyé 200. Vérifiez les valeurs que vous avez définies, les défauts et timestamps que le système devrait ajouter, et que les tables liées ont été mises à jour correctement.

Ça attrape la classe de bug où l'API répond succès depuis la mémoire mais où l'écriture a silencieusement échoué ou sauvegardé la mauvaise valeur. La réponse dit ce que l'API prétend ; la requête dit ce qui s'est réellement passé.

Exemple concret

Un POST renvoyait 201 avec la commande dans le corps, mais un trigger faisait que la BD stockait le total avant remise. Seule une requête comparant le total stocké à la valeur attendue l'a attrapé.

Points clés
  • Interroger la ligne après l'appel — ne pas faire confiance au 200
  • Affirmer les valeurs, défauts/timestamps, et effets sur les tables liées
  • Attrape les bugs « l'API dit sauvegardé, la BD dit autre chose »
Ils demanderont ensuite · touchez-en un pour la réponse
Copier le lien

Comment trouvez-vous les lignes en double dans une table ?

Bases du SQLmid

Groupez par les colonnes qui devraient être uniques et comptez — tout ce qui dépasse un est un doublon.

Groupez par les colonnes qui devraient être uniques et comptez — tout ce qui dépasse un est un doublon. SELECT email, COUNT() FROM users GROUP BY email HAVING COUNT() > 1 renvoie chaque e-mail qui apparaît plus d'une fois, avec combien de fois.

C'est un test d'intégrité de données courant : un champ censé être unique (e-mail, numéro de commande) mais sans contrainte qui le fait respecter accumulera des doublons, et cette requête est comment vous le prouvez.

Points clés
  • GROUP BY les colonnes censées être uniques, COUNT(*)
  • HAVING COUNT(*) > 1 fait surgir les doublons
  • Vérification d'intégrité standard pour une unicité non imposée
Ils demanderont ensuite · touchez-en un pour la réponse
Copier le lien

Quelles vérifications d'intégrité de données écririez-vous pour une nouvelle fonctionnalité ?

Bases du SQLmidsenior

Celles qui attrapent la corruption silencieuse : pas de lignes orphelines (chaque enfant a un parent valide — un LEFT JOIN avec IS NULL), pas de doublons inattendus, champs requis jamais NULL, et des…

Celles qui attrapent la corruption silencieuse : pas de lignes orphelines (chaque enfant a un parent valide — un LEFT JOIN avec IS NULL), pas de doublons inattendus, champs requis jamais NULL, et des totaux qui se rapprochent (le total d'une commande égale la somme de ses lignes d'articles).

Ce sont les bugs qu'un test d'UI passe sans les voir — l'écran a l'air bien pendant que les données en dessous dérivent. Une poignée de requêtes permanentes sur les tables clés attrape les problèmes de données avant qu'ils ne s'aggravent en un incident de support.

Points clés
  • Pas d'orphelins (lignes enfant avec un parent manquant)
  • Pas de doublons inattendus ; champs requis non NULL
  • Rapprochement : les totaux dérivés correspondent à leurs sources
Ils demanderont ensuite · touchez-en un pour la réponse
Copier le lien
Ils demanderont ensuite