Недавно мы работали над проектом, где плата управления требовали «Вы должны быть тесты Unit», и поэтому мы старались изо всех сил.
Что сработало для нас, каждое решение ETL начиналось и заканчивалось пакетом QA/Test.
Все, что было обнаружено этими пакетами, было зарегистрировано в таблице аудита, а затем было отменено событие «Неудачный пакет», чтобы остановить всю работу. Мы полагали, что лучше работать с хорошими данными вчера, чем представлять отчетность о возможных неудачах «сегодня», данные.
В стартовом пакете будут выполняться процедуры db и проверки работоспособности данных. Data Sanity включала проверку дублирования или отсутствия данных, вызванных отсутствием ссылочной целостности в исходных системах. Проверка схемы гарантировала, что любые изменения схемы, которые не были применены во время непрерывной интеграции, были обнаружены.
В конце пакета будут проверяться результаты любых преобразований. К ним относятся:
- Сравнение подсчета записей между источником | назначения
- Проверка конкретных преобразований (например: все значения даты изменяется на соответствующее значение SK, все строковые значения RTrimed)
- Обеспечение всех полей SK были заселены (- 1 вместо нулей)
Большинство из этих тестов были операторами SQL, которые использовали встроенные объекты схемы в нашей базе данных, поэтому они не были обременительными для создания.
Кроме того, в рамках нашего процесса разработки мы создадим представления, которые имели бы конечный результат любых преобразований, которые мы делали. Мы использовали эти взгляды для подтверждения наших преобразований пакетов.
Каждая из этих проверок создала запись в нашей специальной таблице аудита. Таким образом, мы могли бы предоставить исчерпывающий список всех проверок и проверок, которые мы проводили каждый процесс, чтобы удовлетворить потребности людей в управлении.
(У нас также был отдельный набор пакетов, которые будут тестировать каждый тест QA путем создания фиктивных таблиц, заполнения их, выполнения теста, а затем подтверждения записи соответствующего аудита. Как сказал Ник, это было много работы и небольшой реальной стоимости)
Вам необходимо создать пустую тестовую базу данных, тестовые примеры (в источниках данных), запустить ваш ETL, а затем проверить полученные данные в целевой тестовой базе данных. Гораздо более запутанный, чем тест на единицу приложения, поэтому он не делается много. –
@ Nick.McDermaid благодарит за информацию –