Quante volte è capitato di utilizzare un sito web o un’applicazione mobile, e trovare degli errori che ne impediscono il corretto funzionamento? Ad esempio non poter visualizzare la mappa dell’indirizzo di un luogo, mandare un’email che non è mai stata ricevuta o condividere il link di un sito ad un amico, che non riceverà mai. Quando gli utenti trovano malfunzionamenti nei software, di solito reagiscono così:

Questi sono alcuni esempi di bugs che possono emergere dalla fase di testing. E queste spiacevoli situazioni possono essere evitate se, nel processo di sviluppo delle aziende informatiche, venisse inserita la fase di controllo qualità.
Cultura e mentalità
Molto spesso il Software Testing va a braccetto con un grosso problema culturale: il controllo qualità non è importante. Quest’attività infatti è tra le più facili da sacrificare in una contrattazione economica, perché per poter risparmiare nell’investimento, è tra quelle che viene reputata non necessaria. Viene vista come una cosa aggiuntiva, quasi superficiale.
L’importante è che il software venga sviluppato, sulla qualità si può sorvolare.
Queste scelte però, possono avere delle conseguenze negative: il budget tagliato precedentemente potrebbe ricadere nell’attività di supporto e di manutenzione, perché possono emergere problematiche dall’utilizzo del software in ambiente di produzione.
Se questo non dovesse funzionare correttamente, possono generarsi più problemi come malcontenti o recensioni negative che possono anche toccare la reputazione dell’azienda. Ed è proprio qui che si genera una perdita di valore.
Immaginate un’app di prenotazione voli: state acquistando un biglietto ma per qualche motivo tecnico, l’acquisto fallisce. Questo ha un duplice problema: il cliente non è contento perché non ha potuto acquistare il biglietto, mentre la compagnia aerea avrà un disservizio tecnico ed economico da risolvere al più presto, finché il bug non verrà risolto non potranno essere acquistati altri biglietti.
SOLuzione
Questi spiacevoli episodi possono essere evitati se nel processo di sviluppo software è presente ed è prevista la fase di controllo qualità. Al termine degli sviluppi del team, il software viene affidato al Software Tester in un apposito ambiente diverso da quello usato dal team di sviluppo, con l’obiettivo di verificare l’attuale stato dell’arte. Dalle sessioni di test (comunemente chiamate esecuzioni) emergono i bugs, che prima vengono filtrati in una fase di accettazione o rifiuto e che successivamente, una volta risolti dal team, vengono ricontrollati tramite Test Confermativo per assicurarsi che sono stati effettivamente risolti.
Questo è il momento in cui il Tester genera un vantaggio: il software aumenta la sua stabilità e la sua affidabilità in quanto è stato verificato e controllato il suo funzionamento. Ed è qui che la fase di test assume il suo vero valore, motivo per cui nella contrattazione economica sarebbe più conveniente investire prima considerando il testing e non escluderlo, rischiando di avere successive ripercussioni.
vantaggi
Il primo vantaggio è trovare i bugs che non verranno rilevati dal cliente. In questo modo si ottiene un risultato funzionante, stabile e di qualità che alza il livello del software, del team e dell’azienda.
Non solo: il bug fixing fatto prima di un rilascio riduce l’attività di assistenza e manutenzione. Questo ha delle conseguenze positive non scontate: tempo e risorse vengono dedicate all’avanzamento e alla crescita del Software, invece di essere dedicate in un maggiore effort di assistenza. I costi di manutenzione nell’ambiente di produzione vengono ridotti, e si ottengono vantaggi in termini di costi, tempi e risorse.
Da non sottovalutare la soddisfazione del Cliente: un Software funzionante porta felicità nel suo utilizzo. È come andare in una buona pizzeria: se ti piace la pizza, tornerai a mangiarla più che volentieri e la consiglierai anche agli amici.
La reazione di fronte ad un software funzionante in genere, è questa:

aspetti tecnici
ambienti
Per garantire un buon successo, è necessario che team di sviluppo e il team di controllo qualità lavorino in due ambienti diversi. Per i Software Tester, è importante poter utilizzare un ambiente il più possibile vicino a quello dell’utente finale per poter simulare ed immaginare ciò che farà, e trattandosi anche di web Application, per controllare la loro responsività su dispositivi mobili. Vantaggi che non sempre vengono garantiti dagli ambienti di sviluppo locali.
specifiche funzionali
Per prepararsi all’esecuzione dei test, è bene che il Tester possa analizzare e capire cosa e come testare. Piuttosto che partire da lunghi documenti funzionali (che possono contenere lacune e generare incomprensioni nel tempo), è preferibile che il Software venga descritto in un backlog tramite User Stories. In questo modo il Software viene descritto in piccole parti che saranno maggiormente comprensibili, complete e rilasciabili. Il backlog può essere descritto sia dal Tester sia dai Business Analyst: con la prima soluzione arriverà più preparato alla fase di test, avendone descritto le funzionalità. Nell’altro caso è necessario che si prepari conoscendo quanto è stato descritto dagli analisti. Un aspetto da non sottovalutare è la conferma delle User Stories da parte del Cliente prima dell’inizio degli sviluppi: in questo modo si possono evitare cambiamenti in corsa delle specifiche che possono destabilizzare l’intero team durante gli sviluppi.
conclusione
Nella realizzazione di un Software, è bene tenere in considerazione anche di questa componente del processo di sviluppo nell’investimento economico. Fa parte di una strategia vincente, genera vantaggi e consente di prevenire potenziali problemi che potrebbero arrivare nella successiva fase di manutenzione.
controllo qualità in ferrari
Per garantire la qualità delle sistemazioni effettuate sulle macchine classiche (cambi effettuati solo con pezzi che garantiscono la conformità rispetto al progetto originale), anche in Ferrari esiste una fase di “verifiche qualitative e collaudo”, con l’obiettivo di garantire il funzionamento e la sicurezza.
Perché questa piccola parentesi nel mondo Ferrari?
Rispetto al mondo informatico, la metafora è la stessa: per evitare di incappare in problematiche al momento della consegna della macchina, questa viene testata e controllata per poter verificare le prestazioni dell’auto. Lo stesso identico concetto, vale per i software.

