Лучшие практики автоматизации тестирования конвейера данных

Лучшие практики автоматизации тестирования конвейера данных

Исходный узел: 2035833

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

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

Автоматизированное тестирование необходимо для интеграционного тестирования конвейеров данных. Ручное тестирование нецелесообразно в высоко итеративных и адаптивных средах разработки.

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

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

Во-вторых, ручное тестирование конвейера данных недостаточно воспроизводимо для регрессионного тестирования. 

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

Варианты конвейеров данных

  • Извлечение, преобразование и загрузка (ETL)
  • Извлечение, загрузка и преобразование (ELT)
  • Озеро данных, конвейеры хранилища данных
  • Конвейеры в реальном времени
  • Конвейеры машинного обучения

Компоненты конвейера данных для автоматизации тестирования

Конвейеры данных состоят из нескольких компонентов, каждый из которых отвечает за определенную задачу. Элементы конвейера данных включают в себя:

  • Источники данных: Происхождение данных
  • Прием данных: Процесс сбора данных из источника данных
  • Преобразование данных: Процесс преобразования собранных данных в формат, который можно использовать для дальнейшего анализа.
  • Проверка/подтверждение данных: Процесс обеспечения точности и согласованности данных
  • Хранилище данных: Процесс хранения преобразованных и проверенных данных в хранилище данных или озере данных.
  • Анализ данных: Процесс анализа сохраненных данных для выявления закономерностей, тенденций и идей.

Передовой опыт автоматизации тестирования конвейера данных

Что и когда автоматизировать (или даже если вам нужна автоматизация) являются важными решениями для команды тестирования (или разработки). Выбор подходящих характеристик продукта для автоматизации во многом определяет успех автоматизации. 

Передовые методы автоматизации тестов для конвейера данных включают:

  • Определите четкие и конкретные цели тестирования: Прежде чем приступить к тестированию, важно определить, чего вы хотите достичь с помощью тестирования. Это поможет вам создавать эффективные и действенные тесты, дающие ценную информацию..
  • Протестируйте все рабочие процессы конвейера данных: Конвейер данных обычно состоит из нескольких компонентов: прием данных, обработка, преобразование и хранение. Важно протестировать каждый компонент, чтобы обеспечить правильный и плавный поток данных по конвейеру.
  • Используйте достоверные данные испытаний: При тестировании конвейера данных важно использовать реалистичные данные, имитирующие реальные сценарии. Это поможет определить любые проблемы, которые могут возникнуть при обработке различных типов данных.
  • Автоматизируйте с помощью эффективных инструментов: Этого можно достичь с помощью фреймворков и инструментов тестирования.
  • Регулярно контролируйте конвейер: Даже после завершения тестирования важно регулярно контролировать конвейер, чтобы убедиться, что он работает должным образом. Это поможет выявить проблемы до того, как они станут критическими проблемами.
  • Привлекайте заинтересованные стороны: Привлекайте к процессу тестирования заинтересованные стороны, такие как аналитики данных, инженеры данных и бизнес-пользователи. Это поможет обеспечить актуальность и ценность тестов для всех заинтересованных сторон.
  • Вести документацию: Очень важно поддерживать документы, описывающие тесты, тестовые наборы и результаты тестов. Это поможет гарантировать, что тесты можно воспроизвести и поддерживать с течением времени.

Будь осторожен; следует избегать автоматизации изменения нестабильных функций. Сегодня ни один известный бизнес-инструмент или набор методов/процессов нельзя считать полным сквозным тестом конвейера данных. 

Подумайте о своих целях автоматизации тестирования

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

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

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

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

Интеграция автоматизированного тестирования в разработку конвейера данных представляет собой уникальный набор проблем. Существующие инструменты автоматизированного тестирования разработки программного обеспечения не всегда легко адаптируются к проектам баз данных и конвейеров данных. 

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

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

Частые кандидаты на автоматизацию тестирования   

  • Тестирование BI-отчета 
  • Бизнес, соответствие правительству
  • Обработка агрегации данных
  • Очистка и архивирование данных
  • Тесты качества данных
  • Согласование данных (например, источник-цель)
  • Преобразования данных
  • Загрузка данных таблицы измерений
  • Сквозное тестирование
  • ЭТЛ, ЭЛТ валидационное и проверочное тестирование
  • Загрузка данных таблицы фактов 
  • Проверка загрузки файла/данных
  • Инкрементное нагрузочное тестирование
  • Тестирование нагрузки и масштабируемости
  • Отсутствуют файлы, записи, поля
  • Тестирование производительности 
  • Ссылочная целостность
  • Регрессионное тестирование
  • Тестирование безопасности
  • Тестирование и профилирование исходных данных
  • Постановка, проверка данных ODS 
  • Модульное, интеграционное и регрессионное тестирование

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

Для большинства проектов процессы тестирования конвейера данных предназначены для проверки и реализации качества данных.

Разнообразие типов данных, доступных сегодня, создает проблемы при тестировании

Сегодня доступно большое разнообразие типов данных, начиная от традиционных структурированных типов данных, таких как текст, числа и даты, и заканчивая неструктурированными типами данных, такими как аудио, изображения и видео. Кроме того, различные типы полуструктурированных данных, такие как XML и JSON, широко используются в веб-разработке и обмене данными.

С появлением Интернета вещей (IoT) произошел взрыв различных типов данных, включая данные датчиков, данные о местоположении и данные о межмашинном взаимодействии. По мере извлечения и преобразования этих типов данных тестирование может усложниться без соответствующих инструментов. Это привело к появлению новых технологий управления данными и аналитических методов, таких как потоковая обработка, граничные вычисления и аналитика в реальном времени.

На рис. 1 показаны примеры широко используемых сегодня типов данных. Огромное количество представляет собой проблемы при проверке правильности выполнения требуемых преобразований. В результате специалисты по данным должны хорошо разбираться в широком спектре типов данных и уметь адаптироваться для тестирования новых тенденций и технологий.

Рисунок 1: Примеры различных источников данных и целей данных

Оценка компонентов конвейера для возможного автоматизированного тестирования

Ключевым элементом agile и других современных разработок является автоматизированное тестирование. Мы можем применить эту осведомленность к конвейеру данных.

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

Рисунок 2: Тестирование «горячих точек» от начала до конца конвейера данных

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

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

Определите категории тестов для автоматизации

Хитрость заключается в том, чтобы определить, что следует автоматизировать и как справиться с каждой задачей. При автоматизации тестов следует учитывать ряд вопросов, таких как:

  • Какова стоимость автоматизации тестов?
  • Кто отвечает за автоматизацию тестирования (например, Dev., QA, инженеры данных)?
  • Какие инструменты тестирования следует использовать (например, с открытым исходным кодом, поставщиком)?
  • Оправдают ли выбранные инструменты все ожидания?
  • Как будут сообщаться результаты испытаний?
  • Кто интерпретирует результаты теста?
  • Как будут поддерживаться тестовые сценарии?
  • Как мы организуем сценарии для легкого и точного доступа? 

На рис. 3 показаны примеры длительности времени (для выполнения теста, выявления дефектов и составления отчетов) для ручных и автоматических тестовых случаев из реального опыта проекта.

Рисунок 3: Сравнение длительности ручного и автоматизированного выполнения тестов.

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

Преимущества и ограничения автоматизированного тестирования

 Проблемы автоматизации тестирования

  • Отчет о тестировании: Тестирование бизнес-аналитики или аналитических отчетов с помощью автоматизации
  • Сложность данных: Тестирование конвейера данных часто связано со сложными структурами данных и преобразованиями, которые сложно автоматизировать и которые требуют специальных знаний.
  • Сложность конвейера: Конвейеры данных могут быть сложными и включать несколько этапов обработки, которые могут быть сложными для тестирования и отладки. Кроме того, изменения в одной части пайплайна могут иметь непредвиденные последствия ниже по течению.

Преимущества автоматизации тестирования

  • Выполняет тестовые случаи быстрее: Автоматизация может ускорить реализацию тестовых сценариев.
  • Создает повторно используемый набор тестов: После запуска тестовых сценариев с помощью инструментов автоматизации их можно создать резервную копию для быстрого вызова и повторного использования.
  • Упрощает отчетность о тестировании: Интересной особенностью многих автоматизированных инструментов является их способность создавать отчеты и тестовые файлы. Эти возможности точно отображают состояние данных, четко определяют недостатки и используются при проверках соответствия. 
  • Сокращает расходы на персонал и доработку: Время, потраченное на ручное тестирование или повторное тестирование после исправления дефектов, можно потратить на другие инициативы в рамках ИТ-отдела.

Возможные ограничения

  • Не может полностью заменить ручное тестирование: Хотя автоматизацию можно использовать для различных приложений и тестовых случаев, он не может полностью заменить ручное тестирование. По-прежнему будут существовать сложные тестовые случаи, когда автоматизация не сможет зафиксировать все, а для пользовательского приемочного тестирования конечным пользователям часто приходится выполнять тесты вручную. Поэтому крайне важно иметь правильное сочетание автоматизированного и ручного тестирования в процессе. 
  • Стоимость инструментов: Коммерческие инструменты тестирования могут быть дорогими в зависимости от их размера и функциональности. На первый взгляд, бизнес может рассматривать это как ненужные затраты. Однако само по себе повторное использование может быстро превратить его в актив. 
  • Стоимость обучения: Тестировщики должны быть обучены не только программированию, но и планированию автоматизированных тестов. Автоматизированные инструменты могут быть сложными в использовании и могут потребовать обучения пользователей.
  • Автоматизация требует планирования, подготовки и выделенных ресурсов: Успех автоматизированного тестирования в основном зависит от четких требований к тестированию и тщательной разработки тестовых случаев до начала тестирования. К сожалению, разработка тест-кейсов по-прежнему в основном выполняется вручную. Поскольку каждая организация и приложение конвейера данных могут быть уникальными, многие автоматизированные инструменты тестирования не будут создавать тестовые наборы.

Начало работы с автоматизацией тестирования конвейера данных

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

Разработайте бизнес-кейс для автоматизированного тестирования. ИТ-отдел должен сначала сделать так, чтобы донести ценность до бизнеса. 

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

Выводы

Поскольку автоматизация тестирования быстро стала важной альтернативой ручному тестированию, все больше и больше компаний ищут инструменты и стратегии для успешного внедрения автоматизации. Это привело к значительному росту числа инструментов автоматизации тестирования на базе Appium, Selenium, Katalon Studio и многих других. Тем не менее, конвейер данных и инженеры данных, BI и команды обеспечения качества должны обладать необходимыми навыками программирования, чтобы в полной мере использовать эти инструменты автоматизации. 

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

Поскольку возможности разработки конвейеров данных продолжают расти, потребность в более комплексном и современном автоматизированном тестировании данных также возрастает.

Отметка времени:

Больше от ДАТАВЕРСИЯ