Blog

Agile Test Automation: i framework di test più comuni

La Test Automation è un software innovativo che ti permette di testare il tuo prodotto (un altro software) per assicurarne la qualità.

L’Agile Testing (o test agile o AT) è invece una metodologia di test che pone l’accento sulla coordinazione delle fasi di sviluppo e test del software. Il fine ultimo in questo caso è quello di automatizzare il test in modo più efficace.

In questo articolo parleremo di cos’è l’Agile Test Automation e il framework di test che aiuta a creare un processo più efficiente ed efficace.

 

Il test Agile e come si differenzia dal waterfall

Anche se il test agile e il test waterfall hanno in comune le basi della test automation, si differenziano in aspetti fondamentali come la pianificazione del progetto, l’esecuzione, e anche il team stesso.

Il Waterfall è anche conosciuto come un modello dal ciclo di vita lineare, dove tester e sviluppatori lavorano indipendentemente su un progetto.

Il Test Agile, invece, ha un approccio più graduale. Secondo questo modello, lo sviluppo e il test vanno di pari passo, sono allineati per assicurarsi di andare nella direzione giusta (ovvero i bisogni dei clienti). L’Agile prevede diverse iterazioni per ognuna delle quali il tester deve verificare la qualità dei criteri. Svolgere sviluppo e test in modo collaborativo assicura una veloce risoluzione dei problemi, così come una rapida identificazione ed eliminazione dei bug e una pianificazione flessibile.

Non fraintendiamo: il Waterfall ha i suoi vantaggi, ma l’Agile Testing è maggiormente orientato ai risultati, è dinamico e… neanche a dirlo, è agile.

Testing framework (TF)

È un set di linee guida o regole utilizzato per creare e disegnare i test case. Un framework è costituito da una combinazione di pratiche e tool volte ad aiutare i professionisti di Quality Assurance a testare in maniera efficiente (fonte: Smartbear).

La Test Automation si affida totalmente ai testing framework per il suo successo. Questi framework rendono lo sviluppo software più efficace ed efficiente, e allo stesso tempo riducono i costi e aumentano il Ritorno sull’investimento (ROI).

Sono un’integrazione di tool, librerie e utenze che possono includere coding standard, test-data management, object repository, metodi per conservare i risultati dei test, ecc. Determinano l’efficienza, l’accuratezza dei test e i costi di manutenzione dei progetti.

Inoltre, la scelta del tool da utilizzare per testare un software dipende in prima linea dalla natura del software: se è web o mobile based. Scegliere il corretto Testing Framework è quindi cruciale per il progetto di sviluppo del software.

Alcuni dei più comuni Framework di test sono1:

  • Framework di automazione lineare: ti permette di scrivere script sequenzialmente e performarli individualmente per ogni test case. Permette quindi di registrare e rivedere.
  • Modular-based TF: divide l’applicazione in unità o funzioni separate, ognuna delle quali viene testata individualmente.
  • Data-driven TF: separa i dati del test dalla logica dello script per permettere di conservare esternamente i dati.
  • Keyword-driven TF: separa i dati del test e la script logic in base alla keyword.
  • Library architecture TF: identifica task simili in base alla funzione. Permette il riutilizzo del codice su più script di test. 
  • Hybrid TF: utilizza diverse combinazioni di TFs.

Per essere efficaci, i Framework di test devono essere affidabili, flessibili e facilmente estendibili. Per esempio, se un framework può essere utilizzato solo sulla UI, può limitare la reach del test, rendendolo lento e precario.

Robot Framework

Robot Framework è un framework di test automation open source che può essere utilizzato per RPA (robotic process automation) e acceptance testing. Utilizza diversi stili di test case come data-driven, behavior-driven e keyword-driven.

Robot Framework è estremamente utile perché è abbastanza flessibile da essere integrato virtualmente con ogni tool per sviluppare soluzioni di automazione. Al contrario di altri framework, ha già un set standard di librerie di test, che rende più semplice l’interazione con il tuo sistema operativo. Inoltre, supporta librerie e tool open source esterne.

RF utilizza Selenium Library per lo sviluppo del web e il test della UI2. Interessante anche notare che gli esperti raccomandano Selenium per applicazioni web-based3. In più, Robot Framework può essere utilizzato da librerie implementate con Java o Python, due dei linguaggi più comuni, il che chiaramente rende l’esperienza del programmatore più fluida.

Considerazioni finali

Trovare il giusto tool o framework è fondamentale per l’efficacia della Test Automation. Bisogna utilizzare framework che siano flessibili e supportino un’ampia gamma di linguaggi: questo appianerà la strada al test a prescindere dal background e dalle competenze del team.

use-case-testautomation-crowdtesting

 

Fonti citate

[1]: Various frameworks

[2]: Selenium

 

Altri riferimenti:

1) https://robotframework.org/

2) Robot Framework 2

3) Robot Framework 3

3) Waterfall vs Agile

4) Waterfall vs Agile 2

5) Automation testing in Agile