Учебное пособие по ETL-тестированию
⚡ Умное резюме
Тестирование ETL проверяет, как данные передаются из исходных систем через логику преобразования в целевое хранилище данных, подтверждая точность, полноту и надежность. В этом ресурсе объясняются этапы процесса, типы тестирования, распространенные категории ошибок, подходы к автоматизации и практические рекомендации, необходимые начинающим и опытным тестировщикам.

Что такое ETL?
ETL стенды для Extract-Transform-Loadи описывает, как данные перемещаются из исходной системы в хранилище данных. Данные являются исходными.tracДанные берутся из OLTP-базы данных, преобразуются в соответствии со схемой хранилища данных и загружаются в базу данных хранилища. Многие хранилища данных также включают данные из систем, не относящихся к OLTP, таких как текстовые файлы, устаревшие приложения и электронные таблицы.
Например, в розничном магазине могут быть отдельные отделы, такие как продажи, маркетинг и логистика. Каждый отдел обрабатывает информацию о клиентах независимо, и способ хранения этих данных различается. Отдел продаж может хранить записи по имени клиента, а отдел маркетинга — по идентификатору клиента.
Если бизнес-командам необходимо просмотреть полную историю покупок клиента в рамках различных маркетинговых кампаний, разрозненные данные делают этот процесс очень трудоемким. Решение заключается в использовании... Datawarehouse Для хранения информации из различных источников в единой структуре используется ETL. ETL позволяет преобразовывать разнородные наборы данных в единую структуру, благодаря чему инструменты бизнес-аналитики могут впоследствии получать ценные аналитические данные и создавать отчеты.
На следующей диаграмме показана последовательность действий при тестировании ETL и основные концепции, которые вы будете использовать на протяжении всего данного руководства:
1) Эксtract
- Extracсоответствующие данные из одной или нескольких исходных систем.
2) Трансформировать
- Преобразовать данные в формат хранилища данных (DW).
- Создание ключей: ключ — это один или несколько атрибутов данных, которые однозначно идентифицируют сущность. Различные типы ключей К ним относятся первичный ключ, альтернативный ключ, внешний ключ, составной ключ и суррогатный ключ. Хранилище данных владеет этими ключами и никогда не позволяет никакому другому объекту их назначать.
- Очистка данных: после того, как данные удалены.tracПосле этого система переходит к следующему этапу — очистке и согласованию. Очистка устраняет пропуски и выявляет ошибки. Согласование разрешает конфликты между несовместимыми наборами данных, чтобы их можно было использовать в корпоративном хранилище данных. Система также создает метаданные, которые помогают диагностировать проблемы в исходных системах и повышать качество данных.
3) Нагрузка
- Загрузите данные в хранилище данных (DW).
- Создание агрегатов: агрегат суммирует и хранит данные из таблица фактов для повышения производительности запросов конечных пользователей.
Что такое ETL-тестирование?
Тестирование ETL выполняется для обеспечения точности данных, загружаемых из источника в пункт назначения после бизнес-трансформации. Оно также включает проверку данных на различных промежуточных этапах между источником и пунктом назначения. Поскольку ETL расшифровывается как ExtracТестирование ETL-процессов (t-Transform-Load) охватывает каждый из этих трех этапов и точки пересечения данных между ними.
Почему важно тестирование ETL?
После того, как вы поймете, что такое тестирование ETL, следующий вопрос — почему организации вкладывают в него столько усилий. Бизнес-решения зависят от корректных, полных и достоверных данных, поэтому одна ошибка преобразования может иметь серьезные последствия для финансовых отчетов, анализа данных о клиентах и раскрытия информации регулирующим органам.
Следующие пункты объясняют практическую ценность тщательного тестирования ETL:
- Точность данных: Это подтверждает, что значения, преобразованные бизнес-правилами, соответствуют задокументированной карте.ping Технические характеристики, предотвращающие скрытое повреждение данных.
- Достоверная информация: Панели мониторинга и инструменты бизнес-аналитики зависят от хранилища данных, поэтому проверенные конвейеры ETL защищают каждый последующий отчет и KPI.
- Соответствие нормативным требованиям: Такие отрасли, как банковское дело, здравоохранение и страхование, должны доказать, что происхождение и целостность данных сохраняются от начала до конца.
- Сокращение объема доработок: Выявление дефектов в условиях низкой нагрузки позволяет избежать дорогостоящих перезагрузок производства, ручной сверки и ошибок, возникающих при взаимодействии с клиентами.
- Обеспечение производительности: Тестирование ETL измеряет временные окна загрузки, пропускную способность и узкие места, чтобы хранилище данных продолжало масштабироваться по мере роста объема данных.
Исходя из этих мотивов, в следующем разделе подробно рассматривается структурированный процесс, которому следуют тестировщики ETL в реальных проектах.
Dataddo — это полностью управляемая платформа интеграции данных без необходимости написания кода, упрощающая подключение облачных приложений, панелей мониторинга и хранилищ данных. Эта ETL-платформа имеет настраиваемые коннекторы, которые можно создать в течение 10 рабочих дней. Инструмент поддерживает обратный ETL, репликацию баз данных и традиционные функции ETL.
Процесс тестирования ETL
Подобно другим процессам тестирования, ETL также проходит через различные фазы. Различные фазы процесса тестирования ETL следующие:
Тестирование ETL-процессов выполняется в пять этапов:
- Определение источников данных и требований
- сбор данных
- Реализация бизнес-логики и многомерного моделирования.
- Создание и заполнение данных
- Создание отчетов
Учитывая общую схему процесса, давайте рассмотрим конкретные типы тестирования, которые вписываются в этот жизненный цикл.
Виды ETL-тестирования
- Производственное проверочное тестирование
Порядок проверки: Этот тип ETL-тестирования, также называемый «балансировкой таблиц» или «согласованием производственных данных», выполняется над данными по мере их поступления в производственные системы. Для поддержки принятия бизнес-решений производственные данные должны быть расположены в правильном порядке. информатика Опция проверки данных обеспечивает возможности автоматизации и управления тестированием ETL, предотвращая компрометацию производственных систем из-за некорректных данных. - Источник для Target Тестирование (проверочное тестирование)
Порядок проверки: Этот тип тестирования позволяет проверить, соответствуют ли преобразованные значения данных ожидаемым целевым значениям. - Области применения Upgrades
Порядок проверки: Этот тип ETL-тестирования может быть сгенерирован автоматически, что значительно экономит время на разработку тестов. Он проверяет, соответствуют ли данные заданным параметрам.tracДанные, полученные из более старого приложения или репозитория, сопоставляются с данными в новом приложении или репозитории. - Тестирование метаданных
Порядок проверки: Проверка метаданных включает в себя проверку типов данных, проверку длины данных, а также проверку индексов или ограничений. - Тестирование полноты данных
Порядок проверки: Проверка полноты данных подтверждает, что все ожидаемые данные загружены из источника в целевую систему. К распространенным тестам относятся сравнение и проверка количества записей, агрегированных данных и фактических данных между столбцами источника и целевой системы, если преобразование данных является простым или отсутствует. - Тестирование точности данных
Порядок проверки: Это тестирование гарантирует правильную загрузку и преобразование данных в соответствии с ожиданиями. - Тестирование преобразования данных
Порядок проверки: Проверка преобразования данных зачастую не может быть выполнена с использованием одного источника. SQL Запрос и сравнение результатов. Для проверки правил преобразования для каждой строки может потребоваться несколько SQL-запросов. - Тестирование качества данных
Порядок проверки:Тесты качества данных включают синтаксические и справочные тесты. Они предотвращают ошибки в бизнес-процессах, вызванные некорректными датами или номерами заказов.
Синтаксические тесты выдают сообщения о некорректных данных, содержащих недопустимые символы, шаблоны символов и неправильный порядок заглавных или строчных букв.
Контрольные тесты проверяют данные на соответствие модели данных. Например: идентификатор клиента.
Проверка качества данных также включает проверку чисел, дат, точности, самих данных и наличие нулевых значений.
- Инкрементальное ETL-тестирование
Порядок проверки: Данное тестирование проверяет целостность данных, как старых, так и новых, с учетом добавления новых данных. Инкрементальное тестирование подтверждает, что операции вставки и обновления обрабатываются должным образом в процессе инкрементального ETL-процесса. - Тестирование графического интерфейса/навигации
Порядок проверки: Данное тестирование проверяет навигационные возможности и графический интерфейс пользователя в отчетах на стороне клиента.
Как создать тестовый пример ETL
Тестирование ETL — это концепция, применимая к различным инструментам и базам данных в индустрии управления информацией. Цель тестирования ETL — убедиться в точности данных, загружаемых из источника в пункт назначения после преобразования бизнес-процессов. Это также включает проверку данных на различных промежуточных этапах между источником и получателем.
При проведении ETL-тестирования тестировщик всегда использует два документа:
- Карта ETLping листы: Карта ETLping В таблице содержится вся информация об исходных и целевых таблицах, включая каждый столбец и его справочные значения в таблицах. Тестировщики ETL должны хорошо разбираться в SQL-запросах, поскольку тестирование ETL может включать написание больших запросов с множеством соединений для проверки данных на любом этапе. Карта ETLping Таблицы значительно упрощают написание запросов для проверки данных.
- Схема базы данных источника и цели: Его следует всегда держать под рукой, чтобы проверять любые детали на карте.ping листы.
Сценарии и тестовые сценарии ETL
- Картаping проверка документа
Тестовые примеры: Проверьте, предоставлена ли соответствующая информация ETL в карте.ping В каждом документе должен вестись журнал изменений.ping Док. - Проверка
Тестовые примеры:1) Проверьте структуру исходной и целевой таблиц на соответствие соответствующей карте.ping Док.
2) Тип исходных данных и тип целевых данных должны совпадать.
3) Длина типов данных в источнике и целевой системе должна быть одинаковой.
4) Убедитесь, что указаны типы и форматы полей данных.
5) Длина исходного типа данных не должна быть меньше длины целевого типа данных.
6) Проверьте названия столбцов в таблице по карте.ping Док. - Проверка ограничений
Тестовые примеры: Убедитесь, что для конкретной таблицы заданы необходимые ограничения. - Проблемы с согласованностью данных
Тестовые примеры:1) Тип данных и длина определенного атрибута могут различаться в разных файлах или таблицах, даже если семантическое определение одинаково.
2) Неправильное использование ограничений целостности. - Проблемы полноты
Тестовые примеры:1) Убедитесь, что все необходимые данные загружены в целевую таблицу.
2) Сравните количество записей в исходном и целевом файлах.
3) Проверьте наличие отклоненных записей.
4) Убедитесь, что данные в столбцах целевых таблиц не усечены.
5) Проверьте краевой анализ.
6) Сравните уникальные значения ключевых полей между данными, загруженными в хранилище, и исходными данными. - Проблемы с корректностью
Тестовые примеры:1) Данные, содержащие орфографические ошибки или неточности.
2) Нулевые, неуникальные или выходящие за пределы допустимого диапазона данные. - трансформация
Тестовые примеры: Убедитесь, что каждое бизнес-правило и логика преобразования в карте соответствуют действительности.ping Документ корректно применяется к исходным данным до того, как они попадут в целевую систему. - Качество данных
Тестовые примеры:1) Проверка чисел: проверка форматов и значений чисел.
2) Проверка дат: даты должны соответствовать единому формату и быть согласованными во всех записях.
3) Проверка точности.
4) Проверка данных.
5) Нулевая проверка. - Нулевая проверка
Тестовые примеры: Проверьте значения NULL в тех столбцах, для которых указано "Не NULL". - Дубликат проверки
Тестовые примеры:1) Проверьте уникальный ключ, первичный ключ и любые другие столбцы, которые должны быть уникальными в соответствии с бизнес-требованиями, чтобы убедиться в отсутствии повторяющихся строк.
2) Проверьте, нет ли повторяющихся значений в каком-либо столбце, например.tracСобранные данные из нескольких исходных столбцов объединены в один столбец.
3) В соответствии с требованиями клиента, убедитесь в отсутствии дубликатов в комбинации нескольких столбцов в целевом массиве. - Проверка даты
Тестовые примеры: Даты используются во многих областях разработки ETL-процессов:1) Чтобы узнать дату создания строки.
2) Определите активные записи с точки зрения разработки ETL-процесса.
3) Определите активные записи с точки зрения бизнес-требований.
4) Иногда, на основе значений дат, генерируются обновления и вставки. - Полная проверка данных
Тестовые примеры:1) Проверьте весь набор данных в исходной и целевой таблицах, используя запрос с отрицательным знаком (-) в качестве наилучшего решения.
2) Необходимо выполнить операцию "источник минус цель" и операцию "цель минус источник".
3) Если запрос на вычитание возвращает какое-либо значение, эти строки следует считать несовпадающими.
4) Сопоставьте строки между исходной и целевой базой данных, используя оператор пересечения.
5) Количество, возвращаемое функцией intersecte, должно совпадать с индивидуальными значениями в исходной и целевой таблицах.
6) Если запрос с отрицательным знаком возвращает строки, а количество пересечений меньше, чем количество пересечений в исходном или целевом запросе, значит, существуют дубликаты строк. - Чистота данных
Тестовые примеры: Ненужные столбцы следует удалить перед загрузкой в промежуточную область.
Типы ошибок ETL
Даже при наличии надежных тестовых примеров конвейеры ETL могут давать сбои по-разному. На изображении ниже приведены категории ошибок, на которые следует обратить внимание, а в таблице ниже описана каждая из них.
| Тип ошибок | Описание |
|---|---|
| Ошибки пользовательского интерфейса/косметические ошибки |
• Относится к графическому интерфейсу приложения • Стиль шрифта, размер шрифта, цвета, выравнивание, орфографические ошибки, навигация и так далее. |
| Ошибка, связанная с анализом граничных значений (BVA) | • Минимальные и максимальные значения |
| Ошибка, связанная с разделением классов эквивалентности (ECP) | • Допустимый и недопустимый тип |
| Ошибки ввода/вывода |
• Допустимые значения не принимаются • Принимаются недопустимые значения |
| Ошибки расчета |
• Математические ошибки • Окончательный вывод неверен |
| Ошибки условий загрузки |
• Не допускает одновременного использования несколькими пользователями • Не допускает нагрузки, ожидаемой заказчиком. |
| Ошибки условий гонки |
• Сбой и зависание системы • Система не может запускать клиентские платформы |
| Ошибки контроля версий |
• Нет соответствия логотипу • Информация о версии отсутствует. • Обычно встречается в Регрессионное тестирование |
| Аппаратные ошибки | • Устройство не отвечает приложению |
| Помощь Источник ошибок | • Ошибки в справочных документах |
Тестирование хранилища данных
Тестирование хранилища данных Тестирование хранилища данных — это метод тестирования, при котором данные внутри хранилища данных проверяются на целостность, надежность, точность и согласованность в соответствии с корпоративной структурой данных. Главная цель тестирования хранилища данных — убедиться, что интегрированные данные внутри хранилища достаточно надежны для принятия компанией решений. В то время как тестирование ETL фокусируется на перемещении данных, тестирование хранилища данных охватывает более широкий уровень хранения и формирования отчетов, который в конечном итоге обеспечивается ETL.
Разница между тестированием базы данных и тестированием ETL
Хотя обе дисциплины работают со структурированными данными, они отвечают на разные вопросы. В таблице ниже показано практическое различие:
| ETL-тестирование | Тестирование базы данных |
|---|---|
| Проверяет, перенесены ли данные должным образом. | Основная цель — проверить, соответствуют ли данные правилам и стандартам, определенным в модели данных. |
| Проверяет совпадение значений в исходных и целевых данных, а также соответствие преобразованных данных ожидаемым. | Проверяет отсутствие "бесхозных" записей и сохранение связей между внешним и первичным ключами. |
| Проверяет сохранение связей внешнего первичного ключа в процессе ETL. | Проверяет отсутствие избыточных таблиц и оптимальную нормализацию базы данных. |
| Проверяет наличие дубликатов в загруженных данных. | Проверяет наличие отсутствующих данных в необходимых столбцах. |
Тестирование производительности в ETL
Тестирование производительности в ETL ETL — это метод тестирования, который гарантирует, что система ETL может справиться с нагрузкой от множества пользователей и транзакций. Основная цель ETL — тестирование. Тестирование производительности Цель состоит в оптимизации и улучшении производительности сеанса путем выявления и устранения узких мест в производительности. Исходная и целевая базы данных, сопоставлениеpingВ системах, сессиях и самой системе могут возникать узкие места.
Одним из лучших инструментов для тестирования и оптимизации производительности является Informatica.
Обязанности тестировщика ETL
Основные обязанности тестировщика ETL можно разделить на три категории:
- Сценический стол / SFS или MFS
- Применена логика трансформации бизнеса
- Target Загрузка таблицы из промежуточного файла или таблицы после применения преобразования.
В число повседневных обязанностей тестировщика ETL входят следующие задачи:
- Тестирование программного обеспечения ETL
- Тестовые компоненты хранилища данных ETL
- Выполните тесты бэкэнда, основанные на данных.
- Создание, проектирование и реализация контрольные примерыпланы испытаний и испытательные стенды
- Выявлять проблемы и предлагать решения потенциальных проблем.
- Утвердить требования и техническое задание на проектирование
- Проверьте передачу данных и протестируйте плоские файлы.
- Пишите SQL-запросы для различных сценариев, таких как проверка количества совпадений.
Автоматизация ETL-тестирования
Общая методология тестирования ETL-процессов заключается в использовании SQL-скриптов или визуальной оценки данных. Эти подходы отнимают много времени, чреваты ошибками и редко обеспечивают полное подтверждение результатов. тестовое покрытиеДля ускорения выполнения, улучшения охвата, снижения затрат и повышения эффективности. дефект Для выявления угроз в производственной и тестовой средах автоматизация является насущной необходимостью. Одним из таких инструментов является Informatica.
Современные команды также сочетают традиционную автоматизацию с помощниками на основе ИИ, которые предлагают тесты преобразования, генерируют синтетические исходные данные и отмечают отклонения от схемы, освобождая тестировщиков от необходимости поддерживать повторяющиеся скрипты, позволяя им сосредоточиться на сложной бизнес-логике.
лучшие практики ETL-тестирования
- Убедитесь, что данные преобразованы корректно.
- Прогнозируемые данные должны быть загружены в хранилище данных без потери или усечения.
- Убедитесь, что ETL-приложение корректно отклоняет недопустимые данные, заменяет их значениями по умолчанию там, где это применимо, и сообщает об этом.
- Убедитесь, что данные загружаются в хранилище в установленные и ожидаемые сроки, чтобы проверить масштабируемость и производительность.
- Все методы должны иметь соответствующие модульные тесты, независимо от их видимости.
- Для оценки их эффективности все модульные тесты должны использовать соответствующие методы оценки покрытия кода.
- Старайтесь использовать одно утверждение на каждый тестовый случай.
- Создавай модульные тесты которые нацелены на исключения.
Проверять, выписываться - Интервью по тестированию ETL, вопросы и ответы





