Unit test tattiche

5

L'unica tattica di test di unità che conosco è la comparazione con i dati dorati _ un insieme predefinito di dati di input per i quali è noto l'output (preferibilmente compresi casi d'angolo).

Non riesco a pensare a nessun altro ragionevole metodo di test unitario. Provare a testare l'unità usando dati di input arbitrari è (almeno) difficile come scrivere l'applicazione stessa.

Esistono tattiche efficaci per i test unitari diversi dai test sui dati d'oro?

Nota: Per dati arbitrari intendo qualsiasi input valido syntactically che un metodo può accettare (inclusi gli input logicamente non validi).

    
posta superM 30.01.2014 - 11:46
fonte

2 risposte

4

Le tattiche per il test dell'unità variano in base alla "unità di prova" testata in quel test.

Se l'unità di test è un'implementazione di una funzione che esegue un calcolo basato su una combinazione di input e il suo stato corrente, allora un buon test di unità sarebbe quello di mettere quell'oggetto nello stato definito, e quindi chiamare la funzione e verifica che il suo output sia il golden data

Se l'unità di test è responsabile della decisione di quale oggetto da una lista dovrebbe restituire, allora un buon test unitario potrebbe forzare la compilazione dell'elenco con i suoi oggetti (mock?) e quindi verificare che l'istanza dell'oggetto prevista sia stata restituita .

Alcune unità testate non corrispondono allo stile "golden value" del test.

Si consideri, una funzione che è responsabile del sequenziamento di una serie di chiamate ad altri oggetti. In questo caso, è probabile che crei oggetti simulati / falsi per ricevere queste chiamate, e invece di confrontare i valori d'oro, stai controllando che questi oggetti siano stati chiamati con parametri appropriati.

vengono scritti alcuni test unitari per verificare l'assenza di comportamenti

Considera come convalidare una funzione necessaria per effettuare una chiamata di funzione se si verificano determinate condizioni. È altrettanto importante verificare che questa chiamata non si verifichi se le condizioni non sono soddisfatte, poiché è necessario verificarne la chiamata quando si incontrano.

Infine, a volte può essere importante verificare che una funzione non generi eccezioni su una vasta gamma di input.

    
risposta data 30.01.2014 - 12:56
fonte
6

Potresti dare un'occhiata a equivalence partizionamento vs analisi del valore al contorno . Testare contro i "dati d'oro" (analisi del valore al contorno) è davvero il miglior compromesso, dando sufficiente fiducia che tutto sia coperto nella maggior parte dei casi.

    
risposta data 30.01.2014 - 11:59
fonte

Leggi altre domande sui tag