Тестирование больших данных
Тестирование больших данных - это процесс тестирования приложения для работы с большими данными, чтобы убедиться, что все функции приложения для работы с большими данными работают должным образом. Цель тестирования больших данных - убедиться, что система больших данных работает бесперебойно и без ошибок, сохраняя при этом производительность и безопасность.
Большие данные - это набор больших наборов данных, которые невозможно обработать с помощью традиционных вычислительных технологий. Тестирование этих наборов данных включает в себя различные инструменты, методы и платформы для обработки. Большие данные относятся к созданию, хранению, извлечению и анализу данных, которые отличаются большим объемом, разнообразием и скоростью. Вы можете узнать больше о больших данных, Hadoop и MapReduce здесь.
В этом руководстве по тестированию больших данных вы узнаете:
- Что такое стратегия тестирования больших данных?
- Как тестировать приложения Hadoop
- Тестирование архитектуры
- Тестирование производительности
- Подход к тестированию производительности
- Параметры для тестирования производительности
- Требования к тестовой среде
- Тестирование больших данных Vs. Традиционное тестирование базы данных
- Инструменты, используемые в сценариях больших данных
- Проблемы тестирования больших данных
Что такое стратегия тестирования больших данных?
Тестирование приложения для больших данных - это скорее проверка обработки его данных, чем тестирование отдельных функций программного продукта. Когда дело доходит до тестирования больших данных, ключевыми факторами являются тестирование производительности и функциональное тестирование .
В стратегии тестирования больших данных QA-инженеры проверяют успешную обработку терабайт данных с использованием товарного кластера и других вспомогательных компонентов. Это требует высокого уровня навыков тестирования, так как обработка выполняется очень быстро. Обработка может быть трех видов
Наряду с этим, качество данных также является важным фактором при тестировании Hadoop. Перед тестированием приложения необходимо проверить качество данных и следует рассматривать как часть тестирования базы данных. Он включает в себя проверку различных характеристик, таких как соответствие, точность, дублирование, согласованность, достоверность, полнота данных и т. Д. Далее в этом руководстве по тестированию Hadoop мы узнаем, как тестировать приложения Hadoop.
Как тестировать приложения Hadoop
На следующем рисунке представлен общий обзор этапов тестирования приложений с большими данными.
Тестирование больших данных или Hadoop Testing можно условно разделить на три этапа.
Шаг 1. Проверка промежуточного хранения данных
Первый шаг в этом руководстве по тестированию больших данных называется этапом до Hadoop и включает проверку процесса.
- Данные из различных источников, таких как СУБД, веб-журналы, социальные сети и т. Д., Должны быть проверены, чтобы убедиться, что правильные данные вводятся в систему.
- Сравнение исходных данных с данными, переданными в систему Hadoop, чтобы убедиться, что они совпадают.
- Убедитесь, что правильные данные извлечены и загружены в правильное расположение HDFS.
Такие инструменты, как Talend , Datameer, могут использоваться для проверки данных.
Шаг 2. Проверка MapReduce
Второй шаг - это проверка «MapReduce». На этом этапе тестер больших данных проверяет валидацию бизнес-логики на каждом узле, а затем проверяет их после запуска на нескольких узлах, гарантируя, что
- Процесс уменьшения карты работает правильно
- Правила агрегации или сегрегации данных применяются к данным.
- Пары ключ-значение генерируются
- Проверка данных после процесса Map-Reduce
Шаг 3: Этап проверки выходных данных
Заключительный или третий этап тестирования Hadoop - это процесс проверки выходных данных. Файлы выходных данных созданы и готовы к перемещению в EDW (Enterprise Data Warehouse) или любую другую систему в зависимости от требований.
Мероприятия на третьем этапе включают:
- Чтобы проверить правильность применения правил трансформации
- Для проверки целостности данных и успешной загрузки данных в целевую систему
- Чтобы проверить отсутствие повреждения данных, сравнив целевые данные с данными файловой системы HDFS
Тестирование архитектуры
Hadoop обрабатывает очень большие объемы данных и требует значительных ресурсов. Следовательно, архитектурное тестирование имеет решающее значение для обеспечения успеха вашего проекта больших данных. Плохо или неправильно спроектированная система может привести к снижению производительности, и система может не соответствовать требованиям. По крайней мере, службы тестирования производительности и отработки отказа должны выполняться в среде Hadoop.
Тестирование производительности включает в себя тестирование времени выполнения задания, использования памяти, пропускной способности данных и аналогичных системных показателей. Хотя цель службы тестирования отказоустойчивости состоит в том, чтобы убедиться, что обработка данных происходит без сбоев в случае отказа узлов данных.
Тестирование производительности
Тестирование производительности для больших данных включает два основных действия
- Прием данных и на всем протяжении : на этом этапе тестер больших данных проверяет, как быстрая система может потреблять данные из различных источников данных. Тестирование включает определение другого сообщения, которое очередь может обработать в заданный период времени. Он также включает в себя, насколько быстро данные могут быть вставлены в базовое хранилище данных, например скорость вставки в базу данных Mongo и Cassandra.
- Обработка данных : включает проверку скорости, с которой выполняются запросы или задания сокращения карты. Он также включает тестирование обработки данных изолированно, когда базовое хранилище данных заполняется в наборах данных. Например, выполнение заданий Map Reduce в базовой файловой системе HDFS
- Производительность подкомпонентов: эти системы состоят из нескольких компонентов, и важно тестировать каждый из этих компонентов по отдельности. Например, насколько быстро сообщение индексируется и используется, задания MapReduce, производительность запросов, поиск и т. Д.
Подход к тестированию производительности
Тестирование производительности для приложений с большими данными включает в себя тестирование огромных объемов структурированных и неструктурированных данных и требует особого подхода к тестированию для тестирования таких массивных данных.
Тестирование производительности выполняется в таком порядке.
- Процесс начинается с настройки кластера больших данных, который необходимо протестировать на работоспособность.
- Определите и спроектируйте соответствующие рабочие нагрузки
- Подготовить отдельных клиентов (создаются пользовательские сценарии)
- Выполните тест и проанализируйте результат (если цели не достигнуты, настройте компонент и повторите попытку)
- Оптимальная конфигурация
Параметры для тестирования производительности
Для проверки производительности необходимо проверить различные параметры:
- Хранение данных: как данные хранятся на разных узлах
- Журналы фиксации: насколько большой журнал фиксации может увеличиваться
- Параллелизм: сколько потоков может выполнять операцию записи и чтения.
- Кэширование: Настройте параметры кеширования «кеш строк» и «кеш ключей».
- Тайм-ауты: значения для тайм-аута подключения, тайм-аута запроса и т. Д.
- Параметры JVM: размер кучи, алгоритмы сбора мусора и т. Д.
- Карта снижает производительность: сортировка, объединение и т. Д.
- Очередь сообщений: частота сообщений, размер и т. Д.
Требования к тестовой среде
Тестовая среда должна зависеть от типа тестируемого приложения. Для тестирования программного обеспечения больших данных среда тестирования должна включать
- В нем должно быть достаточно места для хранения и обработки большого количества данных.
- У него должен быть кластер с распределенными узлами и данными
- Он должен иметь минимальное использование ЦП и памяти, чтобы поддерживать высокую производительность при тестировании производительности больших данных.
Тестирование больших данных Vs. Традиционное тестирование базы данных
Характеристики |
Традиционное тестирование базы данных |
Тестирование больших данных |
---|---|---|
Данные |
|
|
Подход к тестированию |
|
|
Стратегия тестирования |
|
|
Инфраструктура |
|
|
Инструменты проверки |
Тестер использует либо макросы на основе Excel, либо инструменты автоматизации на основе пользовательского интерфейса. |
Нет определенных инструментов, диапазон обширен от инструментов программирования, таких как MapReduce, до HIVEQL. |
Инструменты тестирования |
Инструменты тестирования можно использовать с базовыми знаниями и меньшим обучением. |
Для работы с инструментом тестирования требуется определенный набор навыков и обучения. Кроме того, инструменты находятся на начальной стадии, и со временем в них могут появиться новые функции. |
Инструменты, используемые в сценариях больших данных
Кластер больших данных |
Инструменты для больших данных |
---|---|
NoSQL: |
|
Уменьшение карты: |
|
Место хранения: |
|
Серверы: |
|
Обработка |
|
Проблемы тестирования больших данных
- Автоматизация
Для автоматизированного тестирования больших данных требуется специалист с техническими знаниями. Кроме того, автоматизированные инструменты не оборудованы для решения неожиданных проблем, возникающих во время тестирования.
- Виртуализация
Это один из неотъемлемых этапов тестирования. Задержка виртуальной машины создает проблемы с синхронизацией при тестировании производительности больших данных в реальном времени. Также неудобно управлять изображениями в больших данных.
- Большой набор данных
- Необходимо проверить больше данных и сделать это быстрее
- Необходимо автоматизировать усилия по тестированию
- Необходимо иметь возможность тестировать на разных платформах
Проблемы тестирования производительности
- Разнообразный набор технологий : каждый подкомпонент относится к разным технологиям и требует изолированного тестирования.
- Отсутствие определенных инструментов : ни один инструмент не может выполнить сквозное тестирование. Например, NoSQL может не подходить для очередей сообщений.
- Создание сценариев тестирования : для разработки сценариев тестирования и тестовых случаев требуется высокий уровень написания сценариев.
- Тестовая среда : требуется специальная тестовая среда из-за большого размера данных.
- Решение для мониторинга : существуют ограниченные решения, которые могут контролировать всю среду.
- Диагностическое решение : требуется разработать индивидуальное решение для детализации узких мест в производительности.
Резюме
- По мере того, как инженерия данных и аналитика данных выходят на новый уровень, тестирование больших данных неизбежно.
- Обработка больших данных может быть пакетной, в режиме реального времени или интерактивной.
- 3 этапа тестирования приложений больших данных:
- Проверка промежуточного хранения данных
- Проверка MapReduce
- Фаза проверки вывода
- Тестирование архитектуры - важный этап тестирования больших данных, поскольку плохо спроектированная система может привести к беспрецедентным ошибкам и снижению производительности.
- Тестирование производительности для больших данных включает проверку
- Пропускная способность данных
- Обработка данных
- Производительность подкомпонентов
- Тестирование больших данных сильно отличается от традиционного тестирования данных с точки зрения данных, инфраструктуры и инструментов проверки.
- Проблемы тестирования больших данных включают виртуализацию, автоматизацию тестирования и работу с большими наборами данных. Тестирование производительности приложений для больших данных также является проблемой.