Per mostrare che i sistemi sottostanti sono impeccabili puoi
a) È necessario dimostrare che sono impeccabili
- Prova matematica
- Solo realisticamente possibile per programmi banali
b) Esegui un test completo
- 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 programmi banali le possibili opzioni di esecuzione esplodono esponenzialmente.
Nel test del software, il test esaustivo viene utilizzato solo in test di unità di alcune semplici funzioni.
Esempio:
Se 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 una quantità finita di possibilità.
Ora potresti pensare di aver solo bisogno di testare i 1.112.064 punti di codice validi di ciascuno degli 8 caratteri, vale a dire. 1,112,064 ^ 8 (diciamo 10 ^ 48) test (che è già improbabile possibile), ma in realtà è necessario testare ogni valore di ciascuno dei 48 byte o 256 ^ 48 che è di circa 10 ^ 120, che è la stessa complessità di < a href="https://en.wikipedia.org/wiki/Shannon_number"> scacchi rispetto al numero totale di atomi dell'universo di circa 10 ^ 80.
Invece puoi usare, in ordine crescente di sforzo e ogni test dovrebbe riguardare tutto il precedente:
a) prova un campione buono e cattivo.
b) copertura del codice, es. prova a testare ogni riga di codice, che è relativamente semplice per la maggior parte del codice. Ora puoi chiederti che cos'è l'ultimo 1% del codice che non puoi testare ... 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 può essere testato ... alcuni rami dipendono dai rami precedenti.
d) test dei dati, testare un numero di campioni con valore di frontiera, valori problematici comuni e numeri magici, zero, -1, 1, min +/- 1, max +/- 1, 42, valori rnd. Se questo non ti offre la copertura del percorso sai che non hai catturato tutti i valori nella tua analisi.
Se lo fai già, dovresti essere pronto per l'esame di fondazione ISTQB.