Per mostrare che anche i sistemi sottostanti sono impeccabili
a) È necessario provare che sono impeccabili
- Prova matematica
- Realisticamente possibile solo per programmi banali
b) Effettuare un test esaustivo
- Possibile solo per programmi banali e alcuni programmi semplici
- Non appena un elemento di temporizzazione entra nel test, non è possibile effettuare un test esauriente in quanto il tempo può essere diviso indefinitamente.
- Oltre ai banali programmi, le possibili opzioni di esecuzione esplodono in modo esponenziale.
Nei test software il test esaustivo viene utilizzato solo nel test unitario di alcune semplici funzioni.
Esempio: vuoi testare un input utf-8 di 8 caratteri in un campo, fai la scelta di tagliare l'input a 8 volte la lunghezza massima 6 di utf-8 in byte che dà 8 * 6 = 48 byte per avere effettivamente un quantità finite di possibilità.
Ora potresti pensare di dover solo testare i 1.112.064 punti di codice validi di ciascuno degli 8 caratteri, ad es. 1.112.064 ^ 8 (diciamo 10 ^ 48) test (che è già improbabile sia possibile), ma in realtà devi testare ogni valore di ciascuno dei 48 byte o 256 ^ 48 che è circa 10 ^ 120 che è la stessa complessità degli scacchi rispetto al numero totale di atomi nell'universo di circa 10 ^ 80.
Invece puoi usare, in ordine crescente di sforzo e ogni test dovrebbe coprire tutto il precedente:
a) testare un campione buono e uno cattivo.
b) copertura del codice, ad es. prova a testare ogni riga di codice, che è relativamente semplice per la maggior parte del codice. Ora puoi chiederti quale sia l'ultimo 1% del codice che non puoi testare c'è ... bug, codice morto, eccezioni hardware ecc.
c) copertura del percorso, vengono testati tutti i risultati di tutti i rami in tutte le combinazioni. Ora sai perché il reparto test ti odia quando le tue funzioni contengono più di 10 condizioni. Inoltre ti chiedi perché l'ultimo 1% non possa essere testato ... alcuni rami dipendono dai rami precedenti.
d) test dei dati, test di un numero di campione con valore del bordo, valori problematici comuni e numeri magici, zero, -1, 1, min +/- 1, max +/- 1, 42, rnd valori. Se ciò non ti fornisce la copertura del percorso, sai che non hai colto tutti i valori della tua analisi.
Se lo fai già, dovresti essere pronto per l'esame di fondazione ISTQB.