Le fasi di test delle applicazioni software sono già connotate dalle loro criticità, connesse alle loro stesse intrinseche difficoltà operative ed accentuate dalle pressioni che si accumulano al termine dei cicli di sviluppo, spesso amplificate dai precedenti sforamenti nei budget e nei termini di consegna delle applicazioni finite. Quando si discute su come migliorare il test applicativo, si pensa a trovare la via per riuscire a effettuare testing meglio, prima e a costi inferiori (a dire il vero, un po’ come in tutti i progetti, siano essi It o di business).
Ci sono però due fattori da considerare nella implementazione dei test. Il primo è che i test vanno comunque svolti sull’intera applicazione, indipendentemente dalle modifiche che vi sono state apportate, in quanto queste ultime potrebbero aver compromesso il funzionamento di altre parti del software. Il secondo è relativo all’impiego di dati che debbono rappresentare nel modo più affidabile possibile quelli normalmente utilizzati dall’azienda.
La definizione dei casi di test e la generazione dei dati da utilizzare divengono così due operazioni indispensabili per operare in modo efficiente, ma non sempre correttamente ipotizzate nelle fasi di impostazione dei progetti, con la conseguenza di trovarsi spesso ad attivare soluzioni di emergenza, non affidabili e poco efficienti.
Scenario non più efficace, dato che il time to market sempre più veloce del business richiede che anche il time to market applicativo lo sia.
Tom Murphy, research director di Gartner sottolinea l’importanza del testing del software per le aziende: “Il software testing è senz’altro un processo costoso, ma dobbiamo anche considerare che un software di scarsa qualità produce insoddisfazione nell’utente, così come esigenze di sviluppo e manutenzione maggiori. Pertanto, disporre di una serie ben definita di strumenti e procedure per guidare la qualità del software inciderà positivamente sui profitti complessivi dell’azienda”.
Negli ultimi anni è cresciuta notevolmente la complessità del software (con conseguente difficoltà anche ad effettuarne la manutenzione). Il codice è continuamente modificato per rispondere a diverse esigenze: nuovi requisiti, adeguamento a nuove normative, miglioramento di aspetti funzionali, prestazionali e gestionali, ecc. Intervenire sul codice esistente può risultare, a volte, difficile e costoso quando esso non sia stato già progettato e realizzato correttamente per facilitare la sua manutenzione, sia correttiva che evolutiva e migliorativa. La qualità della progettazione è quindi un elemento fondamentale per agevolare l’evoluzione del software. E la qualità del software dipende anche dai processi di testing.
Verifica, validazione, analisi e collaudo sono dunque fasi molto delicate ed importanti che incidono in modo diretto sulla velocità con cui le applicazioni vengono rese disponibili all’utenza aziendale e sulle loro caratteristiche funzionali (che a loro volta incidono direttamente in modo diretto sull’usabilità e la produttività dell’utente).
In sostanza, quanto più le applicazioni aziendali possono essere testate in condizioni e scenari simili a quelli reali, tanto più rilevante sarà l’incremento del time to market nell’aggiornamento delle applicazioni e, molto più apprezzata, la riduzione dei costi e dei rischi.
Per avere un buon controllo della qualità prodotta attraverso lo sviluppo e la revisione/modernizzazione applicativa, è fondamentale focalizzare gli sforzi sulle revisioni tecniche ed i collaudi del software al fine di verificare il reale livello qualitativo raggiunto (e l’efficacia delle applicazioni sviluppate) nonché ricercare e identificare gli errori prima del rilascio delle soluzioni e dell’utilizzo da parte degli utenti. Le revisioni tecniche aiutano a identificare gli errori e testare la conformità della soluzione ai requirement iniziali, mentre i collaudi e i test aiutano a verificare coerenza e qualità delle applicazioni, identificando i possibili interventi correttivi.
È chiaro, dunque, che la progettazione del software deve includere nel suo ciclo di vita anche le fasi dedicate al testing, ed è altrettanto evidente che la progettazione delle operazioni di test deve poter fare affidamento su ambienti adeguati (componenti tecnologiche e basi di dati) il più possibile simili a quelli di esercizio.
Ma le sfide legate alla qualità del software e alle opportunità per accelerare il loro time to market non sono da ricondursi solo agli aspetti tecnologici; fondamentali, anche, gli aspetti di natura organizzativa e di processo.
Ad impattare sulla qualità del software, infatti, ci sono elementi importanti come l’individuazione dei giusti requisiti che devono essere in linea con le necessità del business. Requisiti che, naturalmente, coinvolgono anche le fasi di test.
Per approfondire la tematica e avere una visione di come poter affrontare correttamente le fasi di sviluppo e test applicativo in linea con le esigenze dettate dal business e dal mercato, scarica il white paper “Supercharge software time to market”