Разработка через тестирование библиотек обработки сигналов

Я работаю с манипуляциями со звуком, обычно используя Matlab для прототипирования и C++ для реализации. Недавно я читал о TDD. Я просмотрел несколько основных примеров и с большим энтузиазмом отношусь к этой парадигме.

В настоящее время я использую то, что я бы назвал глобальным подходом, основанным на тестировании. Для этого я пишу блоки обработки сигналов на C++, а затем создаю простой MEX-файл Matlab, который может взаимодействовать с моими классами. Впоследствии я добавляю функциональность, проверяя, совпадают ли результаты с эквивалентным скриптом Matlab. Это работает нормально, но тесты быстро устаревают по мере развития системы. Кроме того, я тестирую всю систему, а не только отдельные ее элементы.

Было бы неплохо использовать устоявшуюся структуру TDD, в которой я мог бы иметь набор тестов, но я не вижу, как я могу проверить функциональность блоков обработки без тестов, которые столь же сложны, как и тестируемый код. Как бы я генерировал эталонные сигналы в тесте C++ для проверки блока обработки, чтобы тест не был формой самосбывающегося пророчества?

Если кто-то имеет опыт в этой области или может предложить некоторые методологии, с которыми я мог бы ознакомиться, то это было бы здорово.

12
задан learnvst 1 June 2012 в 08:58
поделиться