В этой статье мы подробно разберём, что такое тестирование ETL, изучим его основные этапы, а также рассмотрим различные типы этого тестирования.
Цель статьи — дать вам чёткое понимание всех ключевых аспектов ETL и показать, как тестирование помогает обеспечить точность и надёжность обработки данных. Давайте начнём с основ.
Содержание:
- Что такое ETL?
- Процесс ETL
- Что такое тестирование ETL?
- Этапы процесса тестирования ETL
- Типы тестирования ETL
- Заключение
Что такое ETL?
ETL расшифровывается как Extract, Transform, Load (извлечение, преобразование, загрузка). ETL — это процесс, включающий три этапа: извлечение, преобразование и загрузку данных из одного источника в другой.
Проще говоря, операции ETL выполняются для переноса данных из одной базы данных в другую. Процесс ETL часто используется в хранилищах данных (data warehousing).
Давайте теперь кратко обсудим процесс ETL.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Процесс ETL
- Извлечение данных (Data Extracting). На первом этапе данные извлекаются из исходной базы данных. Причём источников данных может быть несколько.
- Преобразование данных (Data Transforming). На втором этапе извлечённые данные преобразуются с использованием различных правил и функций, чтобы сохранить их в целевой базе данных в нужном формате. Поскольку данные поступают из разных источников, высока вероятность возникновения проблем. Например:
- Одному и тому же объекту могут быть присвоены разные имена.
- Разные объекты могут иметь одинаковые названия.
- Загрузка данных (Data Loading). На последнем этапе преобразованные и приведённые к единому формату данные загружаются в целевую базу данных.
Что такое тестирование ETL?
Тестирование ETL — это вид тестирования, проводимый для того, чтобы убедиться, что данные, перенесённые из исходной базы данных в целевую, точны и преобразованы в соответствии с заданными правилами.
Пример:
Рассмотрим слияние двух компаний — Компании A и Компании B. После объединения их операции будут совмещены, а данные о клиентах, сотрудниках и других аспектах будут храниться в одной централизованной базе данных.
Предположим, что Компания A использует базу данных Oracle, а Компания B — MySQL. Чтобы объединить данные, компании могут использовать процесс ETL для переноса информации из своих индивидуальных баз данных в одну согласованную базу.
В процессе ETL, из-за различий в базах данных, форматах, наименованиях и структурах таблиц, необходимо перед загрузкой данных в целевую базу убедиться, что они очищены и преобразованы в нужный формат.
В рамках тестирования ETL тестировщики должны убедиться, что:
- Данные из обеих баз преобразованы в формат целевой базы данных.
- Все необходимые функции преобразования выполнены.
- Во время процесса не было потеряно ни одной части данных, и данные точны.
Этапы процесса тестирования ETL
Процесс тестирования ETL во многом схож с другими традиционными процессами тестирования и состоит из нескольких этапов:
- Определение и понимание бизнес-требований. На этом этапе команда тестировщиков изучает требования к процессу ETL, обычно с помощью бизнес-аналитика. Тестировщики должны понять структуру исходной базы данных, правила преобразования и выявить возможные проблемы или пробелы в требованиях и источниках данных.
- Валидация источников данных. После понимания требований тестировщики проверяют их, чтобы убедиться, что их понимание соответствует заданным требованиям.
- Оценка тестирования. На этапе оценки определяется, сколько времени и усилий потребуется для проведения тестирования. Это зависит от сложности источников данных, правил преобразования и доступных ресурсов.
- Планирование тестирования. На этом этапе составляется детальный план тестирования. Документ тест-плана включает объём тестирования, подход, потенциальные риски и шаги по их минимизации.
- Разработка тестов. Здесь разрабатываются тестовые сценарии и тест-кейсы. Они должны охватывать все требования и правила преобразования.
- Предварительная проверка. Готовые тест-кейсы и сценарии согласовываются с бизнес-аналитиком, чтобы убедиться, что всё соответствует бизнес-требованиям.
- Создание тестовых данных. Тестировщики создают тестовые данные для всех применимых таблиц исходных данных.
- Выполнение тестов. После создания тестовых данных выполняются все тест-кейсы, включая этапы извлечения, преобразования и загрузки.
- Сообщение об ошибках и их исправление. Если на этапе выполнения выявлены дефекты, они отправляются на исправление. После исправления проводится повторное тестирование.
- Отчёт о тестировании. Составляется отчёт, включающий список тест-кейсов и их статусы (пройдено/не пройдено). Этот отчёт передаётся заинтересованным сторонам, и процесс завершается.
Примечание редакции: вас также может заинтересовать статья “Вопросы на собеседовании по тестированию ETL”.
Типы тестирования ETL
Существуют четыре основных типа тестирования ETL:
- Тестирование нового хранилища данных. При этом всё создаётся с нуля. Информация о входных данных собирается от заказчика. Исходные и целевые базы данных разрабатываются с нуля и проверяются с использованием ETL-инструментов.
- Тестирование миграции. Этот тип тестирования используется, если у заказчика уже есть рабочее хранилище данных и существующий ETL-инструмент. Тестирование миграции требуется, когда данные переносятся из старой базы в новую. Старая база называется исходной, а новая — целевой.
- Тестирование изменений. При этом типе тестирования данные извлекаются из разных источников и загружаются в существующее хранилище. Новая база данных не используется. Кроме загрузки новых данных, заказчику может понадобиться изменить или добавить бизнес-правила.
- Тестирование отчётов. После создания хранилища данных пользователи могут генерировать различные отчёты. Это тестирование проверяет их макет, точность данных и ограничения на доступ пользователей.
Заключение
В современном мире каждая компания работает с данными, и для их упорядочивания и точной обработки необходимы эффективные инструменты. Хранилища данных и процессы бизнес-аналитики играют ключевую роль в этой задаче, а ETL является важной частью таких проектов.
Тестирование ETL особенно важно при переносе данных из одной или нескольких баз в новую базу, особенно если речь идёт о больших объёмах. Оно помогает убедиться, что данные в целевой базе точные, корректные и соответствуют всем требованиям.
Перевод статьи «ETL Testing».
Пингбэк: Вопросы на собеседовании по тестированию ETL