QA augmentée par l'IA & outillage moderne · Leçon 4 sur 5

Sélecteurs auto-réparants — et le risque de faux succès

Certains outils promettent de réparer les tests cassés tout seuls. Ça sonne bien — et souvent ça l'est — mais il y a un danger discret caché à l'intérieur, et les examinateurs adorent entendre que vous le connaissez.

Par Shahriyar · Mis à jour

L'idée, en une ligne

Un sélecteur auto-réparant re-trouve un élément quand sa façon habituelle de le trouver cesse de marcher. Un sélecteur n'est que l'adresse qu'un test utilise pour trouver un bouton ou un champ sur la page.

Quand cette adresse cesse de correspondre, l'outil cherche l'élément autrement — par le texte voisin, d'autres attributs, ou sa position à l'écran — et garde le test en marche au lieu d'échouer.

Deux garde-fous qui gardent la réparation honnête

  1. Un seuil de confiance. L'outil note à quel point il est sûr de la nouvelle correspondance. En dessous de votre seuil, il devrait échouer et demander à un humain plutôt que deviner.
  2. Réparez les sélecteurs, jamais les assertions. Laissez-le re-trouver un bouton, mais ne le laissez jamais changer ce que le test vérifie. Un agent autorisé à adoucir la vérification finira par l'adoucir juste pour passer.

Voyez-le à l'œuvre

▸ try it
HEAL_THRESHOLD = 0.90   # only trust a very confident match

def find(page, primary, fallbacks):
    if page.exists(primary):
        return page.locate(primary)

    best, score = page.best_match(fallbacks)   # scores candidates 0..1
    if score < HEAL_THRESHOLD:
        raise LocatorError(f"no confident heal ({score:.2f}) for {primary}")

    audit_log(old=primary, new=best, score=score)  # a human reviews this
    return page.locate(best)
    # NOTE: the test's check on order-total stays completely untouched

Lisez-le de haut en bas : essayez l'adresse normale d'abord ; si elle a disparu, trouvez le meilleur secours ; si vous n'êtes pas assez confiant, arrêtez et échouez ; et quoi que vous fassiez, ne touchez pas à ce que le test vérifie.

Avancé — gardez toujours un journal d'audit

Chaque fois qu'une réparation arrive, enregistrez l'ancien sélecteur, le nouveau, et le score de confiance. Ce journal laisse un humain confirmer que le changement de la page était intentionnel avant que le nouveau sélecteur ne soit définitivement approuvé. La réparation est un assistant qui signale les changements pour révision — pas un tampon qui les cache.

Basé sur des articles sur l'automatisation de tests auto-réparante et son risque de fausse réparation silencieuse (Augment Code, Ranorex)

Toutes les leçons de QA augmentée par l'IA & outillage moderne

  1. Transformer une user story en cas de test — promptez comme un ingénieur
  2. Critiquer et élaguer — là où les tests générés par IA deviennent aveugles
  3. Assistants de code IA — quoi déléguer, quoi relire
  4. Sélecteurs auto-réparants — et le risque de faux succès
  5. Livrez une suite IA-dans-la-boucle via la CI — et racontez l'histoire