Sviluppo software

Come effettuate il testing del software?

Nel campo dello sviluppo software il testing o collaudo è un procedimento di verifica delle qualità di correttezza, completezza e affidabilità di un software.

Esistono due tipologie di test, l'Alfa testing e il Beta testing .

L'Alfa testing viene svolto internamente all'azienda che sviluppa il software, mentre il Beta testing viene svolto direttamente dal committente del software o da un campione rappresentativo dell'utenza che userà il software.

In Garda Informatica l'alfa testing viene svolto con strategie diverse a seconda del caso.


Per alcune parti dei software sviluppati utilizziamo una forma di testing automatico anche chiamata Unit Testing . In questo caso scriviamo dei piccoli programmi che hanno il compito di verificare i risultati prodotti dal software posto sotto test. Questo tipo di test va bene solo per quelle parti del software che non richiedono un'interazione con l'utente. Il vantaggio di scrivere test automatici è la ripetibilità "senza costo" del test che può essere eseguito tutte le volte che si vuole. Ad esempio dopo una modifica o una correzione di bug, senza costi si rilanciano i test automatici.

In alcuni contesti invece si vuole porre sotto test la scalabilità e la robustezza del software nel gestire grandi quantità di dati, in altri termini si vuole effettuare una prova di carico. Per questo scenario si sviluppa un apposito programma che produce milioni di dati verosimili e li inserisce direttamente nel database dell'applicativo. Una volta riempito il database è possibile verificare dall'interfaccia del software che le prestazioni dello stesso non subiscano delle alterazioni significative legate alla mole dei dati gestiti. Ad esempio se un applicativo deve gestire i dati di milioni di "utenti" è possibile creare un software che inserisca in un database tutte le combinazioni di 100 nomi e 100 cognomi fino ad arrivare all'inserimento del numero di utenti voluti.

Negli scenari in cui la sicurezza è fondamentale è possibile fare alcuni penetration test per evidenziare eventuali criticità nel software. In questi casi si usano software automatici come ad esempio OWASP Zap .

Quando invece si vuole mettere alla prova il software in un uso normale di interazione con un Umano allora è necessario un test manuale. Noi di Garda Informatica prima di rilasciare un software svolgiamo sempre dei test manuali. La regola interna è che chi ha sviluppato il software non sarà la persona che lo testa, ma il testing verrà condotto da un altro collega che è anch'esso uno sviluppatore software. In altri termini ci si scambia il software da testare. Questo approccio è fondamentale per i seguenti motivi:

  • Se lo sviluppatore testa il suo stesso software, rischia di non metterci la giusta enfasi per far emergere i bug sicuramente presenti e quindi rischia di non trovarli;
  • Testare il software scritto da altri permette di ragionare in modo diverso da chi lo ha scritto e quindi seguire dei percorsi di uso e quindi di test diversi da quelli che aveva previsto l'autore del software;
  • Il fatto che il test lo faccia sempre uno sviluppatore è fondamentale perché uno sviluppatore ha la malizia per sapere come provare a mettere in difficoltà il software e per sapere dove è meglio agire per cercare di far emergere i bug;

Oltre ai test già citati, tipici per applicazioni gestionali e web app, vengono anche svolti tutta una serie di test automatici per quei software sviluppati con linguaggi di programmazione più a basso livello nei contesti di visione artificiale e di automazione industriale. In questi casi infatti, il linguaggio di programmazione utilizzato, per questioni di efficienza computazionale, è più ostico perché più vicino alla macchina. Di conseguenza il programmatore deve preoccuparsi di aspetti più vicini alla macchina come ad esempio evitare i memory leak o gli accessi a posizioni non valide della memoria. In questi casi si possono utilizzare dei tool come Visual Leak Detector che aiutano a scovare gli errori di programmazione.

Infine, una strategia per produrre software di qualità è quella di prevenire l'introduzione di errori nel software, ma per poterla mettere in pratica bisogna affrontare lo sviluppo del software in tutt'altro modo. Ne abbiamo parlato nell'articolo Come fate a creare Applicazioni Web Su Misura a prezzi contenuti?.

Non bisogna dimenticare inoltre che l'Alfa test può solo cercare di ridurre il numero di bug presenti nel software, ma fondamentale è la fase di Beta testing in cui è compito del committente verificare che il software sia conforme alle proprie esigenze. In altri termini il cliente, con il suo giudizio, è l'unico responsabile della correttezza di un software.

Hai qualche domanda a cui non abbiamo dato risposta? Contattaci senza impegno!

Autore: Lorenzo Chiodi
Senior software developer con più di 16 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Giovanni.

Che soluzione cerchi?#

Read more!

Newsletter

Ti è piaciuto questo articolo? Iscriviti alla newsletter

Di tanto in tanto pubblichiamo nuovi articoli come questo. Se vuoi essere avvisato lascia il tuo indirizzo e-mail di seguito.

Non invieremo mai SPAM e non condivideremo la tua e-mail con altri. Per maggiori informazioni consulta la privacy policy.

Attendere prego...

closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menushareIcona sharelinkIcona linkarrow upwardIcona arrow upward