Si è svolto poche settimane fa a Milano il primo evento italiano, il Software Testing Forum, dedicato al mondo della qualità del software promosso dalla filiale italiana di Istqb – International software testing qualifications board, la più grande organizzazione a livello mondiale per la certificazione delle competenze in ambito software testing.
Ad aprire i lavori, Gualtiero Bazzana (nella foto a sinistra), presidente e fondatore di Ita-Stqb, il chapter italiano di Istqb, introdotto da Mauro Pezzè (nella foto a destra), professore alla Facoltà di scienze informatiche dell’Università della Svizzera Italiana e chairman della prima sessione di interventi.
In apertura, i relatori hanno ricordato come la certificazione delle competenze abbia avuto negli ultimi anni uno sviluppo importante nell’ambito dell’It; da anni, infatti, è possibile certificare le competenze sulla sicurezza, le piattaforme software, tipo Sap, Oracle, Microsoft, ecc., e sempre di più si sta diffondendo la certificazione delle competenze rispetto alle principali metodologie di sviluppo (modeling, Cmmi), Project Management (Pmi) e Service Management (Itil).
L’area del testing delle applicazioni, fino a qualche anno fa, era rimasta “scoperta” e non esistevano programmi di certificazione strutturati e riconosciuti come negli altri ambiti It. A colmare la lacuna a livello internazionale ci ha pensato l’Istqb, espressamente nata per la diffusione e la certificazione dei “software tester”.
“Oltre a costituire una fetta molto importante dei budget dei progetti di sviluppo, il testing applicativo ha un ruolo fondamentale per ciò che riguarda l’effettiva qualità del software prodotto e rilasciato in produzione”, osserva Bazzana. “Se pensiamo che per sua natura il testing esaustivo (cioè approfondito, dettagliato e completo in ogni singolo punto) è decisamente improbabile (se non impossibile), diviene determinante, per ottimizzare il rapporto costi-benefici, affidarsi a persone competenti e specificatamente preparate su metodologie, tecniche e strumenti di testing”.
Ed è dunque sui “buoni motivi per fare testing” che Bazzana apre la sua presentazione: “Migliorare la qualità del prodotto, incrementare e migliorare la soddisfazione degli utenti, mitigare il rischio di perdita dell’immagine aziendale (a causa di servizi It non performanti), essere compliant a normative e policy particolari, sono tutti validi motivi per iniziare ad abbracciare il software testing come vera disciplina certificata, strutturata e integrata nel contesto aziendale. Ma in questo momento particolare di difficoltà economiche, il tutto si “riduce” spesso a una questione di costi. Ma anche qui il testing applicativo ha risvolti importanti”.
Testing: costo o risparmio?
Il testing applicativo non è certo una cosa nuova. Ancora oggi si fa riferimento a manuali e libri che hanno iniziato ad avere la loro diffusione alla fine degli anni ’60 e si adottano tecniche provenienti ancora dalle prime metodologie ipotizzate dagli esperti. “Quello che oggi è cambiato – sottolinea provocatoriamente Bazzana – è la pressione che il testing sta avendo. I processi di testing sono sempre su un ‘cammino critico’ perché fanno parte dell’application lifecycle che, negli ultimi anni, ha assunto un ruolo sempre maggiore, dato che le attività aziendali, ormai, non possono più fare a meno delle applicazioni e dei servizi It. Ed è per questo che il testing riceve moltissime pressioni; molto spesso orientate a far concludere queste operazioni quanto prima e accelerare il percorso del rilascio”.
Per questi motivi Bazzana, nel tentativo di far capire quale può essere il valore del software testing, bilanciando tra “costo e risparmio”, evidenzia l’importanza del concetto di risk management (applicato al testing applicativo): “Sappiamo che sviluppare un sistema di testing che garantisca una copertura elevata (cioè applicato a più livelli di controllo e a più fasi di sviluppo) sarebbe economicamente insostenibile (sia come tempi per i test sia come costi di risorse); ma sappiamo anche che se la qualità delle soluzioni rilasciate è scadente, le ripercussioni sono drammatiche non solo per l’insoddisfazione dell’utente, ma per tutti i costi connessi (rifare i test, rivedere le applicazioni, riscrivere il codice, rivedere l’integrazione, ecc.)”.
La soluzione allora risiede nel trovare l’equilibrio tra ciò che viene richiesto (applicazione, servizio, tempi, costi) e i test che sarebbero necessari a soddisfare tali richieste. “E tale equilibrio lo si può raggiungere applicando i concetti (e i sistemi) di risk management, bilanciando dunque tra requirement, tempi, costi, obiettivi, identificando poi fasi e livelli di testing sulla base di questo bilancio”, precisa Bazzana.
E per non lasciare inconcreti i concetti, il presidente di Ita-Stqb porta dei numeri ad esempio (sulla base di alcuni casi concreti studiati direttamente dall’organizzazione italiana): “A seconda del livello di strutturazione del testing e di come, dove e quando vengono rilevati e gestiti i bug (difetti), notiamo impatti differenti: in presenza di un approccio non strutturato al testing, su un caso di effort complessivo di 1500 giorni uomo (tra sviluppo, test, gestione e produzione), emerge che il 50% degli errori arriva in produzione con un costo di gestione degli errori di 2 giorni uomo in pre-produzione e 4 giorni uomo se l’applicazione è già stata rilasciata; ipotizzando un primissimo approccio di strutturazione del testing (con 3 persone dedicate per 3 mesi; con un effort complessivo di 180 giorni uomo, dunque, dedicato al testing), i risultati cambiano: benché cresca l’effort dedicato al testing, quello complessivo diminuisce (da 1500 a 1380 giorni uomo), perché diminuiscono gli interventi di correzione degli errori; ma, soprattutto, risulta diminuita la difettosità delle applicazioni di ben il 60%”.
“Il testing è dunque un costo?”, chiede provocatoriamente Bazzana concludendo il suo intervento, lasciando alla platea le proprie valutazioni ma comunque sollevando la questione dell’importanza delle certificazioni dei tester, affinché la disciplina assuma sempre più un riconoscimento di valore all’interno dello sviluppo applicativo, ormai tema di rilevanza sempre più business oriented.
Istqb è la più grande organizzazione a livello mondiale per la certificazione delle competenze in ambito software testing. Presente anche in Italia tramite Ita-Stqb, l’organizzazione condivide visione e strategia della struttura globale che ha come obiettivo sviluppare la professione di tester, basata su competenze certificate, condivise a livello globale.
Per la certificazione, l’Organizzazione ha definito vari livelli, ciascuno dei quali correlato a competenze ben specifiche:
• Foundation: comprende gli elementi di base del software testing ed è propedeutico ai livelli successivi;
• Advanced Test Manager: rilascia un attestato di specializzazione per chi deve gestire attività di testing;
• Advanced Test Analyst: è la specializzazione che deve avere chi progetta test funzionali in ambito applicativo;
• Advanced Technical Test Analyst: per chi opera in prevalenza in ambito tecnico e in particolare ha necessità di avere la padronanza di tecniche di copertura del codice sorgente;
• Expert: composto da vari moduli, ciascuno dei quali è legato a temi specifici, sempre in evoluzione, che vanno dalla test automation, al test process improvement, dalla definizione ed uso delle metriche allo svolgimento di test in ambiti particolari quali i safety critical, ecc.
A ottobre 2010 il numero delle certificazioni a livello mondiale ha superato le 165.000, con un trend mensile di circa 3.500 nuove certificazioni al mese. I paesi più “attivi” sono Uk (con 59.000 tester certificati), India (con 33.000 tester certificati), Germania (17.000 certificazioni rilasciate). Seguono gli Stati Uniti con 9.000 tester certificati. In Italia, ad oggi, sono stati effettuati circa 500 esami, che hanno portato a oltre 380 certificazioni, di cui il 15% Advanced.