Учебники

12) Тестирование больших данных

Что такое тестирование больших данных?

Тестирование BigData определяется как тестирование приложений Bigdata. Большие данные — это набор больших наборов данных, которые не могут быть обработаны с использованием традиционных вычислительных технологий. Тестирование этих наборов данных включает в себя различные инструменты, методы и структуры для обработки. Большие данные относятся к созданию, хранению, поиску и анализу данных, которые отличаются по объему, разнообразию и скорости. Вы можете узнать больше о Big Data, Hadoop и MapReduce здесь

В этом уроке вы узнаете

Стратегия тестирования больших данных

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

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

Тестирование больших данных: функционал и производительность

Наряду с этим качество данных также является важным фактором в тестировании Hadoop. Перед тестированием приложения необходимо проверить качество данных, и это следует рассматривать как часть тестирования базы данных. Он включает проверку различных характеристик, таких как соответствие, точность, дублирование, последовательность, достоверность, полнота данных и т. Д.

Как протестировать приложения Hadoop

На следующем рисунке представлен общий обзор этапов тестирования приложений с большими данными.

Тестирование больших данных: функционал и производительность

Тестирование больших данных можно разделить на три этапа.

Шаг 1. Проверка данных

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

  • Данные из различных источников, таких как RDBMS, веб-блоги, социальные сети и т. Д., Должны быть проверены, чтобы убедиться, что в систему введены правильные данные.
  • Сравнивая исходные данные с данными, вставленными в систему Hadoop, чтобы убедиться, что они совпадают
  • Убедитесь, что нужные данные извлечены и загружены в правильное расположение HDFS.

Такие инструменты, как Talend , Datameer , могут использоваться для проверки постановки данных

Шаг 2: Проверка MapReduce

Второй шаг — проверка «MapReduce». На этом этапе тестер проверяет проверку бизнес-логики на каждом узле, а затем проверяет их после запуска на нескольких узлах, гарантируя, что

  • Map Reduce процесс работает правильно
  • Правила агрегирования или разделения данных применяются к данным.
  • Пары ключ-значение генерируются
  • Проверка данных после процесса Map-Reduce

Шаг 3: Этап проверки выходных данных

Заключительным или третьим этапом тестирования больших данных является процесс проверки выходных данных. Файлы выходных данных созданы и готовы к перемещению в EDW (Enterprise Data Warehouse) или любую другую систему в соответствии с требованиями.

Мероприятия на третьем этапе включают

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

Тестирование архитектуры

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

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

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

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

  • Прием данных и их продолжение : На этом этапе тестер проверяет, как быстрая система может потреблять данные из различных источников данных. Тестирование включает в себя определение другого сообщения, которое очередь может обработать в заданный период времени. Также указывается, насколько быстро данные могут быть вставлены в базовое хранилище данных, например, скорость вставки в базу данных Mongo и Cassandra.
  • Обработка данных : включает в себя проверку скорости, с которой выполняются запросы или карта сокращают задания. Это также включает в себя тестирование обработки данных изолированно, когда основное хранилище данных заполняется в наборах данных. Например, запуск заданий Map Reduce на базовом HDFS
  • Производительность подкомпонентов. Эти системы состоят из нескольких компонентов, поэтому важно протестировать каждый из этих компонентов в отдельности. Например, как быстро сообщение индексируется и используется, задания MapReduce, производительность запросов, поиск и т. Д.

Подход к тестированию производительности

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

Тестирование больших данных: функционал и производительность

Тестирование производительности выполняется в следующем порядке

  1. Процесс начинается с настройки кластера больших данных, который должен быть протестирован на производительность.
  2. Определить и спроектировать соответствующие рабочие нагрузки
  3. Подготовка отдельных клиентов (создаются пользовательские сценарии)
  4. Выполните тест и проанализируйте результат (если цели не достигнуты, настройте компонент и повторите его)
  5. Оптимальная конфигурация

Параметры для тестирования производительности

Различные параметры для проверки производительности

  • Хранение данных: как данные хранятся в разных узлах
  • Журналы фиксации: насколько велик размер журнала фиксации
  • Параллельность: сколько потоков может выполнить операцию записи и чтения
  • Кэширование. Настройте параметры кэширования «кэш строк» ​​и «кэш ключей».
  • Тайм-ауты: значения времени ожидания соединения, времени ожидания запроса и т. Д.
  • Параметры JVM: размер кучи, алгоритмы сбора GC и т. Д.
  • Карта снижает производительность: сортирует, объединяет и т. Д.
  • Очередь сообщений: скорость, размер и т. Д.

Требования к среде тестирования

Среда тестирования должна зависеть от типа приложения, которое вы тестируете. Для тестирования больших данных тестовая среда должна включать

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

Тестирование больших данных Vs. Традиционное тестирование базы данных

свойства

Традиционное тестирование базы данных

Тестирование больших данных

Данные

  • Работа тестера со структурированными данными
  • Тестер работает как с структурированными, так и с неструктурированными данными
 
  • Подход к тестированию четко определен и проверен временем
  • Подход к тестированию требует целенаправленных исследований и разработок
 
  • В тестере есть возможность выбора стратегии «Выборка» вручную или стратегии «Исчерпывающая проверка» с помощью инструмента автоматизации.
  • Стратегия «выборки» в Big data — это сложная задача

инфраструктура

  • Не требует специальной тестовой среды, так как размер файла ограничен
  • Требуется специальная среда тестирования из-за большого размера данных и файлов (HDFS)

Инструменты проверки

Tester использует макросы на основе Excel или средства автоматизации на основе пользовательского интерфейса

Никаких определенных инструментов, диапазон от инструментов программирования, таких как MapReduce, до HIVEQL огромен.

 

Инструменты тестирования могут использоваться с базовыми эксплуатационными знаниями и меньшим количеством обучения.

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

Инструменты, используемые в сценариях больших данных

Большой кластер данных

Инструменты больших данных

NoSQL:

  • CouchDB, базы данных MongoDB, Кассандра, Redis, ZooKeeper, HBase

Уменьшение карты:

  • Hadoop, Улей, Свинья, Каскад, Узи, Кафка, S4, MapR, Flume

Место хранения:

  • S3, HDFS (распределенная файловая система Hadoop)

Серверы:

  • Elastic, Heroku, Elastic, Google App Engine, EC2

обработка

  • R, Yahoo! Трубы, Механический турок, BigSheets, Datameer

Проблемы в тестировании больших данных

  • автоматизация

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

  • Виртуализация

    Это один из неотъемлемых этапов тестирования. Задержка виртуальной машины создает проблемы синхронизации при тестировании больших данных в реальном времени. Также управление изображениями в Больших данных является проблемой.

  • Большой набор данных
    • Нужно проверить больше данных и нужно сделать это быстрее
    • Нужно автоматизировать тестирование
    • Необходимо уметь тестировать на разных платформах

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

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

Резюме

  • По мере того, как разработка данных и аналитика данных выходят на новый уровень, тестирование больших данных неизбежно.
  • Обработка больших данных может быть пакетной, в реальном времени или интерактивной
  • 3 этапа тестирования приложений Big Data:
    • Проверка постановки данных
    • Проверка MapReduce
    • Этап проверки выходных данных
  • Архитектурное тестирование является важной фазой тестирования больших данных, так как плохо спроектированная система может привести к беспрецедентным ошибкам и снижению производительности.
  • Тестирование производительности для больших данных включает проверку
    • Пропускная способность
    • Обработка данных
    • Подкомпонент производительности
  • Тестирование больших данных сильно отличается от традиционного тестирования данных с точки зрения данных, инфраструктуры и средств проверки
  • Задачи тестирования больших данных включают виртуализацию, автоматизацию тестирования и работу с большим набором данных. Тестирование производительности приложений Big Data также является проблемой.