Vai al contenuto
SDETRole
SDETRole

Glossario · AI nel testing

Self-healing locator

Detto anche: locator auto-riparanti, self-healing locators, test self-healing, self-healing test automation

Definizione

Locator che, quando non trova più l'elemento, lascia allo strumento di test la scelta di un sostituto probabile in base ad attributi salvati o a un modello.

Un self-healing locator (locator auto-riparante) è un locator di test UI supportato da un meccanismo di recupero. Quando il locator principale non trova un elemento, ad esempio perché un id è cambiato, lo strumento cerca nella pagina l’elemento che meglio corrisponde a ciò che sapeva dell’originale (tag, testo, attributi, posizione, elementi vicini), lo usa e di solito registra la “riparazione” (heal) perché qualcuno possa aggiornare il test. L’obiettivo è ridurre i fallimenti causati da modifiche innocue al markup.

Come funziona in pratica

La maggior parte delle implementazioni segue lo stesso schema:

  1. Nelle esecuzioni riuscite, salva un’impronta (fingerprint) di ogni elemento toccato dal test.
  2. Quando un locator fallisce, assegna un punteggio agli elementi candidati nella pagina confrontandoli con quell’impronta.
  3. Se il candidato migliore supera una soglia, lo usa e registra la sostituzione; altrimenti fallisce normalmente.

Questo tipo di healing basato sulla somiglianza degli attributi è consolidato: lo offrono strumenti commerciali e Healenium è un’opzione open source per Selenium. L’healing basato su LLM, in cui un modello legge la pagina o l’albero di accessibilità e propone un nuovo locator o una patch al test, è più recente. I test agent di Playwright, introdotti nella 1.56, includono un healer che suggerisce correzioni per i test che falliscono; trattali come assistenti che propongono modifiche da revisionare, non come un pilota automatico.

Il vero rischio: “riparare” un bug reale

Un heal presuppone che la modifica fosse solo estetica. A volte non lo era:

  • Il pulsante “Submit” è stato rimosso per errore e l’healer clicca invece su “Save draft”.
  • Un campo è stato rietichettato da “Email” a “Username”, un vero cambiamento di requisito che il test avrebbe dovuto segnalare.
  • Esistono due righe simili e l’healer sceglie quella sbagliata, così il test passa sui dati sbagliati.

In ciascun caso un test che dovrebbe fallire diventa verde. Regole che mantengono onesto l’healing:

  • Segnala ogni heal e fai fallire l’esecuzione (o almeno evidenziala) nel quality gate di rilascio.
  • Trasforma gli heal in modifiche al codice. Accetta o rifiuta il locator suggerito in review; non lasciare che lo strumento continui a usarlo in silenzio.
  • Verifica i risultati, non solo le interazioni, così cliccare sull’elemento sbagliato fa comunque fallire l’asserzione successiva.

Prima sistema i locator

Gran parte della fragilità che il self-healing cerca di risolvere nasce da selettori fragili: lunghe catene XPath, nomi di classe generati, percorsi basati sugli indici. Locator orientati all’utente come getByRole('button', { name: 'Submit' }) di Playwright o attributi data-testid stabili eliminano la maggior parte di questa necessità senza bisogno di indovinare nulla.

Scrivi per cercare in tutto SDETRole.

Ricerca full-text con Pagefind · funziona nel tuo browser Apri la pagina di ricerca →