Нагрузочное тестирование с извлечением и преобразованием данных — чаще всего называемое ETL-тестированием — является важнейшим инструментом в мире современной бизнес-аналитики и анализа данных.
Команды должны собирать данные из разных источников, чтобы хранить их в хранилищах данных или подготавливать для инструментов бизнес-аналитики, помогающих принимать качественные решения и делать выводы. Тестирование ETL помогает убедиться в том, что процессы, данные и понимание находятся на должном уровне и готовы поддерживать бизнес.
Давайте разберемся, что такое нагрузочное тестирование с преобразованием экстракта и как оно работает, а затем расскажем о некоторых различных подходах и инструментах, которые можно использовать для ETL-тестирования.
Что такое экстракт-трансформация-нагрузка,
и как это работает?
Извлечение-трансформация-загрузка (ETL) — важнейшая концепция в области хранения и анализа данных. По сути, ETL описывает процесс сбора данных из нескольких источников и их централизации в хранилище данных или озере данных.
Давайте разделим процесс ETL на составные части, чтобы вы могли лучше его понять.
1. Экстракт:
Данные извлекаются из различных источников. Этими источниками могут быть существующая база данных, ERP- или CRM-приложение, электронные таблицы, веб-сервисы или различные файлы.
2. Трансформировать:
После того как данные извлечены, их необходимо преобразовать, чтобы они стали пригодны для хранения или анализа. Этот процесс может включать очистку и нормализацию данных, а также их преобразование в соответствующий формат.
3. Нагрузка:
Последняя часть процесса заключается в загрузке данных в целевую систему. Такой целевой системой может быть хранилище данных, озеро данных или другое хранилище.
Хотя технология ETL существует с 1970-х годов, в последнее время она приобретает все большее значение в связи с тем, что бизнес-сообщество все больше полагается на облачные системы, данные в реальном времени, аналитику и инструменты ML/AI.
Что такое ETL-тестирование?
ETL-тестирование — это тип тестирования обработки данных, который проверяет, что данные, полученные из одного источника, были точно переданы в место назначения. Как вы уже читали выше, после извлечения данных их необходимо преобразовать в соответствии с требованиями бизнеса. Такое преобразование может иногда приводить к проблемам с данными. Тестирование ETL помогает обеспечить надежность и точность данных.
Тестирование ETL — это разновидность тестирования «черного ящика», поскольку оно проверяет процесс обмена, преобразования и загрузки данных, сравнивая входные и выходные данные. По сути, он фокусируется на том, что делает система в ответ на различные входные данные, а не на том, как она достигает этих результатов. Однако в некоторых ситуациях тестировщики будут смотреть на то, что происходит внутри коробки, особенно когда возникают неожиданные сценарии.
Как экстракт преобразуется
Нагрузочное тестирование работает?
Самый простой способ объяснить, как работает ETL-тестирование, — это разделить его на составные части: извлечение, преобразование и загрузку. Отсюда вы сможете понять различные элементы проверки ETL, а затем мы разделим этапы на более подробные.
1. Извлеките
Тестирование ETL позволяет убедиться в том, что данные, полученные из источника, точны и не содержат ошибок. Этот процесс включает в себя проверку точности базовых значений и обеспечение полноты данных.
Другая часть процесса включает в себя профилирование данных. Этот процесс включает в себя понимание структуры, содержания и качества исходных данных. Идея заключается в том, чтобы обнаружить любые аномалии, несоответствия или потенциальные проблемы с картографией.
2. Преобразование
Следующая часть процесса предполагает строгое соблюдение правил преобразования данных. Один из основных подходов здесь заключается в проверке логики преобразования на соответствие нормативным актам, законам и другим правилам ведения бизнеса.
Некоторые из типичных тестов включают в себя проверку преобразования данных в ожидаемые форматы, точность вычислений и проверку того, как поиск связывает элементы между наборами данных.
Качество данных также не остается без внимания. Тестировщики должны находить и устранять несоответствия форматирования и дубликаты, а также разрешать любые конфликтующие данные, применяя процессы очистки данных.
Наконец, проверяется общая производительность, чтобы выяснить, как на процесс ETL влияют большие объемы данных.
3. Нагрузка
Наконец, когда данные загружаются в хранилище данных, озеро данных или другой конечный объект, тестировщики должны проверить, насколько они полны, точны и представлены в правильном формате.
Сравнение выполняется для проверки того, что данные не были потеряны или повреждены на пути между источником, областью хранения и целями.
Наконец, проверяются журналы аудита, чтобы убедиться, что процесс отслеживает все изменения, происходящие в процессе ETL, и проверить наличие истории и метаданных.
Этот раздел должен дать вам базовое представление о том, как выполняются проверки качества данных ETL. Вы заметите, что тесты проводятся на каждом этапе передачи данных, поскольку это лучший способ выявить и устранить конкретные проблемы.
Однако для более глубокого понимания концепций ETL-тестирования необходимо изучить различные типы ETL-тестирования и этапы, на которых они применяются. В следующих двух разделах вы найдете эту информацию и получите полную картину, которая вам необходима.
Различные типы ETL-тестирования
В ETL-тестировании существует множество различных типов валидации. Они используются в различных сценариях и для самых разных целей. Давайте рассмотрим типы ETL-тестирования и то, где и когда их следует использовать.
1. Тестирование валидации исходных данных
Важность:
Проверка исходных данных на достоверность гарантирует, что исходные данные являются качественными и непротиворечивыми до того, как они будут извлечены для преобразования.
Что проверяет:
- Соответствуют ли данные бизнес-правилам?
- Соответствуют ли типы и форматы данных ожиданиям?
- Попадают ли данные в допустимые диапазоны?
- Есть ли нулевые или отсутствующие значения в неожиданных местах?
2. Тестирование согласования исходных и целевых данных
Важность:
Этот тип тестирования проверяет, все ли данные из определенного источника извлечены, преобразованы и загружены в целевую систему.
Что проверяет:
- Были ли потеряны данные в процессе ETL?
- Дублировались ли данные в процессе ETL?
3. Тестирование преобразования данных
Важность:
Преобразования данных могут включать в себя множество различных вещей, таких как изменение формата, вычисления, агрегации и так далее. Тестирование преобразования данных проверяет, насколько правильно были выполнены преобразования.
Что проверяет:
- Соответствуют ли данные ожиданиям после преобразований?
- Правильно ли реализована бизнес-логика при преобразованиях?
- Вычисления, выполненные во время преобразования, дали правильный результат?
4. Тестирование валидации данных
Важность:
Проверяет, соответствуют ли конечные данные бизнес-требованиям после преобразования.
Что проверяет:
- Соблюдаются ли стандарты качества данных (т.е. точность, полнота)?
- Соблюдаются ли бизнес-правила?
5. Тестирование ссылочной целостности ETL
Важность:
Проверяет, что связи между таблицами в исходных данных были точно воспроизведены в целевых данных.
Что проверяет:
- Совпадают ли внешние ключи в данных с соответствующими первичными ключами?
- Сохраняются ли отношения дочерних и родительских таблиц после ETL?
6. Интеграционное тестирование
Важность:
Интеграционные тесты проверяют, насколько процесс ETL интегрируется и функционирует в рамках общей экосистемы данных.
Что проверяет:
- Работают ли сквозные потоки данных без сбоев?
- Насколько хорошо процесс ETL взаимодействует с другими системами, такими как источник, целевая система или другие приложения, работающие с данными?
7. Тестирование производительности
Важность:
Тестирование производительности ETL оценивает, насколько эффективно работает процесс ETL в условиях жесткой нагрузки, например, большой нагрузки.
Что проверяет:
- Соответствует ли время обработки ETL бизнес-требованиям или контрольным показателям?
- Может ли процесс ETL масштабироваться в ответ на растущие объемы данных?
- Есть ли у процесса ETL ограничения по ресурсам или узкие места, которые необходимо устранить?
8. Функциональное тестирование
Важность:
Функциональное тестирование проверяет, соответствует ли процесс ETL требованиям проекта с точки зрения пользователя.
Что проверяет:
- Соответствуют ли результаты заявленным бизнес-требованиям?
- Генерируют ли отчеты точные результаты?
- Отображают ли приборные панели ожидаемые данные?
9. Регрессионное тестирование
Важность:
Процессы ETL отличаются высокой сложностью и большим количеством взаимосвязанных данных. Даже небольшие изменения в технологическом процессе могут повлиять на результат в исходном состоянии. Регрессионное тестирование крайне важно для выявления таких неожиданных результатов.
Что проверяет:
- Изменения в коде или базовых данных внезапно вызывают негативные последствия?
- Оказали ли изменения желаемый эффект на улучшение процесса ETL?
Стоит отметить, что в этот список можно включить и модульное тестирование. Однако вместо этого мы включили составные части, которые должны охватывать модульное тестирование, такие как тестирование валидации исходных данных, тестирование согласования исходных и целевых данных и так далее.
8 этапов тестирования ETL с
8 советов экспертов для достижения успеха
Итак, теперь, когда вы понимаете различные типы валидации в ETL-тестировании, пришло время собрать все воедино. Тестирование ETL обычно проводится с помощью многоступенчатого подхода, который мы представим ниже.
#1. Сбор бизнес-требований
Первый этап любого процесса тестирования включает в себя сбор требований. Тестировщики должны прийти к единому мнению о том, что должен дать процесс ETL. На этом раннем этапе необходимо ответить на такие вопросы, как:
- Как будут использоваться данные?
- Какие форматы вывода требуются?
- Каковы ожидания от работы?
- Какие нормативные акты, законы или политика компании регулируют использование данных?
Совет эксперта:
Хотя соблюдение требований является обязательным, тестировщики ETL должны использовать свои знания и опыт для проактивного поиска потенциальных проблем, несоответствий или ошибок на ранних этапах процесса. Выявить и устранить проблемы на ранней стадии гораздо проще и занимает гораздо меньше времени.
#2. Определение и проверка источников данных
ETL — это извлечение данных из разрозненных источников данных, таких как ERP- или CRM-инструменты, приложения, другие базы данных, электронные таблицы и так далее. Тестировщики должны подтвердить, что требуемые данные доступны, правильно структурированы и имеют достаточное качество для использования по назначению.
Совет эксперта:
Исходные данные в реальных системах, как правило, беспорядочны. Подготовка тщательных отчетов о профилировании данных является ключевым моментом на этом этапе для выявления недостающих значений, проблем с форматом, аномалий и других несоответствий, которые вы хотите исключить из логики преобразования в дальнейшем.
#3. Написание тестовых примеров
Имея на руках бизнес-требования и отчеты о профилировании данных, самое время создать тестовые примеры, необходимые для проверки процесса ETL. Тестовые примеры должны включать в себя функциональные тесты, а также пограничные тесты и любые области, которые вы определили как имеющие высокий риск неудачи.
Совет эксперта:
Тестирование отдельных преобразований — это хорошо, но создание тестовых примеров, позволяющих понять, как влияют на данные при их передаче по всему ETL-конвейеру, — еще лучше.
#4. Выполнение тестовых примеров
Теперь пришло время применить ваши тестовые примеры. Тестировщики должны сделать все возможное, чтобы смоделировать реальные условия или, если возможно, использовать реальные условия.
Совет эксперта:
Здесь не обойтись без средств автоматизации тестирования ETL. Возможность создавать последовательные и воспроизводимые тесты экономит огромное количество времени и усилий. Более того, тестирование ETL требуется постоянно, по мере обновления источников данных или внесения изменений в сам процесс ETL.
#5. Создавайте отчеты
После проведения тестов необходимо тщательно задокументировать полученные результаты. Запишите свои результаты и укажите их:
- Успехи
- Неудачи
- Отклонения от ожиданий
- Какие исправления или изменения необходимо внести
Эти отчеты не просто подтверждают работоспособность вашей системы. Они также предоставят расписание всех необходимых исправлений и важную информацию, необходимую для оптимизации процесса ETL.
Совет эксперта:
Отчеты предназначены для всех, включая нетехнические заинтересованные стороны. Стремитесь сократить количество жаргонных и слишком технических понятий и используйте визуальные обобщения, такие как графики, диаграммы и т. д., чтобы объяснить процесс.
#6. Повторное тестирование на наличие ошибок и дефектов
Далее необходимо убедиться, что ошибки и дефекты, обнаруженные в ходе тестирования, устранены. Кроме того, вы должны убедиться, что все изменения, внесенные в ходе этого процесса, не привели к появлению новых проблем.
Совет эксперта:
Регрессионное тестирование имеет решающее значение на этом этапе, поскольку процесс ETL является сложным и взаимосвязанным. Одно исправление может привести к непредвиденным и совершенно неожиданным последствиям в процессе ETL.
#7. Заключительные отчеты
Итоговые отчеты содержат подробное описание процесса тестирования ETL. Выделите успешные области и те, которые требуют дальнейшей работы. Наконец, вынесите общий вердикт о качестве и надежности данных ETL.
Совет эксперта:
Ваш итоговый отчет — это не просто ведение записей. Хорошо написанные и структурированные отчеты о тестировании станут частью производственной документации и помогут обеспечить постоянное совершенствование и оптимизацию процесса ETL.
#8. Закрытие отчетов
Наконец, после того как отчеты будут доставлены и поняты различными заинтересованными сторонами, они должны быть официально приняты. Отчеты должны содержать четкий план действий, которые необходимо решить или предпринять.
Совет эксперта:
Хотя закрытие отчетов — это верный признак того, что процесс ETL достиг приемлемого уровня, вы должны помнить, что эта работа никогда не бывает закончена. Постоянное совершенствование и реагирование на изменения исходных данных, оборудования и даже меняющиеся бизнес-правила означают, что любая приемка — это лишь веха в непрерывном процессе.
Преимущества нагрузочного тестирования
Комплексный процесс тестирования ETL необходим для команд и продуктов, которые полагаются на аналитику данных. Давайте рассмотрим преимущества, которые вы можете получить, если будете придерживаться подхода, основанного на тестировании ETL.
1. Точность и целостность данных
Основная концепция проверки ETL заключается в обеспечении чистоты и надежности данных в хранилище данных. Правильный подход к тестированию ETL означает:
- Вы не потеряете данные во время извлечения
- Ваши преобразования не содержат ошибок
- Данные попадают в целевую систему так, как вы задумали.
2. Экономия времени и денег
Тестирование ETL хранилища данных важно, поскольку позволяет выявить ошибки на ранней стадии. Гораздо желательнее выявить и устранить проблемы с данными на ранней стадии, чем исправлять их, когда лошадь уже выбежала из конюшни. По данным Gartner, некачественные данные обходятся командам в среднем в 13 миллионов долларов в год. Начните ETL-тестирование заранее, и вы сэкономите время и деньги.
3. Производительность
Плохие процессы ETL могут помешать работе ваших систем данных и снизить качество аналитики, отчетности и принятия решений. Хороший процесс тестирования ETL поможет вам не сбиться с пути, выявляя узкие места в работе с данными и другие области, требующие улучшения.
4. Соответствие
Для финансовых учреждений и медицинских организаций существуют строгие правила управления данными. Неправильная обработка и управление данными могут привести к отзыву лицензии или крупным штрафам. Тестирование ETL поможет вам не нарушать нормативные требования и защитить конфиденциальную информацию.
5. Более эффективное принятие решений
Чем точнее и надежнее ваши данные, тем увереннее вы можете принимать решения, основанные на данных. Тестирование ETL позволяет рассчитывать на то, что содержимое вашего хранилища данных даст вам необходимые сведения для принятия правильных решений.
Проблемы, связанные с тестированием ETL
Обеспечение работоспособности конвейера данных очень важно, но связано с некоторыми сложностями. Давайте рассмотрим проблемы, связанные с тщательной проверкой качества данных ETL.
1. Объем и сложность данных
Хороший процесс тестирования ETL подразумевает работу с большими объемами различных типов данных, от структурированных до неструктурированных. Такая вариативность данных может быстро стать сложной и трудноуправляемой.
2. Зависимость от исходной системы
Как мы уже говорили выше, ETL-тестирование — это обеспечение бесперебойной работы конвейера от источника к цели. Однако качество продукции в значительной степени зависит от качества исходных данных. Изменения в схеме, формате или качестве исходного вывода могут привести к сбоям ETL-тестирования, которые не всегда легко диагностировать.
3. Трансформационные сложности
Создание логики для преобразования данных — дело рук специалистов. Применение бизнес-правил, очистка или переформатирование данных — сложная задача, и проверить качество этих преобразований не всегда просто.
4. Сменные требования
Всем тестировщикам знакома боль от быстро меняющихся бизнес-требований. Процесс ETL — это динамичное пространство, как и ETL-тестирование. По мере обновления и изменения бизнес-ролей тестировщики должны адаптировать тестовые примеры и обеспечивать оптимизацию производительности базы данных.
5. Ограничения тестовой среды
Запуск полномасштабной производственной среды для тестирования ETL сложен и дорог. Однако тестовые среды меньшего масштаба не всегда обеспечивают истинную проверку, поскольку не позволяют воспроизвести то, как работа с огромными объемами данных может привести к узким местам в производительности.
Советы и лучшие практики ETL
Для освоения ETL-тестирования требуется время. Вот несколько советов, которые помогут вам на этом пути.
#1. Непрерывное тестирование
Тестирование ETL — это не одноразовая задача. Это перспектива обеспечения высокого качества данных, которую вы должны выполнять и постоянно контролировать. Тестировщик ETL QA — это постоянная работа в компаниях, которые не зря полагаются на инструменты бизнес-аналитики.
#2. Ни один ETL-тестировщик не является островом
В то время как тестирование ETL использует подход «черного ящика», инженеры ETL QA должны работать с заинтересованными сторонами, администраторами баз данных и разработчиками, создающими логику ETL, если они хотят разработать содержательные тесты, которые действительно подтвердят правильность процесса ETL.
#3. Надежная документация имеет решающее значение.
Продуманная и подробная документация, включая сопоставление источника и цели и запись истории данных, крайне важна для выявления ошибок в конвейере данных.
#4. Автоматизируйте как можно больше
Это, пожалуй, самый важный момент. Комплексное тестирование ETL требует значительных ресурсов. Кроме того, это постоянный процесс, а значит, он требует больших ручных усилий через регулярные промежутки времени. Таким образом, ETL-тестирование — идеальная работа для программ автоматизации тестирования и инструментов RPA.
Лучшие инструменты для автоматизации тестирования ETL
Уже сейчас должно быть понятно, что автоматизация ETL-тестирования дает командам тестировщиков значительные преимущества с точки зрения получения максимальной отдачи от ресурсов.
К счастью, на рынке существует несколько качественных инструментов для тестирования ETL. У каждого инструмента есть свои плюсы и минусы, а также возможности и функциональность, отвечающие самым разным требованиям.
Выбор подходящего инструмента зависит от нескольких факторов, в том числе:
- Сложность процесса ETL и бизнес-логики
- Объем передаваемых вами данных
- Наличие или концентрация неструктурированных данных в процессе ETL
- Техническая компетентность и набор навыков ваших тестировщиков
- Ваш бюджет.
Давайте рассмотрим 5 лучших инструментов для тестирования ETL.
#5. QuerySurge
QuerySurge — это инструмент ETL-тестирования по подписке с акцентом на непрерывное тестирование. Он поддерживает комбинации исходных и целевых баз данных, предлагает широкие возможности автоматизации и создан для крупных и сложных хранилищ данных.
Пользовательский интерфейс доставляет удовольствие, а возможности создания отчетов превосходны. Однако некоторые пользователи сетуют на дороговизну и непрозрачность цен на QuerySurge, а другие критикуют его недостаточное удобство в использовании и крутую кривую обучения для неопытных пользователей.
#4. iCEDQ
iCEDQ — это инструмент для тестирования и мониторинга качества данных. Он предлагает тестирование на основе правил и интересное обнаружение ошибок с помощью ML. Отслеживание, отчетность и визуализация являются особенно сильными сторонами iCEDQ, что делает его хорошим инструментом для компаний с критическими требованиями к соответствию данных и нормативным требованиям.
При этом внедрение инструмента в сложные ETL-ландшафты является одним из наиболее заметных недостатков iCEDQ. Кроме того, пользовательский интерфейс довольно сложен и не подойдет для менее технически подкованных команд.
#3. RightData
RightData — это удобный инструмент, который может похвастаться широкими возможностями без кода как для ETL-тестирования, так и для проверки данных. Инструмент очень гибкий и работает с различными базами данных и облачными хранилищами данных. Благодаря ряду готовых шаблонов тестов, превосходным возможностям визуализации и беспрепятственной интеграции с инструментами рабочего процесса становится понятно, почему RightData завоевала популярность в последние годы.
Однако, несмотря на то, что RightData обладает многими необходимыми характеристиками, она может быть дорогостоящей, если вам нужно протестировать большое количество ETL-процессов. Несмотря на то, что он работает по подписке, цены могут быстро расти при большом объеме использования данных и дополнительных функций. По сравнению с предсказуемой плоской ценовой моделью ZAPTEST и неограниченными лицензиями, подход RightData, похоже, наказывает растущие или масштабируемые компании.
#2. BiG EVAL
BiG EVAL — отличный выбор для сложных систем ETL и унаследованных хранилищ. Он использует проверку данных на основе правил и обладает мощными возможностями профилирования данных, что делает его хорошим выбором для ETL-тестирования. BiG EVAL также предоставляет пользователям широкие возможности для автоматизации проектирования и планирования тестов, а в сочетании с отличными возможностями для создания отчетов и визуализации он входит в число наиболее полных инструментов для ETL-тестирования.
Однако внедрение BiG EVAL — это еще более сложная задача. По сравнению с такими инструментами без кода, как ZAPTEST, интерфейс может показаться немного устаревшим. Важно отметить, что ETL-тестирование — это лишь один из вариантов использования BiG EVAL, поэтому цена на основе лицензии может оказаться непомерно высокой для некоторых команд, если вы платите за возможности и функции, которые вам не нужны.
#1. ZAPTEST: выбор №1 для ETL-тестирования
Хотя ZAPTEST не является специализированным инструментом ETL-тестирования, он обладает гибкостью и масштабируемостью, чтобы помочь в решении нескольких задач, составляющих тщательный подход к ETL-тестированию.
Как видно из раздела «Различные типы ETL-тестирования», тестирование ETL-процесса требует проверки достоверности данных, интеграции, производительности, функциональности и регрессионного тестирования. ZAPTEST может сделать все это и даже больше. Наши инструменты End-to-End Testing и возможности тестирования метаданных являются ключевыми функциями, гарантирующими, что ваша аналитика и бизнес-аналитика соответствуют требованиям и готовы приносить результаты и ценность.
ZAPTEST также поставляется с одним из лучших инструментов RPA на рынке. В контексте ETL-тестирования RPA может принести серьезную пользу, генерируя реалистичные тестовые данные, автоматизируя повторяющиеся ручные задачи и помогая вам внедрить непрерывное тестирование, необходимое для надежного ETL-процесса.
Благодаря отсутствию кода, молниеносному созданию тестов и бесшовной интеграции с другими корпоративными инструментами ZAPTET — это универсальное решение для автоматизированного ETL-тестирования и многого другого.
Заключительные мысли
Нагрузочное тестирование преобразования экстракта — это как создание отдела контроля качества для вашего хранилища данных. Речь идет не только о том, были ли данные переданы из источника в цель, но и о том, чтобы они дошли в целости и сохранности и соответствовали ожиданиям.
Когда дело доходит до критической точки, если у вас плохие данные, вы в конечном итоге принимаете неверные решения. Правильное тестирование ETL — это инвестиции в целостность всей вашей экосистемы данных. Однако для многих компаний время и расходы, связанные с тестированием ETL, — это то, что они не могут себе позволить.
Автоматизация ETL-тестирования помогает быстрее и эффективнее проводить тестирование и экономить деньги в долгосрочной перспективе. Увеличение тестового покрытия и возможностей регрессионного тестирования поможет повысить целостность данных, поскольку вы сможете проводить тестирование с гораздо большей частотой, чем если бы вы ограничились ручным тестированием .
Более того, использование средств автоматизации ETL-тестирования снижает количество человеческих ошибок, освобождая тестировщиков для решения более творческих и важных задач. Использование средств автоматизации тестирования и RPA, таких как ZAPTEST, — это одно из решений, которое вам не придется прогонять через инструменты бизнес-аналитики.