Учебное пособие по ETL-тестированию

Что такое ETL-тестирование?

ETL-тестирование проводится для обеспечения точности данных, загруженных из источника в пункт назначения после преобразования бизнеса. Это также включает в себя проверку данных на различных промежуточных этапах, которые используются между источником и пунктом назначения. ETL означает «Извлечение-Преобразование-Загрузка».

ETL-тестирование

Тестирование хранилища данных

Тестирование хранилища данных это метод тестирования, при котором данные внутри хранилища данных проверяются на целостность, надежность, точность и согласованность, чтобы соответствовать структуре данных компании. Основная цель тестирования хранилища данных — убедиться, что интегрированные данные внутри хранилища данных достаточно надежны, чтобы компания могла принимать решения.

Что такое ETL?

ETL означает «Извлечение-Преобразование-Загрузка» и представляет собой процесс загрузки данных из исходной системы в хранилище данных. Данные извлекаются из базы данных OLTP, преобразуются в соответствии со схемой хранилища данных и загружаются в базу данных хранилища данных. Многие хранилища данных также включают данные из систем, отличных от OLTP, таких как текстовые файлы, устаревшие системы и электронные таблицы.

Давайте посмотрим, как это работает

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

Теперь, если они хотят проверить историю клиента и узнать, какие продукты он купил в результате различных маркетинговых кампаний; это было бы очень утомительно.

Решение состоит в том, чтобы использовать Datawarehouse хранить информацию из разных источников в единой структуре с помощью ETL. ETL может преобразовывать разнородные наборы данных в единую структуру.Later используйте инструменты BI для получения значимой информации и отчетов на основе этих данных.

На следующей диаграмме в этом руководстве по тестированию ETL представлена ​​ДОРОЖНАЯ КАРТА процесса тестирования ETL и различные концепции тестирования ETL:

Извлечь-Преобразовать-Загрузить

  1. Выписка
  • Извлеките соответствующие данные
  1. Transform
  • Преобразование данных в формат DW (хранилище данных).
  • Ключи сборки. Ключ — это один или несколько атрибутов данных, которые однозначно идентифицируют объект. Различный типы ключей Первичный ключ, альтернативный ключ, внешний ключ, составной ключ, суррогатный ключ. Хранилище данных владеет этими ключами и никогда не позволяет каким-либо другим объектам назначать их.
  • Очистка данных: после извлечения данных перейдет к следующему этапу очистки и согласования данных. Очистка не только устраняет пропуски в данных, но и выявляет и исправляет ошибки. Соответствие означает разрешение конфликтов между несовместимыми данными, чтобы их можно было использовать в корпоративном хранилище данных. В дополнение к этому эта система создает метаданные, которые используются для диагностики проблем исходной системы и улучшения качества данных.
  1. нагрузка
  • Загрузка данных в DW (Хранилище данных)
  • Создание агрегатов. Создание агрегата представляет собой суммирование и хранение данных, доступных в таблица фактов для повышения производительности запросов конечных пользователей.

Процесс тестирования ETL

Как и другие процессы тестирования, ETL также проходит разные фазы. Различные этапы процесса тестирования ETL следующие:

Процесс тестирования ETL

ETL-тестирование проводится в пять этапов

  1. Определение источников данных и требований
  2. сбор данных
  3. Внедрение бизнес-логики и многомерного моделирования.
  4. Создание и заполнение данных
  5. Создание отчетов

Процесс тестирования ETL

Виды ETL-тестирования

Виды тестирования Процесс тестирования
Производственное проверочное тестирование «Балансировка таблиц» или «производственная сверка». Этот тип ETL-тестирования выполняется на данных по мере их перемещения в производственные системы. Чтобы поддержать ваше бизнес-решение, данные в ваших производственных системах должны находиться в правильном порядке. информатика Опция проверки данных обеспечивает возможности автоматизации и управления тестированием ETL, чтобы гарантировать, что данные не будут скомпрометированы в производственных системах.
Источник для Target Тестирование (проверочное тестирование) Такой тип тестирования проводится для проверки того, являются ли преобразованные значения данных ожидаемыми значениями данных.
Подача заявки Upgrades Такой тип ETL-тестирования может быть сгенерирован автоматически, что существенно экономит время разработки тестов. Этот тип тестирования проверяет, совпадают ли данные, извлеченные из старого приложения или репозитория, с данными в репозитории или новом приложении.
Тестирование метаданных Тестирование метаданных включает тестирование проверки типа данных, проверки длины данных и проверки индекса/ограничений.
Тестирование полноты данных Чтобы убедиться, что все ожидаемые данные загружены в цель из источника, выполняется проверка полноты данных. Некоторые из тестов, которые можно выполнить, — это сравнение и проверка счетчиков, агрегатов и фактических данных между источником и целевым объектом для столбцов с простым преобразованием или без преобразования.
Тестирование точности данных Это тестирование проводится для того, чтобы убедиться, что данные точно загружены и преобразованы, как ожидалось.
Тестирование преобразования данных Тестирование преобразования данных проводится, так как во многих случаях этого невозможно достичь, написав один исходный код. SQL запрос и сравнение результата с целью. Для проверки правил преобразования может потребоваться выполнить несколько SQL-запросов для каждой строки.
Тестирование качества данных Тесты качества данных включают синтаксические и эталонные тесты. Во избежание каких-либо ошибок, связанных с датой или номером заказа, во время бизнес-процесса проводится тестирование качества данных.

Синтаксические тесты: он будет сообщать о грязных данных, основанных на недопустимых символах, шаблоне символов, неправильном порядке верхнего или нижнего регистра и т. д.

Эталонные тесты: они проверят данные в соответствии с моделью данных. Например: Идентификатор клиента.

Тестирование качества данных включает проверку номера, проверку даты, проверку точности, проверку данных, проверку нуля и т. д.

Инкрементальное ETL-тестирование Это тестирование проводится для проверки целостности старых и новых данных с добавлением новых данных. Инкрементальное тестирование проверяет, что вставки и обновления обрабатываются должным образом во время добавочного процесса ETL.
Тестирование графического интерфейса/навигации Это тестирование проводится для проверки аспектов навигации или графического интерфейса внешних отчетов.

Как создать тестовый пример ETL

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

При выполнении ETL-тестирования тестер ETL всегда будет использовать два документа:

  1. Листы сопоставления ETL:Листы сопоставления ETL содержат всю информацию об исходных и целевых таблицах, включая каждый столбец и их поиск в справочных таблицах. Тестировщикам ETL необходимо хорошо разбираться в запросах SQL, поскольку тестирование ETL может включать в себя написание больших запросов с несколькими соединениями для проверки данных на любом этапе ETL. Листы сопоставления ETL оказывают значительную помощь при написании запросов для проверки данных.
  2. Схема источника БД, Target: Его следует держать под рукой для проверки любых деталей картографических листов.

Сценарии и тестовые сценарии ETL

Сценарий тестирования Тестовые кейсы
Проверка картографического документа Проверьте документ сопоставления, предоставлена ​​ли соответствующая информация ETL или нет. Журнал изменений должен храниться в каждом картографическом документе.
Проверка
  1. Проверьте структуру исходной и целевой таблицы на соответствие соответствующему документу сопоставления.
  2. Тип исходных данных и целевой тип данных должны быть одинаковыми.
  3. Длина типов данных как в источнике, так и в цели должна быть одинаковой.
  4. Убедитесь, что указаны типы и форматы полей данных.
  5. Длина исходного типа данных не должна быть меньше длины целевого типа данных.
  6. Проверьте имена столбцов в таблице на соответствие документу сопоставления.
Проверка ограничений Убедитесь, что ограничения определены для конкретной таблицы, как и ожидалось.
Проблемы с согласованностью данных
  1. Тип данных и длина конкретного атрибута могут различаться в файлах или таблицах, хотя семантическое определение одинаково.
  2. Неправильное использование ограничений целостности
Проблемы полноты
  1. Убедитесь, что все ожидаемые данные загружены в целевую таблицу.
  2. Сравните количество записей между источником и целью.
  3. Проверьте наличие отклоненных записей
  4. Данные проверки не должны быть обрезаны в столбце целевых таблиц.
  5. Проверьте анализ граничных значений
  6. Сравнивает уникальные значения ключевых полей между данными, загруженными в WH, и исходными данными.
Проблемы с корректностью
  1. Данные, которые написаны с ошибками или записаны неточно
  2. Нулевые, неуникальные или вне допустимого диапазона данные
трансформация трансформация
Качество данных
  1. Проверка номера: необходимо проверить номер и подтвердить его.
  2. Проверка даты: они должны соответствовать формату даты, и он должен быть одинаковым для всех записей.
  3. Проверка точности
  4. Проверка данных
  5. Нулевая проверка
Нулевая проверка Проверьте значения NULL, где «Not Null» указано для определенного столбца.
Дубликат проверки
  1. Необходимо проверить уникальный ключ, первичный ключ и любой другой столбец должны быть уникальными в соответствии с бизнес-требованиями, если есть повторяющиеся строки.
  2. Проверьте, существуют ли повторяющиеся значения в каком-либо столбце, который извлекается из нескольких столбцов в источнике и объединяется в один столбец.
  3. В соответствии с требованиями клиента необходимо обеспечить отсутствие дубликатов в сочетании нескольких столбцов только в пределах цели.
Проверка даты Значения даты используют многие области разработки ETL для

  1. Чтобы узнать дату создания строки
  2. Определите активные записи в соответствии с перспективой развития ETL.
  3. Определите активные записи в соответствии с перспективой бизнес-требований.
  4. Иногда на основе значений даты генерируются обновления и вставки.
Полная проверка данных
  1. Чтобы проверить полный набор данных в исходной и целевой таблице за вычетом запроса в лучшем решении.
  2. Нам нужен источник минус цель и цель минус источник.
  3. Если минус-запрос возвращает какое-либо значение, его следует рассматривать как несовпадающие строки.
  4. Необходимо сопоставить строки между источником и целью с помощью оператора пересечения.
  5. Число, возвращаемое функцией intersect, должно совпадать с отдельными значениями исходной и целевой таблиц.
  6. Если за вычетом результатов запроса строк и числа пересечений меньше, чем исходное количество или целевая таблица, мы можем считать, что существуют повторяющиеся строки.
Чистота данных Ненужные столбцы следует удалить перед загрузкой в ​​промежуточную область.

Типы ошибок ETL

Типы ошибок ETL

Тип ошибок Описание
Ошибки пользовательского интерфейса/косметические ошибки
  • Связано с графическим интерфейсом приложения
  • Стиль шрифта, размер шрифта, цвета, выравнивание, орфографические ошибки, навигация и т. д.
Ошибка, связанная с анализом граничных значений (BVA)
  • Минимальные и максимальные значения
Ошибка, связанная с разделением классов эквивалентности (ECP)
  • Действительный и недействительный тип
Ошибки ввода/вывода
  • Допустимые значения не принимаются
  • Приняты неверные значения
Ошибки расчета
  • Математические ошибки
  • Окончательный результат неверен
Ошибки условий загрузки
  • Не позволяет нескольким пользователям
  • Не допускает ожидаемой клиентом нагрузки
Ошибки условий гонки
  • Сбой и зависание системы
  • Система не может запускать клиентские платформы
Ошибки контроля версий
Аппаратные ошибки
  • Устройство не отвечает на приложение
Помощь Источник ошибок
  • Ошибки в справочных документах.

Разница между тестированием базы данных и тестированием ETL

ETL-тестирование Тестирование базы данных
Проверяет, перемещаются ли данные должным образом. Основная цель — проверить, соответствуют ли данные правилам/стандартам, определенным в модели данных.
Проверяет, совпадают ли значения в источнике и цели.

Проверяет, соответствуют ли преобразованные данные ожиданиям

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

Обязанности тестировщика ETL

Ключевые обязанности тестера ETL разделены на три категории.

  • Сценический стол/ SFS или MFS
  • Применена логика трансформации бизнеса
  • Target загрузка таблицы из промежуточного файла или таблицы после применения преобразования.

Некоторые обязанности тестера ETL:

  • Тестирование программного обеспечения ETL
  • Тестовые компоненты хранилища данных ETL
  • Выполнить серверное тестирование на основе данных
  • Создавать, проектировать и реализовывать контрольные примеры, планы испытаний и тестовое оборудование
  • Определить проблему и предложить решения возможных проблем
  • Утвердить требования и техническое задание на проектирование
  • Передача данных и тестовый плоский файл
  • Написание SQL-запросов3 для различных сценариев, таких как проверка подсчета

Тестирование производительности в ETL

Тестирование производительности в ETL — это метод тестирования, позволяющий гарантировать, что система ETL может обрабатывать нагрузку от нескольких пользователей и транзакций. Основная цель ETL Тестирование производительности Целью оптимизации и улучшения производительности сеансов является выявление и устранение узких мест в производительности. Исходная и целевая базы данных, сопоставления, сеансы и система могут иметь узкие места в производительности.

Одним из лучших инструментов, используемых для тестирования/настройки производительности, является Informatica.

Автоматизация ETL-тестирования

Общая методология тестирования ETL заключается в использовании сценариев SQL или «наблюдении» за данными. Эти подходы к тестированию ETL отнимают много времени, подвержены ошибкам и редко обеспечивают полную информацию. тестовое покрытие. Для ускорения, улучшения охвата, снижения затрат, улучшения дефект уровень обнаружения ETL-тестирования в производственных средах и средах разработки, автоматизация является необходимостью времени. Одним из таких инструментов является Informatica.

лучшие практики ETL-тестирования

  1. Убедитесь, что данные преобразованы правильно
  2. Без потери и усечения данных прогнозируемые данные должны быть загружены в хранилище данных.
  3. Убедитесь, что приложение ETL правильно отклоняет и заменяет значения по умолчанию и сообщает неверные данные.
  4. Необходимо убедиться, что данные загружены в хранилище данных в установленные и ожидаемые сроки, чтобы подтвердить масштабируемость и производительность.
  5. Все методы должны иметь соответствующие модульные тесты независимо от видимости.
  6. Чтобы измерить свою эффективность, все модульные тесты должны использовать соответствующие методы покрытия.
  7. Стремитесь к одному утверждению для каждого тестового примера
  8. Создавай модульные тесты нацеленные на исключения

Проверять, выписываться - Интервью по тестированию ETL, вопросы и ответы