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.
-
Archivi
- Giugno 2023
- Settembre 2021
- Luglio 2021
- Gennaio 2021
- Giugno 2020
- Aprile 2020
- Gennaio 2019
- Aprile 2017
- Marzo 2017
- Novembre 2016
- Ottobre 2016
- Giugno 2016
- Maggio 2016
- Ottobre 2015
- Maggio 2015
- Febbraio 2015
- Gennaio 2015
- Novembre 2014
- Ottobre 2014
- Settembre 2014
- Agosto 2014
- Luglio 2014
- Giugno 2014
- Maggio 2014
- Aprile 2014
- Gennaio 2014
- Dicembre 2013
- Settembre 2013
- Agosto 2013
- Luglio 2013
- Giugno 2013
- Maggio 2013
- Aprile 2013
- Marzo 2013
- Febbraio 2013
- Gennaio 2013
- Dicembre 2012
- Novembre 2012
- Ottobre 2012
- Settembre 2012
- Agosto 2012
- Luglio 2012
- Giugno 2012
- Maggio 2012
- Aprile 2012
- Marzo 2012
- Gennaio 2012
- Dicembre 2011
- Novembre 2011
- Ottobre 2011
- Settembre 2011
- Agosto 2011
- Luglio 2011
- Giugno 2011
- Maggio 2011
- Aprile 2011
- Marzo 2011
- Febbraio 2011
- Gennaio 2011
- Dicembre 2010
- Novembre 2010
- Ottobre 2010
- Settembre 2010
- Agosto 2010
- Luglio 2010
- Giugno 2010
- Maggio 2010
- Aprile 2010
- Marzo 2010
- Febbraio 2010
- Gennaio 2010
- Dicembre 2009
- Novembre 2009
- Ottobre 2009
- Settembre 2009
- Agosto 2009
-
Meta