#DALETESTLAB #TESTAUTOMATION #SERVICEVIRTUALIZATION
Test-Automation: testare in modo esaustivo i layer di Backend
“Possiamo vedere solo poco davanti a noi, ma possiamo vedere tante cose che bisogna fare”
Alan Turing matematico, logico e crittografo britannico 1912 – 1954
Quando affrontiamo il test dei layer di servizi di back-end questa frase esprime esattamente lo scenario che ci troviamo davanti: vediamo le API esposte con i loro parametri e sappiamo che dovremmo testarne tutte le combinazioni possibili!
La numerosità delle casistiche di test per ogni API da testare è pari al numero di combinazioni possibili calcolato sul numero dei parametri di ciascuna di esse, moltiplicato per il numero delle API stesse, se come spesso accade, i dati sono interdipendenti fra i singoli servizi.
L’approccio manuale al test impone di considerare quindi un sottoinsieme significativo di tutte queste combinazioni possibili, tralasciando quindi tutte quelle casistiche, e quindi scenari di funzionamento che si potrebbero realmente verificare causando crash in produzione delle APP dipendenti dai servizi stessi.
L’utilizzo di layer di back-end complessi ed eterogenei, cioè composti da più espositori di servizi, come ad esempio i servizi che espongono i dati dell’APP dei pagamenti combinati con i servizi di geolocalizzazione che ci indicano dove ad esempio poter comprare nel circuito convenzionato del circuito stesso, sono oramai parte della nostra quotidianità.
Affidare l’attività di validazione delle API di ciascun espositore di servizi ad un gruppo di tester in grado di affermare la conformità in base agli scenari funzionali non è sufficiente.
Approccio tecnico
Il #DaleTestLab quando prende in carico il testing e la validazione di layer di esposizione di servizi utilizza l’approccio esaustivo partendo da un test tecnico a tappeto sulle API e tutti i loro parametri, integrandone la documentazione laddove risultasse incompleta o non puntualmente aggiornata.
L’approccio tecnico al testing delle API garantisce la copertura di tutte le casistiche possibili prescindendo dalla conoscenza degli scenari funzionali dell’applicazione di FrontEnd, mettendone in sicurezza l’affidabilità grazie alla validazione del corretto funzionamento delle chiamate basato sulla correttezza formale e sintattica dei parametri in input e dei valori forniti in output.
Occorrono competenze tecniche per implementare le dipendenze fra le chiamate ai servizi basate sul significato funzionale dei dati scrivendo quindi opportuni script di test, gestibili anche in batterie di test-automation.
La raccolta degli esiti di numeriche così ampie degli scenari di test diventa efficace se questi esiti risultano leggibili e correttamente collegati al requisito applicativo.
La possibilità di importare gli esiti in modo automatico sulle piattaforme di gestione della test-chain del cliente è un plus che il #DaleTestLab garantisce grazie alla presenza di programmatori esperti e non solo di figure di tester certificate.
L’esito del test tecnico diventa significativo per avvallare il test funzionale collegato al requisito.
La variabilità dell’universo dei servizi
Occorre anche sottolineare che ciascuno espositore di servizi, sia della portata di Goolge, Amazon, Azure sia dell’importanza della Pubblica Amminsitrazione, dei provider dei pagamenti o delle Banche, fino alla ristretta realtà di servizi legacy dedicati, è indipendente dagli altri e segue la propria linea di business e la propria filiera di rilasci, sulla quale difficilmente il gruppo di sviluppo di FrontEnd ha un qualche controllo.
Le API di backend seguono un loro ciclo di vita e di versioning cambiando spesso e non sempre garantendo una retrocompatibilità fra le versioni.Il successo di un’APP Mobile o di un servizio WEB di Front-End dipende al 90% dall’affidabilità e dalla bontà delle API di back-end.
I gruppi di progettazione, sviluppo e rilascio di un Front-End, WebAPP o APP Mobile quindi non possono prescindere dall’essere certi dei servizi di Back-end dai quali recuperano dati attendibili correttamente organizzati.
API Test-Automation
Per questo per poter validare i layer di back-end occorre utilizzare dei tools di test-automation in grado di collezionare le chiamate alle API, censirne i parametri e la tipizazzione degli stessi, conservarne opportunamente il versioning e poter lanciare ripetutamente batterie di test per la raccolta degli esiti, per mettersi al riparo da problemi di regression dell’APP di Front-End.
Oggi questi tools avvalendosi di motori di Intelligenza Artificiale sono in grado di imparare, e quindi non limitandosi a censire gli esiti delle chiamate, qual’è il comportamento atteso dei layer di back-end e segnalare eventuali cambiamenti rispetto alle risposte attese.
E’ sufficiente configurare all’interno di questi tools l’URL di esposizione dei servizi di back-end affinché il tool stesso sia in grado di recuperare la lista delle chiamate esposte ed i parametri e proporre quindi attraverso pratiche console grafiche, spesso esse stesse delle web-app in cloud, la combinazione di dati di test significativi.
Dale Consulting ha scelto la Suite di Parasoft per supportare i propri clienti nel testing di layer di back-end.
Service Virtualization nella Test-Automation
La Suite Parasoft è in grado di intercettare le chiamate ai layer di back-end non limitandosi alle API e ai WebService, ma interagendo anche con chiamate a Mainframe, network, e applicazioni legacy basate su protocolli verticali e di virtualizzarne il comportamento.
Una console grafica, oggi web e in cloud, permette di collezionare le chiamate e riprodurre il comportamento dei vari layer di back-end, gestendo opportunamente le risposte in base al versioning dei servizi virtualizzati.
La Suite memorizza il comportamento dei servizi di back-end in base alle casistiche generate con la variazione dei dati di input e supporta i regression test comparando gli esiti di versioni diverse grazie ad repository di versioni dei comportamenti stessi.
La suite Parasoft è in grado di collezionare gli esiti e di presentarli in una console grafica ad uso dei tester-analyst e dei testeer-manager.
Un motore così potente di Service Virtualization è in grado di supportare una filiera estesa di test-automation in grado di validare i test end-to-end in una catena in cui possono essere coinvolte varie tecnologie dal mainframe ai più moderni microservizi coinvolgendo servizi esterni di terze parti.
…..