LA GUIDA

Quality assurance: cos’è e come si mette in pratica per evitare bug nei software

Soddisfare i requisiti di qualità: è lo scopo della garanzia che le aziende si impegnano a fornire per assicurare un’esperienza positiva al cliente. La quality assurance è fondamentale per verificare la presenza di bug nei software, come fa, tra gli altri, la startup americana Mobot. In Italia c’era AppQuality, oggi Unguess

Pubblicato il 20 Ott 2022

Quality assurance

Quality assurance, ovvero “garanzia della qualità”. Ma cosa si intende esattamente con questo termine? Il processo di quality assurance aiuta un’azienda a garantire che i suoi prodotti soddisfino gli standard di qualità stabiliti per il settore o dall’azienda stessa. Molte aziende considerano il proprio programma di quality assurance come la promessa agli stakeholder interni e ai clienti che l’azienda fornirà prodotti di alta qualità che assicurano un’esperienza utente positiva.

A questo punto verrebbe spontaneo chiedersi quale sia la differenza tra garanzia di qualità e controllo di qualità. La garanzia della qualità è un processo ampio per prevenire i difetti della qualità. Il team della quality assurance è coinvolto in tutte le fasi dello sviluppo di un prodotto: produzione, test, imballaggio e consegna. Il controllo di qualità (QC), invece, è un processo più ristretto, che si concentra sul rilevamento di errori o requisiti mancati in un prodotto.

Immagine che contiene testo, compact disc Descrizione generata automaticamente

Le definizioni secondo ISO 9000 da ISO 9000:2015: Sistemi di gestione della qualità – Fondamenti e vocabolario.

La quality assurance può essere definita quindi come “parte della gestione della qualità focalizzata sulla fornitura di fiducia che i requisiti di qualità saranno soddisfatti”. La fiducia fornita dalla garanzia della qualità è duplice: internamente alla direzione ed esternamente a clienti, agenzie governative, autorità di regolamentazione, certificatori e terze parti.

Una definizione alternativa di quality assurance è: “tutte le attività pianificate e sistematiche implementate all’interno del sistema di qualità che possono essere dimostrate per fornire la certezza che un prodotto o servizio soddisferà i requisiti di qualità”.

Quality assurance: il crowdtesting per la verifica delle applicazioni

La garanzia della qualità è diventata molto diffusa nello sviluppo del software, come dimostra il fenomeno del “crowdtesting” per la verifica delle app. Sono state sviluppate diverse strategie per ottimizzare il processo. Eccone alcune.

Integrazione del modello di maturità delle capacità (CMMI)

CCMI è stato sviluppato dalla divisione di ingegneria del software della Carnegie Mellon University e si basa sul principio che “la qualità di un sistema o di un prodotto è fortemente influenzata dal processo utilizzato per svilupparlo e mantenerlo”.

Il modello CMMI classifica la maturità delle aree all’interno di un’organizzazione e identifica altre aree che possono essere migliorate. Il livello di maturità di un’area è deciso dall’ottimizzazione attuale del processo di sviluppo.

Un livello di maturità 1 indica che il processo non è ben ottimizzato – spesso imprevedibile e incontrollato – mentre un livello di maturità 5 indica che il processo è prevedibile, ben controllato, stabile e richiede solo revisioni minori per l’ottimizzazione completa.

(fonte: Wikipedia)

Metodologia a cascata (Waterfall)

Waterfall, a tutti gli effetti, potrebbe anche essere definito l’approccio “tradizionale” allo sviluppo del software. Anni fa la stragrande maggioranza degli sviluppatori di software utilizzava questa metodologia; i team erano divisi in gruppi chiaramente definiti, tutte le modifiche al programma erano fortemente documentate e l’unico scopo era quello di creare software che corrispondesse ai requisiti delineati prima dello sviluppo.

Metodologia Agile

La strategia Agile è completamente diversa dalla Waterfall. Agile promuove la fluidità nello sviluppo. I team lavorano parallelamente l’uno all’altro ed è richiesta una documentazione minima. Agile ha migliorato la collaborazione del team e ha visto un notevole miglioramento della qualità del software e della soddisfazione del cliente. I principi principali dello sviluppo agile possono essere trovati nel manifesto agile. Sono:

• individui e interazioni su processi e strumenti

• software funzionante su documentazione completa

• collaborazione con il cliente sulla negoziazione del contratto

• rispondere al cambiamento rispetto a un piano.

Quality assurance del software: trovare i bug nelle applicazioni

La garanzia della qualità del software si occupa di trovare bug ed errori nei programmi e nelle app. È diventata una parte molto importante del processo di sviluppo e consente di risparmiare centinaia di ore di lavoro, rilevando bug fin dall’inizio del processo.

Le app mobili, ad esempio, devono essere testate su innumerevoli dispositivi per garantire che funzionino come previsto. Gli utenti non vedono di buon occhio le esperienze negative: l’88% di essi afferma che abbandonerebbe una app sulla base anche solo di piccoli problemi, secondo il fornitore di test software Qualitest. I test sono un processo lungo e costoso; in un sondaggio, il 31% delle aziende di sviluppo di app stima le spese tra 5mila e 10mila dollari.

Uno strumento molto popolare utilizzato dai tester QA è Selenium, un software di test del browser gratuito che può essere utilizzato su molti browser e piattaforme. Il programma è stato creato da Jason Huggins. Alcune delle caratteristiche principali di Selenium includono:

  • supporto completo di più linguaggi di programmazione, tra i quali Java, Python, C #, Ruby e Php;
  • supporto di test sia per Apple IoS che per Android;
  • simulazione della pressione dei tasti e altre azioni della tastiera.

Una delle caratteristiche più interessanti di Selenium è la sua facilità d’uso, tanto che quando è stato introdotto ha subito scavalcato molte altre tecniche di test collaudate ed è diventato lo strumento di riferimento per i test di automazione web.

Quality assurance, il caso Mobot

Mobot è una startup che ha realizzato quella che la sua fondatrice Eden Full Goh afferma essere “la prima piattaforma infrastructure-as-a-service”. In pratica consente agli sviluppatori di utilizzare robot fisici per automatizzare i test delle app sui dispositivi mobili. In controtendenza rispetto al trend macroeconomico, ad agosto 2022 Mobot ha chiuso un round di serie A da 12,5 milioni di dollari guidato da Cota Capital, portando il totale raccolto della società a 17,8 milioni di dollari.

Mobot utilizzerà questi proventi per espandere i suoi team di vendita, marketing e ingegneria, aumentando l’organico complessivo da 42 dipendenti attuali a 50 entro la fine dell’anno.

“Attualmente, Mobot non si sta posizionando come concorrente o sostituto per emulatori e test automatizzati”, ha dichiarato Full Goh (nella foto). “Il nostro obiettivo è quello di sostituire l’inevitabile garanzia di qualità manuale che tutti devono ancora espletare e dovranno sempre più espletare man mano che la frammentazione dei dispositivi crescerà nei prossimi cinque-dieci anni”.

Come funziona Mobot

Quello che fa Mobot non è una novità: la robotica è già stata utilizzata per testare il software dei dispositivi mobili. Japan Novel Corp., ad esempio, offre un robot in grado di simulare il processo di scorrimento e di tocco ripetuto molte volte sul touchscreen di uno smartphone; T-Mobile ha costruito un robot simile in-house, soprannominato Tappy, per testare telefoni e tablet prima di inviarli ai punti vendita.

Tuttavia, questi tipi di macchine tendono a richiedere un elevato investimento iniziale, secondo Full Goh, per non parlare dell’esperienza robotica. Al contrario, Mobot astrae la manutenzione, consentendo ai clienti di impostare un test case semplicemente registrando un video sull’app e sul dispositivo (o dispositivi) da testare. Al termine del test, il team Mobot registra i risultati. I clienti possono visualizzare report affiancati utilizzando uno strumento self-service.

Mobot afferma di aver eseguito migliaia di cicli di test dalla sua fondazione, all’inizio del 2018, raccogliendo milioni di screenshot dalle app testate. Fra i primi adopters figurano Citizen, Mapbox, Branch, Radar, Persona e circa altre 45 aziende.

Mobot

Crediti immagine: Mobot

Mobot sta realizzando, inoltre, un framework di test per tenere il passo con i progressi tecnologici nei visori per la realtà aumentata, negli smartwatch e in prodotti che ancora non sono sul mercato, come le lenti a contatto intelligenti.

L’italiana Unguess (ex AppQuality)

In Italia a svolgere questa attività c’era AppQuality, nata qualche anno per offrire una suite di servizi che, attraverso una community di 200.000 tester qualificati, verificava che il prodotto digitale arrivasse nelle mani dell’utente finale senza bug. Dall’inizio di quest’anno la startup ha allargato il proprio campo d’azione consolidando la sua presenza nel mondo dei prodotti e servizi digitali e, per inaugurare questo nuovo corso, ha cambiato nome diventando Unguess. Non più solo User Experience e Software Quality, ma anche Market Research, Customer Experience e Cybersecurity.  Obiettivo: “portare conoscenza condivisa all’interno dei processi aziendali per prendere le decisioni corrette sin dall’inizio eliminando le supposizioni, il guesswork, da cui il nuovo nome del brand”, ha dichiarato Luca Manara, Ceo di Unguess e founder dell’azienda, punto di riferimento per il crowdtesting.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Pierluigi Sandonnini
Pierluigi Sandonnini

Ho una formazione ibrida, tecnologica e umanistica. Nuove tecnologie I&CT e trasformazione digitale sono i miei principali campi di interesse. Ho iniziato a lavorare nella carta stampata, mi sono fatto le ossa al Corriere delle Telecomunicazioni negli anni a cavallo del Duemila. Collaboro con Digital360 dal 2020

Articoli correlati

Articolo 1 di 2