// Beliven_SRL

HQ Udine | Via Del Ledra, 56
+39 0432 1698253

Branch Milano | Viale Cassala, 30 [presso C30]
+39 0432 1698253

Branch Pisa | Via XX Settembre, 28 Pontedera (PI)
+39 0432 1698253

[email protected]

SQA: software di qualità e soddisfazione del cliente

 

 

 

 

La Software Quality Assurance o SQA è una fase fondamentale del ciclo di vita dello sviluppo software, il cui obiettivo consiste nell’assicurare al prodotto digitale un costante controllo qualitativo. Questo processo, dinamico e ciclico, è infatti finalizzato a garantire la realizzazione (e consegna al cliente) di software corretti e funzionanti in ogni dettaglio, capaci di rispondere appieno ai requisiti funzionali e soddisfare le esigenze. 

Ma l’importanza dell’SQA va oltre la semplice distribuzione di prodotti digitali impeccabili, coinvolgendo la riduzione dei costi, la gestione delle tempistiche di progetto e l’incremento della reputazione aziendale. Nonostante la sua rilevanza, pare però che in Italia l’SQA non riceva ancora l’attenzione che merita, specialmente da parte delle software house che spesso sottovalutano il suo impatto positivo sulla qualità complessiva del prodotto. Ma quali sono le fasi del Software Quality Assurance e che cosa possiamo aspettarci nel prossimo futuro in termini di percezione di valore? Ne abbiamo parlato con Edona Gashi, SQA Specialist di Beliven 

Cosa significa SQA o Software Quality Assurance 

La Software Quality Assurance o SQA è un’attività che viene svolta durante tutto il ciclo di vita dello sviluppo software. Si tratta, in breve, di un costante processo di controllo della qualità che punta a valutare il rispetto degli standard prefissati per il prodotto digitale, sia esso in fase di sviluppo sia già sviluppato. 

“In quanto QA Specialist”, racconta Edona, “il mio obiettivo è garantire che il software sviluppato sia corretto, che funzioni a dovere e che soddisfi le aspettative del cliente. Realizzare un prodotto digitale perfetto è impossibile, gli errori e i difetti ci sono, ci saranno e non possono essere evitati. Proprio per questo, oltre ad individuarli per poterli correggere, parte del mio lavoro consiste nello scovare nuovi processi interni e persino strumenti con cui fare in modo di ottimizzare i processi e rendere i difetti sempre meno numerosi, ancor prima di arrivare alla fase finale. L’obiettivo ultimo d’altronde non è semplicemente raggiungere la qualità del software, ma migliorarla”. 

L’importanza del SQA 

Come abbiamo visto, il processo di Software Quality Assurance può intendersi in quanto ciclo continuo di testing cui obiettivo è quello di valutare la qualità del prodotto digitale e metterne in luce i difetti per permetterne la risoluzione e ottenere un software finito di alto valore. Attraverso questo ciclo, che avviene spesso in contemporanea con le attività di sviluppo del reparto Dev, un reparto QA è in grado di assicurare la massima funzionalità del prodotto finito e pronto per essere consegnato tra le mani del cliente. 

Per una software house, però, SQA implica non solo realizzare e fornire prodotti digitali funzionanti e curati in ogni dettaglio e soddisfare le esigenze dei clienti, ma anche ridurre i costi e le tempistiche di un progetto di sviluppo e migliorare la propria reputazione aziendale. 

“Purtroppo sono ancora molte le realtà che non colgono appieno l’importanza di rendere la SQA parte integrante del processo di sviluppo software, eppure tutti sono alla ricerca di un prodotto senza difetti”. In tutto questo, effettuare i giusti test e assicurarsi della qualità del prodotto significa naturalmente offrire prodotti di valore, capaci anche di aumentare il senso di fiducia che ruota attorno alla software house e ai suoi prodotti. 

Per approfondire l’argomento, dai un’occhiata a questo articolo dedicato.  

sqa

Come funziona la Software Quality Assurance 

Come ogni realtà che cerca di trarre il meglio dalle esperienze pregresse per dar vita a processi fluidi e ottimizzati, anche Beliven ha previsto una serie di processi interni standardizzati. Tra questi processi rientra anche quello riservato alla Software Quality Assurance, al quale Edona sta attivamente partecipando forte della sua ultima certificazione in materia di QA 

Il processo di SQA è altamente flessibile e si compone di diverse attività che possono essere calate agilmente nei singoli contesti. Per quanto il Software Quality Assurance si basi su una serie di step, è evidente che variabili come la tipologia di progetto, le tempistiche a disposizione e le caratteristiche specifiche del prodotto possono portare ad alcune variazioni. Ecco, quindi, che i canonici 8 step possono diminuire in numero nel caso di progetti più semplici. 

Ma quali sono gli step fondamentali? 

“Indipendentemente dalla tipologia di progetto, direi che i passi fondamentali dell’SQA sono la pianificazione iniziale, l’analisi dei requisiti, la pianificazione dei vari test cases e infine la correzione dei difetti da parte degli sviluppatori. L’aspetto interessante però è che queste fasi finali, l’individuazione degli errori e la loro risoluzione, possono essere ripetuti più e più volte durante lo sviluppo del prodotto digitale”. Perché? Semplice, per riuscire a raggiungere il 100% di livello di copertura dei test. 

Ma le attività del reparto Software Quality Assurance non terminano certo qui. Al reparto viene infatti demandato il compito di redigere dei Manuali per i clienti e per gli utenti finali, utili a guidarli nell’uso del software. 

Le fasi dell’SQA

Pianificazione iniziale e analisi dei requisiti 

La prima fase del Software Quality Assurance, quella che si svolge durante il primo stadio di vita dello sviluppo software, coincide naturalmente con una buona pianificazione.
Questa attività viene svolta dal Project Manager che, anche a seguito del confronto diretto con il cliente, ha modo di definire quelli che saranno i criteri e gli obiettivi di qualità del software, anche sulla base delle aspettative del cliente stesso. Aspettative, tempi e budget sono variabili che costringono il PM a scegliere, progetto per progetto, quale approccio adottare e quali tipologie di test eseguire sul software. 

L’output di questa primissima fase è quindi una lista di obiettivi e di test da effettuare sul prodotto per assicurarsi il loro raggiungimento. 
La fase di analisi iniziale è fondamentale per poter impostare correttamente i lavori del reparto Dev, del reparto Design e naturalmente del reparto SQA.  

Passo successivo coincide con l’analisi dei requisiti, ovvero con un’attività che punta a mappare il sistema, già sviluppato o da sviluppare, per andare ad estrapolare tutte le funzionalità della piattaforma che dovranno poi essere testate. 

L’analisi dei requisiti deve essere validata dal cliente prima di poter passare definitivamente alla fase di progettazione dei test cases.

Progettazione ed esecuzione dei test cases 

La progettazione dei test cases in Beliven prevede il giusto mix di test manuali e automatizzati per poter analizzare con cura ogni singolo dettaglio del software. Il reparto SQA si occupa a questo punto di definire la lista di test cases per ogni singola funzionalità, utili per assicurarsi il perfetto funzionamento della funzionalità stessa. 

“In base a quanto è complessa e importante la funzionalità all’interno del sistema”, sottolinea Edona, “si stabilisce quanto a fondo andare a testare il sistema. Non tutte le funzionalità richiedono infatti lo stesso carico di test ed è utile capire su quali aspetti concentrare l’attenzione e il tempo”. 

La fase di analisi e progettazione dei test cases non implica affatto che l’attività di sviluppo debba essere stata conclusa, al contrario. Reparto SQA e Dev possono infatti lavorare contemporaneamente all’interno del progetto, portando avanti lo sviluppo delle varie
funzionalità da un lato ed estrapolando le varie condizioni di test dall’altro. 

 “In effetti, il fatto che reparto Dev e SQA possano lavorare sullo stesso prodotto digitale durante lo sviluppo è funzionale. Potendo svolgere i test quando lo sviluppo non è ancora completo rende possibile migliorare la qualità del prodotto in corso d’opera perché rende possibile prevenire gli errori, non solo individuarli. Un errore scovato alla fine del ciclo di sviluppo del software implica naturalmente dei tempi e dei costi spesso significativi per essere risolto; quindi, collaborare al progetto è fondamentale per tutti”.  

Ecco, quindi, che la fase di testing del software si pone due obiettivi chiave: prevenire errori e rilevare eventuali difetti del sistema.  

Il risultato di questa attività è un vero e proprio report che consente di mettere in luce i difetti individuati durante la fase di esecuzione dei test e indicare quindi la qualità raggiunta dal sistema.  

Ovviamente, i difetti possono ora essere assegnati agli sviluppatori per essere risolti. In questa fase, il QA, gli sviluppatori e il PM si occupano di capire che cosa abbia prodotto l’errore, quale sia la sua gravità e pianificare gli interventi correttivi, ovvero le varie sessioni di lavoro sul codice e il reworking dei test per assicurarsi dell’efficacia delle rilavorazioni.  

“Chi si occupa di SQA sa che questa è in assoluto la parte più delicata di tutto il lavoro, per diversi motivi. L’obiettivo è ovviamente quello di mettere in evidenza lo stato del sistema, per arrivare ad un prodotto digitale di alta qualità, ma per farlo serve identificare gli errori che sono stati commessi. Il rischio è che il report dettagliato sui difetti del software finisca per essere percepito dagli sviluppatori come un giudizio sulla qualità del loro lavoro. La verità però è che gli errori possono persino dipendere dalle primissime fasi dello sviluppo o alla fase di stesura dei requisiti funzionali.” 

Gestione dei difetti (o revisione dei requisiti) 

Il report sugli errori e sui difetti del software permette di capire se si sta sviluppando il prodotto in modo corretto e se il risultato che si sta cercando di ottenere è quello più appropriato rispetto a requisiti tecnici e aspettative. 

A questo punto del processo di SQA, si tratta di gestire i difetti e, molto spesso, affrontare tempi sempre più stretti. Di fatti, questa fase può intendersi come un processo ciclico che si ripete più volte nel corso del ciclo di vita dello sviluppo del software con l’obiettivo di raggiungere il 100% del livello di copertura dei test. “Per dirla semplicemente”, racconta Edona, “ogni funzionalità ha una lista specifica di test cases che vengono effettuati più volte”. 

Per quanto possa sembrare poco producente, conclusa questa fase può farsi necessario fare dei cambiamenti all’interno dei requisiti funzionali. Questo comporta anche una ridefinizione di quelli che sono i test cases e una loro esecuzione. 

SQA: un processo senza fine 

Considerate le fasi che abbiamo visto, quanto dura un ciclo di Software Quality Assurance? La verità è che rispondere a questa domanda è pressoché impossibile.  

Se ogni progetto, a seconda di tempistiche, budget e dimensione, prevede interventi più o meno mirati e più o meno impegnativi in termini di tempo, è altrettanto vero che il ciclo di SQA all’interno di un sistema non finisce mai. 

“Basti pensare alle fasi di manutenzione o alle modifiche al software richieste dal cliente, che magari desidera aggiungere o cambiare una funzionalità del prodotto digitale, o anche ai cicli imposti da questioni di sicurezza. Se il reparto sviluppo deve mettere mano al codice o rivedere le librerie è fondamentale effettuare i giusti test sull’affidabilità del sistema e quant’altro”. 

SQA e design: un’accoppiata vincente 

Come sarà ormai evidente da quanto detto fin qui, le attività di testing sono fondamentali anche per mettere in evidenza la possibilità di effettuare una serie di migliorie in termini di UX e UI  

E in effetti, quella tra designer e responsabile SQA si rivela spesso una collaborazione fondamentale al successo del software. Poter infatti unire approcci e competenze diverse, rende possibile affrontare la fase di pianificazione e analisi secondo una visione a 360°, tenendo conto anche di quello che generalmente è un rapporto diretto del designer con il cliente.  

Il designer, infatti, ha una visione chiara su quello che è importante per il cliente e conosce le fasi critiche della progettazione dei prodotti alla stregua del PM. Ecco perché lavorare insieme al progetto permette di dar vita persino a tipologie di test inedite. 

Il panorama attuale dell’SQA 

Nonostante l’importanza di questo processo di valutazione della qualità del software, pare che in Italia la SQA continui a non riscuotere grande interesse. Come si spiega questa cosa? 

“In effetti, sia le software house sia le aziende di prodotto oggi non sembrano essere molto interessate a questo servizio, che considerano più come un costo che come un valore. Le software house in particolare tendono a credere che le attività di testing possano essere automatizzate e eseguite direttamente dal team di sviluppatori impegnati sul progetto, ma è evidente che il grado di attenzione che può essere dedicato ai test dai Dev è bassissimo rispetto a quello di un reparto SQA dedicato. Non si tratta soltanto di considerare gli aspetti tecnici ma anche il sistema nel suo complesso, per migliorarlo e renderlo più fluido.”  

Diversa pare essere invece la questione per quanto riguarda le aziende di prodotto, più consapevoli di quanto qualità e usabilità possano fare la differenza tra il successo e il fallimento sul mercato.  

“Per un’azienda è chiaro che avere un’app o un e-commerce che non rispetta le aspettative dei clienti è un problema”. 

Che cosa aspettarsi quindi dal futuro del Software Quality Assurance? 

“Credo che le aziende si renderanno conto, software house comprese, del valore della SQA e cominceranno a percepirlo come un aspetto chiave del successo dei prodotti digitali”. La vera rivoluzione, tuttavia, non riguarderà tanto una diversa percezione del servizio di Quality Assurance ma principalmente una diversa mentalità organizzativa 

“Oggi, i clienti preferiscono spendere meno e rinunciare quindi al servizio di QA perché non ne percepiscono il valore, i PM preferiscono concentrare l’effort sullo sviluppo per rispettare budget e tempi ristretti, gli sviluppatori preferiscono dedicarsi allo sviluppo e non doversi far carico di una lista di errori e test falliti.” 

Ecco perché per arrivare al momento in cui la fase di SQA venga percepita come una parte fondamentale del ciclo di sviluppo del software ci vorrà probabilmente molto tempo. “Ma quella è la direzione inevitabile. Le tecnologie oggi avvicinando tutti al mondo dello sviluppo software: app, siti web, e-commerce e prototipi possono essere realizzati anche da programmatori in erba. Il bacino di persone che in futuro si metterà a sviluppare prodotti digitali sarà sempre più ampio e a fare la differenza allora saranno la qualità e l’affidabilità del software.” 

Hai un prodotto digitale e vuoi assicurarti la massima qualità? Contattaci per saperne di più del servizio di Software Quality Assurance. 

Argomenti correlati

// Follow_us