параллельно с основным проектом пишется тестовый, в тестовом
используется те же модули что и в боевом, но реализуется не тот
функционал что должен быть в конечном продукте, а некие
синтетические тесты и выдает диагностику работы этого модуля. Например есть модуль в котором живет функция которая усредняет данные, в боевом протесте эти данные идут с АЦП, а в проект тестовый включается тот же исходник что и в боевой, но в функцию усреднения передаются искусственные данные и проверяется результат.