2011-12-24 2 views
5

Voglio testare un generatore di segnali - diciamo che genera una semplice onda sinusoidale, o fa la modulazione di frequenza di un segnale su un'onda sinusoidale. È abbastanza facile definire parametri di test sensibili ed è ben noto come debba apparire "l'output", ma è piuttosto difficile da testare.Qual è una buona tecnica per testare l'unità di generazione audio digita

Potrei fare (ad esempio) un'analisi di frequenza sull'uscita e controllare che, controllare l'ampiezza massima ecc., Ma a) questo renderà il codice di test significativamente più complicato del codice che sta testando eb) non completamente prova la forma dell'output.

Esiste un modo stabilito per farlo?

risposta

2

Un modo per farlo sarebbe quello di acquisire un output "noto bene" e confrontare bit-per-bit con quello. Finché il tuo algoritmo è deterministico, dovresti ottenere sempre lo stesso risultato. Potrebbe essere necessario ricalibrarlo occasionalmente se qualcosa cambia, ma almeno saprai se cambierà del tutto.

+0

Generare segnali "noti" per ogni combinazione di parametri che voglio testare potrebbe essere piuttosto doloroso, ma testare le proprietà (ad es. Frequenza) di molti segnali, oltre a un confronto bit per bit di un paio di segnali potrebbe funziona abbastanza bene – Draemon

0

Un possibile metodo di test semiautomatico consiste nel codificare i generatori di segnali dalle specifiche di 3 diversi algoritmi, o forse da 3 diversi programmatori in 3 diversi linguaggi di programmazione. Quindi generare casualmente i parametri all'interno dell'intervallo completo di valori di input del controllo legale e acquisire e confrontare gli output di tutti e 3 i generatori per vedere se concordano entro alcuni limiti di errore. Potresti anche includere alcuni tipici e alcuni sospetti parametri del caso peggiore. Se le uscite sono sempre d'accordo, allora c'è una probabilità molto più alta che tutto funzioni per specifiche piuttosto che se non lo fanno.

2

Questa situazione è un argomento valido per uno strumento di modellazione come Matlab, per generare e rivedere un set di test ben compreso automaticamente, nonché per fornire un ambiente per il confronto automatico e il punteggio. Soprattutto nei casi in cui avvengono esplosioni combinatorie di variazioni di test, l'automazione rende possibile e diretto generare un enorme set di dati, individuare problemi e ridurli, se necessario, a un set di test di qualificazione rappresentativo.

Spesso sottovalutato è il mezzo per generare test ampi ed estesi che esercitano sia i requisiti che i limiti dell'attuazione del progetto. Pensare e progettare questi casi è anche un enorme vantaggio nell'introdurre un sistema pulito e privo di problemi.