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

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

В этой статье мы подробно разберём, что такое тестирование ETL, изучим его основные этапы, а также рассмотрим различные типы этого тестирования. 

Цель статьи — дать вам чёткое понимание всех ключевых аспектов ETL и показать, как тестирование помогает обеспечить точность и надёжность обработки данных. Давайте начнём с основ.

Содержание:

Что такое ETL?

ETL расшифровывается как Extract, Transform, Load (извлечение, преобразование, загрузка). ETL — это процесс, включающий три этапа: извлечение, преобразование и загрузку данных из одного источника в другой.

Проще говоря, операции ETL выполняются для переноса данных из одной базы данных в другую. Процесс ETL часто используется в хранилищах данных (data warehousing).

Давайте теперь кратко обсудим процесс ETL.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Процесс ETL

  1. Извлечение данных (Data Extracting). На первом этапе данные извлекаются из исходной базы данных. Причём источников данных может быть несколько.
  2. Преобразование данных (Data Transforming). На втором этапе извлечённые данные преобразуются с использованием различных правил и функций, чтобы сохранить их в целевой базе данных в нужном формате. Поскольку данные поступают из разных источников, высока вероятность возникновения проблем. Например:
    • Одному и тому же объекту могут быть присвоены разные имена.
    • Разные объекты могут иметь одинаковые названия.
  3. Загрузка данных (Data Loading). На последнем этапе преобразованные и приведённые к единому формату данные загружаются в целевую базу данных.

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

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

Пример:
Рассмотрим слияние двух компаний — Компании A и Компании B. После объединения их операции будут совмещены, а данные о клиентах, сотрудниках и других аспектах будут храниться в одной централизованной базе данных.

Предположим, что Компания A использует базу данных Oracle, а Компания B — MySQL. Чтобы объединить данные, компании могут использовать процесс ETL для переноса информации из своих индивидуальных баз данных в одну согласованную базу.

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

В рамках тестирования ETL тестировщики должны убедиться, что:

  1. Данные из обеих баз преобразованы в формат целевой базы данных.
  2. Все необходимые функции преобразования выполнены.
  3. Во время процесса не было потеряно ни одной части данных, и данные точны.

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

Процесс тестирования ETL во многом схож с другими традиционными процессами тестирования и состоит из нескольких этапов:

  1. Определение и понимание бизнес-требований. На этом этапе команда тестировщиков изучает требования к процессу ETL, обычно с помощью бизнес-аналитика. Тестировщики должны понять структуру исходной базы данных, правила преобразования и выявить возможные проблемы или пробелы в требованиях и источниках данных.
  2. Валидация источников данных. После понимания требований тестировщики проверяют их, чтобы убедиться, что их понимание соответствует заданным требованиям.
  3. Оценка тестирования. На этапе оценки определяется, сколько времени и усилий потребуется для проведения тестирования. Это зависит от сложности источников данных, правил преобразования и доступных ресурсов.
  4. Планирование тестирования. На этом этапе составляется детальный план тестирования. Документ тест-плана включает объём тестирования, подход, потенциальные риски и шаги по их минимизации.
  5. Разработка тестов. Здесь разрабатываются тестовые сценарии и тест-кейсы. Они должны охватывать все требования и правила преобразования.
  6. Предварительная проверка. Готовые тест-кейсы и сценарии согласовываются с бизнес-аналитиком, чтобы убедиться, что всё соответствует бизнес-требованиям.
  7. Создание тестовых данных. Тестировщики создают тестовые данные для всех применимых таблиц исходных данных.
  8. Выполнение тестов. После создания тестовых данных выполняются все тест-кейсы, включая этапы извлечения, преобразования и загрузки.
  9. Сообщение об ошибках и их исправление. Если на этапе выполнения выявлены дефекты, они отправляются на исправление. После исправления проводится повторное тестирование.
  10. Отчёт о тестировании. Составляется отчёт, включающий список тест-кейсов и их статусы (пройдено/не пройдено). Этот отчёт передаётся заинтересованным сторонам, и процесс завершается.

Примечание редакции: вас также может заинтересовать статья “Вопросы на собеседовании по тестированию ETL”.

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

Существуют четыре основных типа тестирования ETL:

  1. Тестирование нового хранилища данных. При этом всё создаётся с нуля. Информация о входных данных собирается от заказчика. Исходные и целевые базы данных разрабатываются с нуля и проверяются с использованием ETL-инструментов.
  2. Тестирование миграции. Этот тип тестирования используется, если у заказчика уже есть рабочее хранилище данных и существующий ETL-инструмент. Тестирование миграции требуется, когда данные переносятся из старой базы в новую. Старая база называется исходной, а новая — целевой.
  3. Тестирование изменений. При этом типе тестирования данные извлекаются из разных источников и загружаются в существующее хранилище. Новая база данных не используется. Кроме загрузки новых данных, заказчику может понадобиться изменить или добавить бизнес-правила.
  4. Тестирование отчётов. После создания хранилища данных пользователи могут генерировать различные отчёты. Это тестирование проверяет их макет, точность данных и ограничения на доступ пользователей.

Заключение

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

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

Перевод статьи «ETL Testing».

1 комментарий к “Тестирование ETL”

  1. Пингбэк: Вопросы на собеседовании по тестированию ETL

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *