Il testing o collaudo software delle applicazioni web

Il testing o collaudo software delle applicazioni web

Vista la velocità con cui oggigiorno evolvono sia la tecnologia, sia il software a corredo di quest’ultima, il problema del testing software (o anche chiamato collaudo software) si è fatto sempre più rilevante.

Il testing o collaudo software delle applicazioni web

Esistono oggi diverse forme di testing:

  1. testing funzionale – vengono provate tutte le funzionalità di un oggetto;
  2. testing prestazionale – vengono analizzate le prestazioni dell’oggetto.

Il testing funzionale, a sua volta, include altre forme di testing atte a verificare le potenzialità dell’oggetto (nel nostro caso, del software):

  1. validazione delle specifiche – si controlla che il software esegua quanto è stato richiesto in fase di progettazione;
  2. regression testing – è il processo di accertamento il quale assicura che i programmi continuino a funzionare senza problemi dopo aver apportato i nuovi cambiamenti;
  3. verifica di affidabilità – viene esaminato il comportamento del software in presenza di componenti malfunzionanti.

La struttura ottimale di un progetto software web-based dovrebbe comprendere tre ambienti diversi tra loro collegabili da opportune fasi di deployment:

  1. sviluppo: i programmatori possono provare le classi e i programmi realizzati senza essere disturbati da fattori esterni (prove degli utenti o altro);
  2. staging: analisti e utenti possono provare le versioni (release) di software ritenute stabili da chi governa il processo di sviluppo;
  3. produzione: contiene le release certificate dalla fase di staging e rilasciate all’utenza.

E’ ovvio che il passaggio da un ambiente ad un altro debba essere rigorosamente certificato da opportune funzioni adibite al rilascio (validazione delle specifiche). Quello che ci interessa più da vicino, all’interno del testing funzionale, è il regression testing. Il regression testing è parte del processo di sviluppo del software e, nelle aziende più grandi, viene eseguito da specialisti del settore. Prima che sia rilasciata una nuova versione (release) di un prodotto software, viene fatta eseguire da tale software una serie di test case (caso di test) collaudata sulla release precedente senza che presentasse alcun problema. Il motivo di tutto ciò è da ricercarsi nel cambiamento del codice di un programma: aggiungendo nuovo codice, è facile (quanto probabile) introdurre errori nel codice stesso non previsti con le modifiche che si volevano apportare. Per dare l’impressione di immediatezza, i siti web e le applicazioni web-based devono dimostrare una velocità (in termini di prestazioni), qualità (nella progettazione) e scalabilità (in futuro) già garantite e verificate.

Come tali gli sviluppatori informatici, i gestori dei siti e le aziende che finanziano il sito devono esaminare e misurare quanto velocemente i componenti del sistema web-based sono in grado di soddisfare alle richieste, in modo da poter determinare il quantitativo di richieste gestibili simultaneamente (testing prestazionale).

Questo processo di verifica del carico computazionale deve essere effettuato durante e dopo la fase di sviluppo poiché è molto importante accertare il comportamento dei siti e delle applicazioni in presenza di un forte traffico (heavy load). Ciò potrebbe essere causa di alti tempi di risposta e perfino di crash del sito dovuti a delle limitazioni hardware.

Un load test – detto anche web application stress test – simula l’attività dell’utente ed analizza gli effetti del mondo reale sull’applicazione. Dal load testing dell’applicazione web durante lo sviluppo, un’azienda può identificare le parti critiche dell’applicazione web stessa prima che sia raggiunta da centinaia di migliaia di utenti.

Il load test può quindi offrire un’importante prova sulla scalabilità e sulla robustezza di un’applicazione Intranet e/o Internet, e fornire sicurezza sulla mancanza di interruzioni del lavoro e prestazioni inaccettabili.

Gli strumenti che permettono di svolgere tale compito prendono il nome di workload tools. In commercio troviamo WAPT, SilkPerformer, LoadRunner, TestStudio, WebLOAD, WebStone e molti altri, tutti di software house differenti.

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *