Lavoro con manipolazione audio, in genere utilizzando Matlab per la prototipazione e C++ per l'implementazione. Recentemente, ho letto su TDD. Ho esaminato alcuni esempi di base e sono abbastanza entusiasta del paradigma.Sviluppo basato su test per librerie di elaborazione del segnale
Al momento, utilizzo quello che considererei un approccio globale "assistito da test". Per questo, scrivo blocchi di elaborazione del segnale in C++, e quindi realizzo un semplice file mex Matlab che può interfacciarsi con le mie classi. Successivamente aggiungo funzionalità, controllando che i risultati corrispondano con uno script Matlab equivalente mentre procedo. Funziona bene, ma i test diventano obsoleti rapidamente con l'evolversi del sistema. Inoltre, sto testando l'intero sistema, non solo le unità.
Sarebbe bello utilizzare un framework TDD consolidato in cui posso avere una suite di test, ma non vedo come posso convalidare la funzionalità dei blocchi di elaborazione senza test altrettanto complessi come il codice in prova . Come potrei generare i segnali di riferimento in un test C++ per convalidare un blocco di elaborazione senza che il test sia una forma di profezia che si autoavvera?
Se qualcuno ha esperienza in questo settore, o può suggerire alcune metodologie che potrei leggere, sarebbe fantastico.
+1 l'elaborazione del segnale di test non è facile; una nota però: test che i risultati di C++ sono gli stessi dei risultati matlab dimostra solo quel punto, ma non dimostra che i risultati siano corretti: sia matlab che C++ potrebbero dare lo stesso, errato risultato – stijn