Test Automation Strategy based on Manual Test Identificazione del set di test da automatizzare, sincronizzazione del cicli di test manuali ed automatici per il massimo „mutuo beneficio‟. Michael Abou Jaoude‘, Ivo Pellegrini, Giovanni Pistarini, Riccardo Rosci Sistemi Informativi Poste Italiane Sistemi Informativi Versione 2015/06/16 Abstract intervento Test Automation Strategy based on Manual Test Identificare quali test automatizzare e sincronizzare il ciclo dei test manuali e dei test automatici, per il massimo „mutuo beneficio‟ Nell‟ambito dei Servizi IT di Poste Italiane sono presenti due consolidate realtà, entrambe illustrate nel corso degli ultimi STF e relativi alla presenza spinta della automazione del testing per i test funzionali (GUI) e alla forte attenzione all‟implementazione di standard documentali e operativi per la progettazione dei test funzionali e la loro gestione (test e defect management). Viene naturale pensare come questi ambiti siano naturalmente tra loro fortemente collegati, al fine di garantire il massimo mutuo beneficio: • l‟automazione dei test consente di accelerare le attività di test, ridurne i costi in particolari condizioni e, se realizzata con le opportune tecniche, garantire una più ampia copertura delle condizioni di test; • una buona progettazione dei casi di test, basata su standard condivisi, garantisce il massimo risultato dal test e non può che agevolare la realizzazione della test automation, soprattutto in presenza di un test management supportato da strumenti adeguati e competenze certificate. Nella realtà esistono diversi ostacoli da superare, in primis come mantenere allineati i test manuali con i relativi test automatici, al fine da governare e gestire il progetto di test indifferentemente dalla presenza dell‟automazione, ma sfruttandola al massimo possibile, e realizzare e mantenere l‟automazione efficacemente,con il massimo ritorno . Si devono considerare alcuni aspetti caratteristici della realizzazione di un test automatico, dove per convenienza un singolo script di test spesso si estende su più funzionalità e condizioni di test, modificandone le pre e post condizioni originali e rendendo estremamente difficoltoso un qualsiasi mapping con i test manuali. Per questi motivi in Poste Italiane, e probabilmente anche in altre organizzazioni, molto spesso il prezioso asset costituito dai test manuali e dal set di test automatici corrono su binari paralleli, seguendo evoluzioni e manutenzioni diverse, con diverse analisi e visioni di copertura dei requisiti del progetto. La presentazione che si propone descrive come è stato affrontato il tema specifico della sincronizzazione del ciclo di vita del test manuale con il ciclo del test automatico, descrivendo le problematiche affrontate e la soluzione adottata per ottenere il „massimo mutuo beneficio‟. Non è obiettivo della presentazione evidenziare i già noti, e molto presenti in letteratura tecnica, aspetti classici della test automation, quali le tecniche, i benefici o il ROI, ma porre l‟attenzione sulle difficoltà dell‟approccio alla strategia di test automation (TAS) basata sul ciclo del test manuale, oltre che della analisi dei requisiti, come descritto dal recente syllabus Expert „Test Automation – Engineering‟ (Synchronization between TAS and SUT). Un ulteriore aspetto presentato è la metodologia adottata per identificare i candidati migliori per l’automazione, tra i test manuali che rispettano dei precisi requisiti minimi, in modo da ottenere il massimo risultato rispetto ai costi che la test automation impone, mai da sottovalutare. L‟approccio definito ed implementato in PI è stato definito con il termine „Automation Candidate Ranking’ (acronimo ACR) e presenta caratteristiche probabilmente innovative nel già ricco panorama della test automation. Infine si rimarca la necessità di una gestione dell‟automazione, anticipando forse alcuni temi per uno dei prossimi syllabi allo studio (Test Automation Management). Si evidenziano gli attuali margini di crescita richiesti agli attuali strumenti di test presenti sul mercato e gli interventi custom realizzati per ottenere la massima automazione anche per la gestione dei test. Sistemi Informativi Slide di Approfondimento 2 Indice degli argomenti • • Contesto Test Governance e Test Automation in Poste Italiane Nuovo modello proposto: Approccio ibrido Test Manuale - Test Automatico • Demo • Evidenza dei benefici Sistemi Informativi 3 Gruppo Poste Italiane Il Gruppo Poste Italiane è la più grande infrastruttura di servizi in Italia… Oggi fornisce servizi logistico-postali, di risparmio e pagamento, assicurativi e di comunicazione digitale a oltre 32 milioni di clienti. Ogni giorno un milione e mezzo di persone entra nei 13.000 uffici postali presenti sul territorio, dove sono movimentati oltre 23 milioni di oggetti e realizzate 20 milioni di transazioni finanziarie in tempo reale. La presenza di Poste Italiane al STF è un’occasione per sottolineare l’importanza del testing e della qualità, condividendo esperienze viste dal lato di una ‘multi azienda‘, rappresentativa a tutto campo delle realtà italiane. Grande complessità, livello di integrazione e innovazione Portafoglio applicativo contenente circa 900 pacchetti Servizi offerti ad oltre 32 milioni di clienti Grande esposizione e livello di attenzione nazionale IT a supporto del business e dell’Italia http://www.poste.it/azienda/chisiamo/profilo.shtml Sistemi Informativi 4 Test Governance: Standard, Metodi e Strumenti Poste Italiane, attraverso la struttura di Governance di Sistemi Informativi, dispone ed utilizza metodi e standard per il testing, con il supporto di strumenti per la gestione dei test e dei difetti. Attività di test gestite e governate Linee guida comuni e strumenti specifici, contestualizzati per progetto Standard per la progettazione Casi di test progettati secondo standard, per tutte le iniziative di sviluppo ed evoluzione del software (circa 500/anno) Casi di test strutturati tracciabilità, ripetibilità, riproducibilità, oggettività ed indipendenza Sistemi Informativi 5 Test Automation: 15 anni di esperienza Dal 1999 la test automation è presente in Poste Italiane nell‟ambito delle attività di certificazione del software. Contesto: certificazione di rilasci con alto impatto (60.000 sportelli, 14.000 UP, ….) Target: esecuzione di cicli di test di regressione in un contesto integrato e scalato alla produzione Strategia di automazione: selezione accurata dei test e funzionalità idonei all‟obiettivo Utilizzo dell’automazione: esecuzione frequente ed estesa ai sistemi coinvolti Collaborazione nel working group ISTQB Expert di Test Automation Benefici immediati: confidenza dell‟integrità dei sistemi a fronte di nuovi rilasci SVILUPPO ESERCIZIO System Test e Collaudo Funzionale Certificazione e Test di Non regressione dei sistemi 100% Test Manuali Test Automatici (al 2014 presenti 60.000 casi di test realizzati) (al 2014 presenti 7.000 casi di test automatici) Sistemi Informativi 6 Obiettivo 2015: Ciclo di automazione in ambito Sviluppo L‟obiettivo di oggi è realizzare un ciclo di test automation nell’ambito dello sviluppo e collaudo, sfruttando la maturata esperienza nella Test Governance e nella realizzazione dei test automatici. Contesto: timing stretti di rilascio e bassa disponibilità di tempo/risorse per il regression test Test Automatici Target: aumentare la qualità eseguendo più cicli di regressione grazie all‟automazione Test Manuali Strategia di automazione: analisi della test list prioritizzata (ACR) per indentificare i test candidati, seguita da progressiva automazione Risultato Progetto di Test Utilizzo dell’automazione: strettamente integrata ai test manuali, avviata in parallelo ai test manuali e trasparente per il Test Manager Benefici immediati: riduzione dei difetti a timeline invariata, maggiore affidabilità, riduzione costi di test, ripetibilità su ambienti differenti SVILUPPO ESERCIZIO System Test e Collaudo Funzionale Certificazione e Test di Non regressione dei sistemi 100% Test Manuali (al 2014 presenti 60.000 casi di test realizzati) I TA sono realizzati e utilizzati in Sviluppo Sistemi Informativi Mutuo Beneficio Test Automatici (al 2014 presenti 7.000 casi di test automatici) I TA sono riutilizzati, disponibili immediatamente e offrono una maggiore copertura 7 Ciclo di Automazione e Synchronization secondo ISTQB Il modello proposto si basa sui concetti esposti all’interno dell’ Expert Level Syllabus di ISTQB relativo ai temi di Test Automation – Engineering. “Figure 4 shows a hybrid approach with both manual and automated testing. Whenever manual tests are used before the tests are automated or whenever manual and automated tests are used together, the TAS (Test Automation Solution) analysis should be based both on the SUT (System Under Test) design and the manual tests. In this way, the TAS is synchronized with both. The second major synchronization point for such an approach is as before: the SUT testing requires deployed tests, which in the case of manual tests could just be the manual test procedures to be followed.” Sistemi Informativi SDLC for SUT SDLC for automated testing ? SDLC for manual testing 8 Expert Level Syllabus – Test Automation Sistemi Informativi Slide di Approfondimento 9 Approccio Ibrido Test manuale – Test automatico Introduzione di una forte sinergia tra i test manuali e i test automatici, per trarne il massimo „mutuo beneficio‟ secondo i seguenti assunti: Test & Defect Management sempre basato sui test manuali No test automatici senza test manuali Le criticità affrontate per realizzazione un legame tra i test manuali e i test automatici sono diverse: TM Test Manuali (TM): TA Test Automatici (TA): 1. Basati sulla scomposizione funzionale 1. Basati su scenari end-to-end e catene di test 2. Un caso di test per ogni condizione di test 2. Un test automatico per diverse condizioni di test 3. Interpretazione del „Risultati atteso‟ 3. Oggettività del „Risultati atteso‟ 4. Precondizioni „manuali‟ 4. Automazione anche delle precondizioni 5. Necessità di intercettare e documentare nuove 5. Facilità di estensione delle condizioni di test condizioni coperte (nuovi test) dal TA (data driven) 6. Necessità di revisionare i casi di test per il loro 6. Necessità di mantenere il Test Automatico consolidamento prima della automazione all‟evolversi dei test manuali Il TA rappresentano un acceleratore dei TM e aumentano la copertura del test Sistemi Informativi I TM rappresentato le specifiche del TA e guidano al maggior beneficio possibile 10 Strumenti e Rapporto Test Manuali – Test Automatici Dal punto di vista degli strumenti di test esiste la possibilità di integrare i test manuali (presenti sullo strumento di test management) con i diversi strumenti di test automation di mercato, open o propri. Tipicamente si può associare test manuale e test automatico nel rapporto 1:1,e decidere con quale modalità eseguirlo (manuale o automatica). Nella realtà è necessario gestire un rapporto molti a molti mantenendo un’unica regia, e rendondosi indipendente dalla modalità di esecuzione del test automatico (standaalone o dallo strumento di Test Management) TM Test Manuali (TM): TA Test Automatici (TA): La progettazione dei test (manuali) basate sulle specifiche e sulla scomposizione funzionale porta ad indentificare un test per ogni condizione (soprattutto per quelle negative) e per ogni funzionalità La strategia di realizzazione dei test automatici(manuali) efficienti e mantenibili, porta ad automatizzare in un solo test più funzionalità e condizioni di test, con una relazione molti a molti con i test manuali Test Manuale e possibilità di sua automazione, collegandolo nel rapporto 1:1 con uno specifico test e script automatico Sistemi Informativi Slide di Approfondimento 11 Approccio Ibrido - Modello Operativo Progettazione Automazione Organizzazione Candidabilità Archivio dei Test organizzato per processi/funzionalità/scenari Assegnazione ranking per automazione (fattori oggettivi e soggettivi) Consolidamento Realizzazione Selezione set auto consistente di CdT Sviluppo script per Test Automation Centralizzazione Mapping Test Mngt tool - single source of truth Identificazione legame TM vs TA (n:1) Governo Metodo Controllo Linee Guida, Procedure e Standard Strumenti, Metriche e Reportistica Powered by Sistemi Informativi Sync Organicità, controllo e completezza della fase di collaudo attraverso la sincronizzazione dei piani e delle esecuzioni dei test manuali e dei test automatici 12 Approccio Ibrido - Quali e Quanti test automatizzare Quali Test Quanti Test CRITERI DI SCELTA (ACR) Si valutano i test manuali consolidati per la loro „opportunità‟ di automazione, in termini di beneficio assoluto. OBIETTIVO INIZIO PROGETTO: Si definisce un‟obiettivo in relazione al contesto, sulla base dei numero di test manuali consolidati (es. 20-30%). ANALISI DEI CANDIDATI Numero di test con ACR = 10 Numero di test con ACR >= 5 Numero di test con ACR > 0 Numero di test con ACR <= 0 REALE BENEFICIO AUTOMAZIONE L‟analisi dei candidati è utilizzata per confermare / modificare l‟obiettivo dell‟automazione da realizzare con effettivo beneficio (cutline) MAX Monitoraggio Avanzamento Automazione Avvio Ciclo di Automazione Progettazione / revisione Test (manuali) Analisi Test Candidati e Vincoli Test Harness (Virtualization) Esecuzione test manuali Automazione progressiva da opportunità (ACR) Esecuzione test automatici CUT LINE Test Consolidati Obiettivo Automazione (scelta dei test da automatizzare) (numero di test manuali presenti) Test Candidati (ACR) Ciclo di Automazione Sistemi Informativi 13 Criteri di scelta – ACR Fattori di Ranking ACR: rappresenta la modalità di lavoro e collaborazione tra i team, ha lo scopo di prioritizzare la realizzazione della automazione per ottenere il massimo beneficio. Viene calcolato sulla base di diversi fattori, alcuni oggettivi e calcolabili, altri introdotti dall‟analista e altri ancora basati sui precedenti (contesto), che concorrono per determinare dinamicamente l‟ACR di ogni test. Valutazioni OGGETTIVE dal Piano di Test Numero ricicli, test lungo, rischio, ciclo smoke/regressione,… Valutazioni OGGETTIVE dall’Esecuzione dei Test Numero riesecuzioni, fallimenti e difetti aperti, … Valutazioni SOGGETTIVE del Team di Test/Analisi Copertura funzionale, conoscenza del sistema, … Valutazioni CONTESTO Numero test / media ACR per la funzione ACR Risultante (normalizzato) Sistemi Informativi Slide di Approfondimento Ad ogni categoria di fattori è associto un range di valore min/max, successivamente normalizzato sul valore complessivo. Min Max -5 +5 -5 +5 -10 +10 -5 +5 -10 +10 14 Criteri di scelta – ACR Fattori di Ranking I fattori che concorrono all‟ACR sono molteplici, sulla base della progettazione dei test prima e sui riscontri esecutivi in seguito, per identificare continuamente la best list prioritizzata dei test sul quale risulta vantaggiosa l‟automazione. Alcuni criteri da elaborare sono: Test ripetuti (presenti nei cicli di smoke e regression test), già in progettazione. Test critici (rischio rappresentato) e test rappresentativi o in catene di test, difetti associati. Test tediosi per esecuzione manuali (numero elevato di ricicli e step), già in progettazione. Stabilità della componente sotto test (se la gui è in evoluzione non si procede). Copertura funzionale: la test list è validata anche dal punto di vista della copertura funzionale. Esempio di modello di calcolo attraverso pesi configurabili su ogni fattore di influenza: FATTORI DA PIANO (Oggettivi e Soggettivi) Sistemi Informativi ACR (Automation Candidate Ranking) Slide di Approfondimento FATTORI DA RUN (Oggettivi e Soggettivi) 15 Criteri di scelta – ACR Fattori di Ranking Esempio di test list prioritizzata (ACR Automated Candidate Ranking) per candidabilità alla test automation, su fattori OGGETTIVI di PIANIFICAZIONE ed ESECUZIONE: Dinamico Nota: Il ranking è ricalcolato dinamicamente ogni giorno per acquisire i fattori legati alle esecuzioni ed esiti dei test In presenza di test non sufficientemente strutturati e definiti, si procedere con la riprogettazione degli stessi Sistemi Informativi Slide di Approfondimento 16 Approccio Ibrido - Come, prima del test 1 Piano Esecuzione Silk Test Manuale 1 2 Status 2 Ranking TA ACR Test Manuale ACR Test Manuale TC_03 1° 15 Manuale TC_06 2° 13 TC_03 Test C Manuale Automatizzato TC_04 3° 12 TC_04 Test D Manuale TC_02 4° 11 TC_05 Test E Manuale Manuale Automatizzato TC_01 5° 9 TC_06 Test F TC_05 6° 0 TC_01 Test A Manuale Automatizzato TC_02 Test B Realizzazione 3 Test Automatico TC_03 TC_06 TC_01 TA01 4 Nella fase di Progettazione dei casi di test si attribuisce ad ogni CdT un indicatore di idoneità all‟automazione (ACR), definito in pianificazione e aggiornato costantemente da fattori „dinamici‟ di esecuzione. Ne viene di seguito validato il rating ed applicata una classifica di candidabilità (ranking) all‟automazione. Sulla base del ranking, si effettua un‟analisi complessiva, si selezionano i test e si stabilisce la strategia di automazione. 3 Uno script automatico efficiente ricopre in generale scenari presenti in più test manuali (1:n). 4 Contestualmente allo sviluppo dello script dei test «candidati» con un ACR elevato, il team di TA può valutare conveniente automatizzare anche CdT con un ACR inferiore. Sistemi Informativi 17 Approccio Ibrido - Come, durante il test Piattaforma Silk (Test Management) Test Manuali Status TC_01 Test A Passed By Test Automation Automatizzato TC_02 Test B Failed Manuale TC_03 Test C Passed By Test Automation Automatizzato TC_04 Test D Passed Manuale TC_05 Test E Passed Manuale TC_06 Test F Failed By Test Automation Automatizzato 5 TC_07 Test G Piattaforma Automazione Test Manuale L‟insieme dei test è adesso completo e disponibile per l‟esecuzione, sulle piattaforme di Test Management. Test Automatico TA01 TC_03 TC_06 TC_01 5 TC_07 Da aggiungere L‟esito dei test manuali viene registrato manualmente in Silk. L‟esito dei test automatici viene registrato su un log della piattaforma di automazione. 4 Allineamento DB SCTM 5 Run TA 1 Run TM Il team di test esegue sia i test manuali sia i test automatici. 2 3 Sync Normalizzazione Il Sync in automatico normalizza le informazioni contenute nel log, gestisce l‟allineamento degli esiti su Silk e … … segnala i nuovi test aggiunti in fase di automazione e da includere nel piano di test complessivo. Sistemi Informativi 18 Approccio Ibrido - Come, durante il test Piattaforma Silk (Test Management) Test Manuali Status TC_01 Test A Passed By Test Automation Automatizzato TC_02 Test B Failed Manuale TC_03 Test C Passed By Test Automation Automatizzato TC_04 Test D Passed Manuale TC_05 Test E Passed Manuale TC_06 Test F Failed By Test Automation Automatizzato Piattaforma Automazione Test Manuale L‟insieme dei test è adesso completo e disponibile per l‟esecuzione, sulle piattaforme di Test Management. Test Automatico TA01 TC_03 TC_06 TC_01 5 TC_07 Da aggiungere 5 TC_07 Test G L‟esito dei test manuali viene registrato manualmente in Silk. L‟esito dei test automatici viene registrato su un log della piattaforma di automazione. 4 2 3 La sincronizzazione avere un set di dati Sync permette di Normalizzazione Passed by TM sempre aggiornato, indipendentemente dalla modalità di DB SCTM Failed by TA esecuzione dei test. contenute nel log, gestisce Il Sync in automatico normalizza le informazioni Failed by TM La nuovadegli reportistica garantisce l‟allineamento esiti su Silk e … al test manager una 8% TBE vista unica di avanzamento. 6% 26% … segnala i nuovi test aggiunti in fase di automazione e da includere nel piano di test complessivo. 30% 5 Run TA 1 Run TM Il team di test esegue sia i test manuali sia i test automatici. 30% Sistemi Informativi Passed by TA Allineamento 19 Demo Video: Test Automatici e Sync Test Manuali Training Video 6: Esecuzione Test Automatici e Sync Test manuali 3m:30s Link al video demo Sistemi Informativi 20 ScreenShoot1 Video: Sistemi Informativi TM di non regressione da rieseguire Slide di Approfondimento 21 ScreenShoot2 Video: TM di non regressione in esecuzione Caso di test Manuale non disponibile come TA Casi di test Manuale disponibili come TA. Sistemi Informativi Slide di Approfondimento 22 ScreenShoot3 Video: Sistemi Informativi TA eseguito sulla applicazione Slide di Approfondimento 23 ScreenShoot4 Video: TA eseguito e TM sincronizzati Il test manager mantiene la vista unica del suo piano di test (manuali) e verifica costantemente l’avanzamento reale dei test e del lavoro rimasto in carico ai tester Sistemi Informativi Slide di Approfondimento I tester utilizzano l’interfaccia facilitata per l’esecuzione dei test manuali, e possono riscontrare il risultato sui test manuali eseguiti automaticamente. 24 ScreenShoot5 Video: Test Falliti e azioni comuni del tester L‟obiettivo di utilizzare i massimi benefici della automazione e della gestione del proprio test plan (test manuali) è raggiunto, superando la difficoltà di correlare l‟esecuzione di un solo test automatico con decine di test manuali. Sistemi Informativi Slide di Approfondimento 25 Test Automation – Evidenza dei Benefici (Report Executive) L‟esecuzione di test automatici interviene a ciclo di test (manuali) avviato e consente di recuperare capacità di esecuzione (aumenta la velocità a parità costi TM), aumentare la copertura (nuovi test introdotti dall‟automazione a costo 0) e l‟obiettivo del test (qualità del rilascio per maggiori difetti rilevati, riduzione del rischio, aumento della confidenza). Obiettivo ‘Rischio’ Avvio esecuzione TA in aggiunta ai TM 100% eseguiti con maggiore copertura (20 nuovi test da TA a costo 0) Obiettivo ‘Qualità’ Più attenzione ai bug residui, test di conferma e regressione completa Obiettivo ‘Costi’ Il team non è potenziato e ha lavorato al massimo. Maggiori esecuzioni effettuate grazie ai TA Sistemi Informativi 26 Evidenza dei Benefici (Report Executive) Esecuzione con solo Test Manuali (100) Scenario solo con Test Manuali • Progettati 100 test e 12 giorni di piano, si stima un rate massimo di 15 esecuzioni / giorno (150 esecuzioni senza interruzioni), i tempi sono stretti e rischi alti ! • A tre giorni dall‟avvio si riscontrano criticità elevate che bloccano l’esecuzione e il team di test rimane in standby per 3 giorni, mettendo a rischio la pianificazione. • Alla risoluzione delle criticità (8° giorno) si ipotizza di riprendere senza ulteriori interruzioni al massimo della capacità, ma non si riesce a completare il test plan previsto con margine di rischio residuo. Scenario con Test Manuali e Test Automatici in Sync • Si avvia la test automation parallelamente, con l‟obiettivo di una copertura del 35% (35 test manuali) utilizzando la metodologia definita (ACR e SYNC TM-TA) Esecuzione con Test Automatici (35 manuali + 25 nuovi) • Alla ripresa dei test manuali (8° giorno) sono già stati realizzati automatizzati 25 casi test, di cui alla data 15 risultano mai eseguiti. Sono eseguiti insieme ai test manuali consentendo di recuperare in velocità di esecuzione. • La realizzazione dei test automatici ha permesso di introdurre 25 nuovi casi di test a costo 0 per il team di test, l‟esecuzione dei nuovi test consente di rilevare nuove anomalie che diversamente non sarebbero state rilevate. • All‟ultimo giorno del collaudo sono rieseguiti i test automatici per una regressione finale, aumentando il grado di confidenza sul rischio residuo e la qualità raggiunta. Sistemi Informativi Slide di Approfondimento 27 Conclusioni Sfide continue per ottenere massimi benefici dal test Parlare di qualità nel software significa porre la massima attenzione a tutte le attività di verifica e validazione nel corso del progetto, con la convinzione che… “ci vuole meno tempo a fare bene una cosa che a spiegare perché la si è fatta male” piuttosto che gestire il progetto con l’idea che … “non c’è mai tempo per fare bene le cose … ma c’è sempre tempo per rifarle”… Henry W. Longfellow – Poeta educatore, linguista;Portland 1807 – Cambridge 1882 Sistemi Informativi Aspetti psicologici del testing Sintonia e collaborazione Competenze professionali Defect Removal Efficiency (DRE) Portale report dinamici Tecnologie (Mobile automation, Service Virtualization) 28