Проекты ETL - это проекты, созданные с использованием инструмента ETL (Извлечение - Преобразование - Загрузка), такого как SSIS, PowerCenter и т. Д.
Обычно это включает чтение данных из внешнего источника, загрузку их в промежуточную базу данных, выполнение определенных преобразований и загрузку в конечную базу данных.
Простым примером будет использование SSIS для чтения файлов Excel, предоставленных школьными учителями с использованием SSIS, и загрузки их в базу данных. Затем напишите хранимые процедуры или несколько пакетов служб SSIS для расчета оценок каждого учащегося и загрузите эти данные в магазин данных \ склад
Затем вы создаете хранимые процедуры поверх витрины, чтобы генерировать выходные данные, которые используются инструментами отчетности (SSRS \ Excel \ и т. Д.) Для генерации визуализаций.
Я пытаюсь понять, как выполнить TDD и надлежащее модульное тестирование в этом сценарии. Тесты ETL в основном сводятся к тому, чтобы данные, загруженные в таблицы промежуточных таблиц, являлись правильным подмножеством данных из источника. Таким образом, реализация теста для него приводит к реализации мини-версии ETL. Выходные данные отчетов SP зависят от данных в самих таблицах, поэтому невозможно получить стабильный набор выходных данных без кошмара обслуживания, даже если вы создадите базу данных, содержащую очищенные тестовые данные.
Пример:
Спринт 1: таблица ученика содержит имя, возраст, класс
Вы создаете тестовые данные для этой таблицы, и модульные тесты на основе этого
Спринт 2. Поле добавляется в таблицу.
Теперь, если вы обновите данные в поле студента, чтобы заполнить гендерный атрибут, тестовые случаи станут недействительными, так как данные изменились. И если вы этого не сделаете, вы не можете создать тестовые случаи, которые требуют столбца пола