Учебники

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

Прежде чем мы узнаем что-либо об ETL Testing, важно изучить Business Intelligence и Dataware. Давайте начнем —

Что такое БИ?

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

Что такое хранилище данных?

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

Тестирование ETL или Datawarehouse: Ultimate Guide

Что такое ETL?

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

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

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

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

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

Следующая диаграмма дает вам дорожную карту процесса ETL

Тестирование ETL или Datawarehouse: Ultimate Guide

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

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

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

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

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

Тестирование ETL или Datawarehouse: Ultimate Guide

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

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

Тестирование ETL или Datawarehouse: Ultimate Guide

Типы тестирования ETL

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

Как создать ETL Test Case

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

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

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

 

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 Validate Проверьте нулевые значения, где «Не пусто» указано для конкретного столбца.
Дубликат Чек
  1. Необходимость проверки уникального ключа, первичного ключа и любого другого столбца должна быть уникальной в соответствии с бизнес-требованиями, имеющими дублирующиеся строки
  2. Проверьте, существуют ли какие-либо повторяющиеся значения в каком-либо столбце, который извлекается из нескольких столбцов в источнике и объединяется в один столбец.
  3. В соответствии с требованиями клиента, необходимо убедиться, что нет дубликатов в комбинации нескольких столбцов в пределах цели
Проверка даты Значения даты используют много областей в разработке ETL для

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

Типы ошибок ETL

Тестирование ETL или Datawarehouse: Ultimate Guide

Тип ошибок

Описание

Ошибки интерфейса пользователя / косметические ошибки

  •  Связанные с GUI приложения
  •  Стиль шрифта, размер шрифта, цвета, выравнивание, орфографические ошибки, навигация и т. Д.

Ошибка, связанная с анализом граничных значений (BVA)

  • Минимальные и максимальные значения

Ошибка, связанная с разделением классов эквивалентности (ECP)

  •  Допустимый и неверный тип

Ошибки ввода / вывода

  • Допустимые значения не принимаются
  •  Принимаются неверные значения

Расчет ошибок

  • Математические ошибки
  • Окончательный вывод неверен

Ошибки условия загрузки

  • Не позволяет нескольким пользователям
  • Не позволяет клиенту ожидаемую нагрузку

Ошибки гонки

  • Сбой системы и зависание
  • Система не может запустить клиентские платформы

Ошибки контроля версий

H / W ошибки

  • Устройство не отвечает на приложение

Помощь Источник ошибок

  • Ошибки в справочных документах

 

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

 

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

 

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

Основные обязанности тестера ETL разделены на три категории

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

Некоторые из обязанностей тестера ETL являются

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

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

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

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

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

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

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

Checkout — ETL Testing Интервью Вопросы и ответы