Skip to main content

Tutti coloro che operano nell'ambito dell'automazione dei test conoscono Robot Framework e Selenium. Sono i due principali framework di automazione che sviluppatori e tester utilizzano per creare ambienti di test che automatizzano la verifica di un'altra applicazione.

Quali sono quindi le applicazioni future di questi framework e in che modo plasmeranno l'evoluzione della tecnologia e delle applicazioni web? In questo articolo esplorerò le somiglianze e le differenze tra Robot Framework e Selenium, l'automazione tramite parole chiave e altre opinioni di esperti.

Le somiglianze tra Robot Framework e Selenium

Entrambi i framework sono tecnologie collaudate: Selenium esiste da oltre due decenni e Robot Framework si avvicina ai 20 anni. 

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

Entrambi sono open source e la base di utenti conta centinaia di migliaia (se non milioni) di persone. Tuttavia, nessuno dei due è uno strumento nel senso più stretto del termine; sono framework che usi per costruire lo strumento più adatto alle tue esigenze di test. 

Robot Framework e Selenium sono ampiamente utilizzati per il test di applicazioni web. In realtà, Selenium è stato creato proprio per questo scopo, mentre Robot Framework è stato progettato per automatizzare praticamente qualsiasi cosa. È noto che Robot Framework viene impiegato anche per il testing di sistemi di segnalazione sensibili al tempo.

Entrambi i framework sono accessibili da diversi linguaggi di programmazione: Selenium è storicamente associato a Java e C++, mentre Robot Framework è principalmente legato a Python.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

Le differenze tra Robot Framework e Selenium

Un framework di automazione dei test si pone tra il tester e l'applicazione sotto test. Fornisce un'interfaccia di scripting ("interfaccia di test superiore") per descrivere i test al framework e un'interfaccia driver ("interfaccia di test inferiore") per impartire comandi all'applicazione sotto test, simulando le azioni dell'utente. Il compito principale del framework è quindi tradurre i comandi dello script di test nell'interfaccia superiore in click, selezioni e digitazioni nell'interfaccia inferiore.

Selenium ha inizialmente stabilito lo standard per l'interfaccia inferiore nel testing di applicazioni web: un modello coerente per indirizzare gli elementi delle pagine web utilizzando un formato chiamato XPath. L'interfaccia superiore di Selenium è solo una leggera libreria di programmazione per lavorare con gli XPaths, il che richiede solide capacità di programmazione. Inoltre, tutti gli utenti di Selenium sanno che gli XPath tendono a cambiare, e i test necessitano di una manutenzione continua, dispendiosa in tempo e costi.

Robot Framework è nato dalla frustrazione verso strumenti di automazione macchinosi, incluso Selenium. L'obiettivo era creare un framework di automazione generico, estensibile tramite librerie personalizzate che implementino diverse interfacce di test. Il concetto prende ispirazione dall'automazione basata su parole chiave, ideata da Hans Buwalda e dal Behavior-Driven Development (BDD). 

Cos'è l'automazione basata su parole chiave in Robot Framework?

L'automazione basata su parole chiave consiste nel programmare comandi di alto livello come Login, EnterLead, CreateContact, ecc., che eseguono le azioni tipiche di un tester o di un utente reale. Le parole chiave nascondono i dettagli complessi degli XPath e altre tecnicalità. I progettisti dei test utilizzano poi le parole chiave per definire i test stessi. Se qualcosa cambia nell'implementazione dell'applicazione sottostante, è sufficiente modificare la definizione delle parole chiave e tutti i test che la usano funzioneranno nuovamente.

Considerazioni sull'automazione basata su parole chiave

L'automazione basata su parole chiave presenta però una criticità. Va posta molta attenzione nella definizione del vocabolario delle parole chiave per evitare la proliferazione delle stesse. Se si applica il BDD, la proliferazione delle parole chiave è quasi garantita. Se il vocabolario delle parole chiave è specifico per l'applicazione, utilizzare Robot Framework per progettare i test di una applicazione non implica essere in grado di farlo per un'altra. 

E, proprio come accade con Selenium, gli sviluppatori che mantengono tali implementazioni delle parole chiave tendono a diventare colli di bottiglia nel processo. Gli XPath volatili che necessitano di manutenzione possono essere molto meno numerosi rispetto a Selenium, ma restano comunque presenti.

Vantaggi dell'automazione basata su parole chiave e di ampie librerie

L'estendibilità di Robot Framework ha permesso alla community di creare molte librerie di parole chiave utili. Ad esempio, esistono almeno tre diverse librerie per l'automazione web: SeleniumLibrary, QWeb e BrowserLibrary.  Robot Framework SeleniumLibrary è stata realizzata a partire da Selenium, ma a un livello di astrazione superiore rispetto a quest'ultimo. La community offre una miriade di librerie per diversi altri scopi, come il testing di API o la generazione di dati di test. 

Se sei un programmatore professionista, puoi portare a termine qualsiasi attività di automazione web usando Selenium, ma dovrai occuparti in autonomia di tutte le fasi. Robot Framework offre lo stesso livello di flessibilità, ma con un vasto numero di librerie utili che possono rendere il tuo lavoro più produttivo.

Il modello di estendibilità accuratamente progettato è uno dei grandi punti di forza di Robot Framework. Ad esempio, puoi creare nuove librerie di parole chiave programmando in Python o in un altro linguaggio a scelta, oppure puoi semplicemente concatenare parole chiave esistenti, anche con strutture di controllo di base, per crearne di nuove.

Una nota sul no-code

Se non sei un programmatore professionista, sarai impotente con Selenium e, ad essere sinceri, quasi impotente anche con Robot Framework. Non riuscirai a comprendere molto di uno script Selenium, ma se vedi uno script di test Robot Framework, probabilmente, ma non sempre, potrai seguire la sua logica e capire cosa dovrebbe fare. Se hai buoni esempi da copiare e migliorare, riuscirai persino a creare tu stesso degli script Robot Framework.

Molti responsabili dei test stimano che lavorare con Robot Framework sia più produttivo rispetto a Selenium, grazie al suo maggiore livello di astrazione e alle librerie pronte all’uso che riducono sia il costo dell’automazione sia, in particolare, quello della manutenzione dei test. È comune vedere guadagni in produttività da quattro a otto volte rispetto a Selenium. 

D’altra parte, se sai quello che fai, puoi sicuramente portare a termine il lavoro con Selenium: la fatica di dover fare praticamente tutto da solo porta con sé la libertà di poter fare qualsiasi cosa autonomamente.