Per testing strutturale o “White Box Testing” si intendono quei casi in cui occorre verificare la struttura interna del programma e quindi cercare di scovare gli errori logici del programmatore. Nel “Black Box Testing” o testing funzionale andremo a verificare il software dal punto di vista dell’utilizzatore.
Le principali tecniche funzionali sono: partition testing, domain testing, error based testing e state testing. I partition testing si basano sul partizionare l’input del sistema in sottoinsiemi disgiunti ed ad ognuno di essi far corrispondere un diverso comportamento del programma. La tecnica può essere resa più efficiente se si aggiungono test case appositi per casi speciali, in questo modo si ha il domain testing.
L’error based testing serve per evidenziare specifici errori o classi di errori. Lo strumento di cui ci si serve per questo test è la mutazione che è un insieme di trasformazioni elementari che consentono di creare una specifica del programma mutata che contiene errori di un certo tipo. Il procedimento è quello di cambiare il nome di una variabile, il segno di un operatore o altro, sia a livello di codice che di progettazione, per vedere gli effetti nelle varianti mutate del programma.
Il domain testing si applica al test di unità o componenti attraverso la suddivisione in domini degli input, si cerca quindi di scoprire gli errori di classificazione selezionando i point test sopra o vicino i bordi del dominio. Il domain testing sfrutta il fatto che gli errori, soprattutto di tipo matematico, di solito, si addensano verso i confini del dominio.
Il partition testing è l’approccio più caratteristico del testing funzionale, l’idea è quella di suddividere in sottodomini gli argomenti della routine da testare. Si individuano tutte le combinazioni di ogni sottodominio di un dominio che formano una partizione. Fare i test su ogni sottodominio è impensabile dato il gran numero di questi, quindi si ricorre a tecniche di ricerca euristica facendo in modo che i diversi valori assunti dai parametri non interagiscano tra loro, in modo da non dover fare dei test incrociati. Facendo dei test su una funzione, ad esempio, possiamo prendere in considerazione sia gli input come gli argomenti oppure anche i valori di ritorno o output, cercando ove possibile di fare il test su ogni valore, ad esempio positivo, zero o minore di zero.
Questi metodi che ho solo riassunto servono per cercare di limitare gli errori di un programma, ma purtroppo ci sarà sempre qualcosa che produrrà un evento di malfunzionamento, l’importante è scovarne il più possibile.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→