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

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

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

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

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

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

Что такое ETL?

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

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

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

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

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

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

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

1) Извлечение

  • Извлеките соответствующие данные

2) Трансформировать

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

3) Нагрузка

  • Загрузка данных в DW (Хранилище данных)
  • Создание агрегатов. Создание агрегата представляет собой суммирование и хранение данных, доступных в таблица фактов для повышения производительности запросов конечных пользователей.

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

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

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

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

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

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

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

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

    Тесты качества данных включают синтаксические и эталонные тесты. Во избежание каких-либо ошибок, связанных с датой или номером заказа, во время бизнес-процесса проводится тестирование качества данных.

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

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

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

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

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

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

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

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

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

  1. Проверка картографического документа
    Тестовые примеры: Проверьте документ сопоставления, предоставлена ​​ли соответствующая информация ETL или нет. Журнал изменений должен храниться в каждом картографическом документе.
  2. Проверка
    Тестовые примеры:

    1) Проверьте структуру исходной и целевой таблиц на соответствие соответствующему документу сопоставления.
    2) Исходный тип данных и целевой тип данных должны быть одинаковыми.
    3) Длина типов данных в исходном и целевом файлах должна быть одинаковой.
    4) Убедитесь, что указаны типы и форматы полей данных.
    5) Длина исходного типа данных не должна быть меньше длины целевого типа данных.
    6) Проверьте названия столбцов в таблице на соответствие документу сопоставления.

  3. Проверка ограничений
    Тестовые примеры: Убедитесь, что ограничения определены для конкретной таблицы, как и ожидалось.
  4. Проблемы с согласованностью данных
    Тестовые примеры:

    1) Тип данных и длина конкретного атрибута могут различаться в файлах или таблицах, хотя семантическое определение одинаково.
    2) Злоупотребление ограничениями целостности

  5. Проблемы полноты
    Тестовые примеры:

    1) Убедитесь, что все ожидаемые данные загружены в целевую таблицу.
    2) Сравните количество записей в исходном и целевом файлах.
    3) Проверьте наличие отклоненных записей.
    4) Проверьте, не должны ли данные быть обрезаны в столбце целевых таблиц.
    5) Проверьте анализ граничных значений
    6) Сравнивает уникальные значения ключевых полей между данными, загруженными в WH, и исходными данными.

  6. Проблемы с корректностью
    Тестовые примеры:

    1) Данные, которые написаны с ошибками или записаны неточно
    2) Нулевые, неуникальные или выходящие за пределы диапазона данные

  7. трансформация
    Тестовые примеры: трансформация
  8. Качество данных
    Тестовые примеры:

    1) Проверка номера: необходимо проверить номер и подтвердить его.
    2) Проверка даты: необходимо соблюдать формат даты, и он должен быть одинаковым для всех записей.
    3) Проверка точности
    4) Проверка данных
    5) Нулевая проверка

  9. Нулевая проверка
    Тестовые примеры: Проверьте значения NULL, где «Not Null» указано для определенного столбца.
  10. Дубликат проверки
    Тестовые примеры:

    1) Необходимо проверить уникальный ключ, первичный ключ и любой другой столбец, который должен быть уникальным в соответствии с бизнес-требованиями, если есть какие-либо дублирующиеся строки.
    2) Проверьте, есть ли повторяющиеся значения в любом столбце, который извлекается из нескольких столбцов источника и объединяется в один столбец.
    3) В соответствии с требованиями клиента необходимо убедиться, что в комбинации нескольких столбцов в пределах целевого объекта нет дубликатов.

  11. Проверка даты
    Тестовые примеры: Значения даты используют многие области разработки ETL для

    1) Узнать дату создания строки
    2) Определить активные записи в соответствии с перспективой разработки ETL.
    3) Определите активные записи в соответствии с бизнес-требованиями.
    4) Иногда на основе значений дат генерируются обновления и вставки.

  12. Полная проверка данных
    Тестовые примеры:

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

  13. Чистота данных
    Тестовые примеры: Ненужные столбцы следует удалить перед загрузкой в ​​промежуточную область.

Типы ошибок 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, вопросы и ответы