Condividi l'articolo

È di questo mese di maggio l’uscita della nuova componente dedicata al test della piattaforma RPA UiPath: la UiPath Test Suite.

In questo articolo intendo dare una overview della sua architettura (non un tutorial su come usarla, ma potrebbe essere uno spunto per un prossimo articolo se lo ritenete interessante).

La UiPath Test suite è composta da un insieme di strumenti dell’ecosistema UiPath Enterprise Platform integrati tra loro e che al oro volta si possono integrare con strumenti di ALM e CD/CI esterni.

Al momento la Test Suite si presenta come una piattaforma adatta per il functional testing, API testing ed RPA testing. Ma non è tutto, il team UiPath assicura un grosso investimento che proseguirà nei prossimi mesi per estendere le capacità della testing platform al test prestazionale e probabilmente anche oltre. Siamo curiosi di conoscere la Roadmap del prodotto, la integrerò in questo articolo non appena mi sarà disponibile.

Le capacità attuali della suite consentono di eseguire test in ambiente desktop, web e mobile con connessioni dei device locali, in rete locale ed in cloud utilizzando device reali o emulati.

UiPath Test Suite

Nello schema architetturale troviamo il già noto Orchestrator che aggiunge nuove capacità di DevOps per la gestione dei test a cui si affiancano nuovi componenti dedicati a questo ambito. Vediamoli uno ad uno.

Studio Pro

E’ un’estensione del già noto IDE di sviluppo UiPath Studio, al quale aggiunge la possibilità di sviluppare progetti dedicati al test. I progetti di test si potranno eseguire direttamente dallo Studio Pro e/o pubblicare su Orchestrator come già facciamo con i progetti RPA tradizionali o utilizzarli all’interno di pipeline di CD/CI attraverso plugin dedicati da configurare negli strumenti di CD/CI come Jenkins.

Per la realizzazione del test Studio Pro utilizza il nuovo Testing Activities Pack che nella versione 1.0.0 introduce 3 tipologie di asserzioni con cui verificare l’esito del test e la capacità di fare code coverage dei test RPA.

Orchestrator

E’ il cuore pulsante dell’ecosistema UiPath, lo strumento di DevOps con cui la platform gestisce tutte le sue componenti. Con l’inserimento della Test Suite acquisisce la capacità di DevOps dei progetti di test. Le sue principali nuove funzioni sono di:

  • repository dei test pubblicati da Studio Pro
  • consolle per l’organizzazione dei test in strutture aggregate definite Test Sets
  • Consolle per l’avvio manuale dei test set
  • Monitor per la tracciatura delle esecuzioni
  • Consolle per la schedulazione dei Test Set

Orchestrator, all’interno dell’architettura della Test Suite, ha il ruolo di middleware. Interfaccia i plugin degli strumenti di CD/CI, la Test Suite, il Test Management Hub, lo Studio Pro ed i Testing Robot.

UiPath Test Suite - Orchestrator menù

Test Management Hub

Il Test Management Hub è il nucleo della Test Suite. Attraverso questo componente di backend la Test Suite rende possibile interfacciare lo strumento di ALM desiderato (tra quelli supportati) ed interagire con esso per la gestione dei test dal punto di vista di requisiti / user stories e bug. Più in generale, utilizzando REST API, è capace di interagire con le API di gestione degli artifact dei prodotti ALM supportati per consentirci il collegamento tra l’esecuzione di un test, il suo requisito e l’eventuale bug associato.

Test Manager

 

E’ la web application che mette a disposizione le funzionalità offerte dal Test Management Hub. Attraverso le sue interfacce è possibile attuare le seguenti funzionalità:

 

  • Assegnazione dei test agli artifact
  • Visualizzazione reportistica di base dei risultati dei test
  • Inserimento ed esecuzione dei test manuali
  • Apertura dei defects a partire dai test failed
  • Integrazione della documentazione dei casi di test con Task Capture

 

 

 

La dashboard del Test Manager consente di verificare l’avanzamento e lo stato delle esecuzioni dei test.

 

Test Manager - Langing Page

Test Manager – Langing Page

Sono disponibili due viste, una giornaliera ed una settimanale rolling sulle ultime 14 settimane.

 

Per aumentare le capacità di analisi sui dati prodotti dai test è possibile una integrazione di tool di BI esterni che possano interfacciare datasource ODBC o MS SQL Server.

 

E’ possible verificare i dettagli delle esecuzioni dal menù esecuzioni che produce l’elenco delle esecuzioni effettuate e da cui si può navigare in drill-down sui dettagli dei risultati dei singoli test o relativi requisiti.

 

Test Manager - Executions

Test Manager-Executions

Selezionando una specifica esecuzione viene visualizzata l’overview dei risultati in cui sono in evidenza i test in stato failed.

 

Da notare come la data Reporting Date sia riferita alla partenza dell’esecuzione e non all’esecuzione del singolo test, consentendo così di raggruppare i test in esecuzione a cavallo della mezzanotte.

 

Test Manager-Executions Overview

Test Manager-Executions Overview

Passando alla scheda Result si ottengono i dettagli sui risultati dell’intera esecuzione.

 

Test Manager-Execution Result

Test Manager-Execution Result

Da qui è possibile navigare al requisito del test o al change log generato dall’esecuzione del test dalla piattaforma RPA e di consultare l’eventuale screenshot catturato per i test in stato failed al momento del fallimento del test.

 

Test Manager - Test Logs

Test Manager – Test Logs

Test Manager - Test Screenshot

Test Manager – Test Screenshot

La test suite non è solo test automatici ma anche test manuali. Consente infatti il censimento e l’esecuzione di test da eseguire manualmente.

 

Il censimento dei test manuali prevede il censimento dei singoli step che lo compongono. L’esecuzione del test manuale consiste nel valorizzare manualmente lo stato del test in PASSED o FAILED.

Test Managet - Manual Test

Test Manager – Manual Test

UiPath Testing Activities Pack

Rilasciato con Studio v2020.4, è il package dedicato alle activities di test ed alle funzionalità di analisi introdotte sul RPA testing. Attualmente è alla release 1.0.0 ed al suo interno troviamo le verification activities da utilizzare per la verifica del risultato del test.

Queste activities consentono di verificare l’esito di un test in tre modi differenti, vediamoli.

Studio-Verification-Activities

Verify Control Attribute activity

E’ un container per l’azione che genera l’output da verificare.

E’ possibile scegliere l’operatore di confronto con il risultato atteso tra un set predefinito di operatori.

Verify Control Activitiy
Verify Expression Activity

Verify expression activity

Consente di specificare una espressione da valutare nell’asserzione.

Verify expression with Operator activity

Consente di specificare due espressioni da confrontare scegliendo un operatore predefinito

Verify Expression Operator Activity

In generale, l’esito del test è immediatamente disponibile nella consolle di output dello Studio Pro, se eseguito localmente, o nel monitor di Orchestrator e nei report di Test Manager, se eseguito in modo orchestrato.

Test - Console Output

Test – Console Output

Tutte e tre le verification activities possono essere configurate per consentire di catturare automaticamente lo screenshot in caso di errore.

Uipath Mobile Automation Activity Pack

 

 

 

E’ il package di integrazione con il mondo mobile. Si integra con Appium (http://appium.io/), uno strumento open source per l’automazione di applicazioni native, Web mobile e ibride su piattaforme iOS mobili, Android mobili e desktop Windows.

 

 

 

La connessione ai device è supportata in modo diretto, in rete ed in cloud. Le azioni supportate sui device sono:

 

  • Tap
  • Double Tap
  • Long Tap
  • Swipe
  • Input Text
Test Suite - Mobile Test

Test Suite – Mobile Test

Test Case

La test suite è Data Driven! Questo significa che è possibile realizzare scenari di test che successivamente verranno eseguiti più volte utilizzando un dataset per alimentarli. Il test verrà eseguito una volta per ogni riga presente nel dataset di test e verrà registrato il relativo risultato.

Per farlo sarà sufficiente associare un dataset ad un determinato test. E’ possibile anche selezionare runtime un subset dei dati del dataset da utilizzare.

Associa DataSet
Filtro sul DataSet

RPA testing

La Test Suite consente di fare RPA testing, ovvero verificare i il funzionamento dei workflow e verificare il loro grado di copertura da casi di test.

Il test di un workflow è un particolare file sequence all’interno del quale devo essere eseguite le attività preliminari per la preparazione del test, l’invocazione del workflow da verificare e l’utilizzo delle verification activities per fare l’asserzione sul risultato dell’esecuzione.

Eseguendo il test in modalità debug è possibile verificare l’analisi della copertura del test rispetto all’input fornito nello specifico scenario, rendendo evidenti i rami di elaborazione percorsi durante l’esecuzione del test.

RPA Test Case

API testing

La Test Suite è integrata con Postman, la Collaboration Platform per lo sviluppo di API. Questa integrazione consente di trasformare le collection API di Postman in activity da inserire nei progetti di test. Le activity ottenute dalle collection API possono essere utilizzate localmente al progetto di test o pubblicate come librerie utilizzabili in altri progetti.

E’ disponibile una command line collection runner per l’utilizzo da command line.

L’esecuzione dei test delle API supporta il modello data driven.

Postman

Postman

Postman-Service Editor

Postman-Service Editor

Esecuzione dei test

L’avvio dei test genera un’entità chiamata Esecuzione che racchiude in sé tutte le informazioni relative a quell’evento di esecuzione (test, esiti, chang log, collegamenti esterni ai requisiti).

I risultati di un’esecuzione sono immutabili e sopravvivono alle eventuali modifiche che vengono fatte ai casi di test.

Test Execution

Test Execution

L’elenco delle esecuzioni dei test è consultabile dalla console di Orchestrator e dal Test Manager di Test Suite.

Conclusioni

Ci aspettavamo una naturale evoluzione della UiPath platform anche nella direzione del test automation. La Test Suite alla sua prima release offre un contesto sufficientemente completo per l’esecuzione dei test funzionali. Utilizzando le capabilities degli altri automation activity pack è possibile estendere le capacità ai test non funzionali (anche se da utente della suite mi aspetto l’uscita di qualche activity pack dedicato ai test non funzionali delle interfacce). Aspettiamo le prossime release della Test Suite per capire quali altri tipi di test ed analisi renderà disponibili, e le reazioni della comunity riguardo la disponibilità di nuovi package che ne estendano versatilità ed integrazione con altri strumenti di test.