Тестування великих даних
Тестування великих даних - це процес тестування програми для великих даних, щоб гарантувати, що всі функціональні можливості програми для великих даних працюють належним чином. Метою тестування великих даних є переконатися, що система великих даних працює безперебійно та без помилок, зберігаючи продуктивність та безпеку.
Великі дані - це сукупність великих наборів даних, які неможливо обробити за допомогою традиційних обчислювальних технік. Тестування цих наборів даних включає різні інструменти, техніки та основи для обробки. Великі дані відносяться до створення, зберігання, пошуку та аналізу даних, що є надзвичайним за обсягом, різноманітністю та швидкістю. Ви можете дізнатись більше про Big Data, Hadoop та MapReduce тут
У цьому підручнику з тестування великих даних ви дізнаєтесь-
- Що таке стратегія тестування великих даних?
- Як протестувати програми Hadoop
- Тестування архітектури
- Тестування продуктивності
- Підхід до тестування продуктивності
- Параметри тестування продуктивності
- Потреби тестового середовища
- Тестування великих даних проти Традиційне тестування баз даних
- Інструменти, що використовуються у сценаріях великих даних
- Проблеми при тестуванні великих даних
Що таке стратегія тестування великих даних?
Тестування програми Big Data - це більше перевірка її обробки даних, а не тестування окремих особливостей програмного продукту. Коли йдеться про тестування великих даних, ключовим фактором є продуктивність та функціональне тестування .
У стратегії тестування великих даних інженери з контролю якості перевіряють успішну обробку терабайт даних за допомогою товарного кластеру та інших допоміжних компонентів. Це вимагає високого рівня навичок тестування, оскільки обробка дуже швидка. Обробка може бути трьох типів
Поряд з цим якість даних також є важливим фактором тестування Hadoop. Перед тестуванням програми необхідно перевірити якість даних і слід розглядати її як частину тестування бази даних. Він включає перевірку різних характеристик, таких як відповідність, точність, дублювання, узгодженість, валідність, повнота даних тощо. Далі в цьому посібнику з тестування Hadoop ми дізнаємося, як тестувати програми Hadoop.
Як протестувати програми Hadoop
На наступному малюнку наведено огляд на високому рівні етапів тестування додатків для великих даних
Тестування великих даних або тестування Hadoop можна розділити на три етапи
Крок 1: Перевірка етапу даних
Перший крок у цьому підручнику з тестування великих даних називається етапом до Hadoop, що передбачає перевірку процесу.
- Дані з різних джерел, таких як СУБД, веб-журнали, соціальні медіа тощо, повинні перевірятися, щоб переконатися, що правильні дані потрапляють у систему
- Порівняння вихідних даних із даними, що надходять у систему Hadoop, щоб переконатися, що вони збігаються
- Переконайтеся, що правильні дані витягнуті та завантажені у правильне розташування HDFS
Такі інструменти, як Talend , Datameer, можуть бути використані для перевірки індексації даних
Крок 2: Перевірка "MapReduce"
Другим кроком є перевірка "MapReduce". На цьому етапі тестер великих даних перевіряє перевірку ділової логіки на кожному вузлі, а потім перевіряє їх після запуску на декількох вузлах, гарантуючи, що
- Процес Map Reduce працює коректно
- Правила агрегування або розділення даних реалізовані на даних
- Генеруються пари ключових значень
- Перевірка даних після процесу Map-Reduce
Крок 3: Фаза перевірки вихідних даних
Завершальним або третім етапом тестування Hadoop є процес перевірки вихідних даних. Файли вихідних даних генеруються та готові до переміщення в EDW (Enterprise Data Warehouse) або будь-яку іншу систему на основі вимог.
Діяльність на третьому етапі включає
- Для перевірки правильно застосовуються правила перетворення
- Перевірити цілісність даних та успішне завантаження даних у цільову систему
- Щоб перевірити відсутність пошкодження даних, порівнявши цільові дані з даними файлової системи HDFS
Тестування архітектури
Hadoop обробляє дуже великі обсяги даних і вимагає великих ресурсів. Отже, архітектурне тестування має вирішальне значення для забезпечення успіху вашого проекту з великими даними. Погано або неправильно розроблена система може призвести до погіршення продуктивності, і система може не відповідати вимогам. Принаймні, служби тестування продуктивності та відмов повинні виконуватися в середовищі Hadoop.
Тестування продуктивності включає тестування часу виконання завдання, використання пам’яті, пропускної здатності даних та подібних системних показників. Хоча мотив служби відмовостійкої перевірки полягає в тому, щоб перевірити, що обробка даних відбувається безперешкодно у разі виходу з ладу вузлів даних
Тестування продуктивності
Тестування продуктивності для великих даних включає дві основні дії
- Передача даних і протягом : На цьому етапі тестер великих даних перевіряє, як швидка система може споживати дані з різних джерел даних. Тестування передбачає виявлення іншого повідомлення, яке чергу може обробити за певний проміжок часу. Він також включає те, як швидко дані можна вставити в базовий сховище даних, наприклад, швидкість вставки в базу даних Монго та Кассандри.
- Обробка даних : Вона включає перевірку швидкості виконання запитів або зменшення завдань на карті. Це також включає тестування обробки даних ізольовано, коли базовий сховище даних заповнюється в наборах даних. Наприклад, запуск Map Reduce завдань на базовому HDFS
- Ефективність підкомпонентів : Ці системи складаються з декількох компонентів, і важливо протестувати кожен із цих компонентів ізольовано. Наприклад, як швидко індексується та споживається повідомлення, завдання MapReduce, продуктивність запитів, пошук тощо.
Підхід до тестування продуктивності
Тестування продуктивності для застосування великих даних передбачає тестування величезних обсягів структурованих та неструктурованих даних, і для перевірки таких масивних даних потрібен специфічний підхід тестування.
Тестування продуктивності виконується в такому порядку
- Процес починається з налаштування кластера великих даних, який перевіряється на ефективність
- Визначте та спроектуйте відповідні навантаження
- Підготувати окремих клієнтів (створюються власні сценарії)
- Виконайте тест і проаналізуйте результат (якщо цілі не досягнуті, налаштуйте компонент і виконайте повторно)
- Оптимальна конфігурація
Параметри тестування продуктивності
Різні параметри, які слід перевірити для тестування продуктивності
- Зберігання даних: Як дані зберігаються в різних вузлах
- Журнали комітів: Наскільки великий журнал комітів може зростати
- Паралельність: скільки потоків може виконувати операцію запису та читання
- Кешування: Налаштуйте параметри кешу "кеш рядків" та "кеш ключів".
- Час очікування: значення часу очікування з’єднання, часу очікування запиту тощо.
- Параметри JVM: розмір купи, алгоритми збору GC тощо.
- Карта знижує продуктивність: сортування, об’єднання тощо.
- Черга повідомлень: Швидкість повідомлення, розмір тощо.
Потреби тестового середовища
Тестове середовище має залежати від типу програми, яку ви тестуєте. Для тестування програмного забезпечення для великих даних середовище тестування повинно охоплювати
- У ньому має бути достатньо місця для зберігання та обробки великої кількості даних
- Він повинен мати кластер із розподіленими вузлами та даними
- Він повинен мати мінімальне використання процесора та пам'яті, щоб підтримувати високу продуктивність для тестування продуктивності великих даних
Тестування великих даних проти Традиційне тестування баз даних
Властивості |
Традиційне тестування баз даних |
Тестування великих даних |
---|---|---|
Дані |
|
|
Підхід до тестування |
|
|
Стратегія тестування |
|
|
Інфраструктура |
|
|
Засоби перевірки |
Tester використовує макроси на основі Excel або засоби автоматизації на основі інтерфейсу користувача |
Немає визначених інструментів, широкий діапазон - від інструментів програмування, таких як MapReduce до HIVEQL |
Інструменти тестування |
Інструменти тестування можна використовувати з базовими експлуатаційними знаннями та меншою підготовкою. |
Це вимагає певного набору навичок та підготовки для роботи з інструментом тестування. Крім того, інструменти перебувають у стадії зародження, і з часом він може запропонувати нові функції. |
Інструменти, що використовуються у сценаріях великих даних
Кластер великих даних |
Інструменти великих даних |
---|---|
NoSQL: |
|
MapReduce: |
|
Зберігання: |
|
Сервери: |
|
Обробка |
|
Проблеми при тестуванні великих даних
- Автоматизація
Для автоматизованого тестування великих даних потрібен хтось із технічним досвідом. Крім того, автоматизовані засоби не оснащені для обробки несподіваних проблем, які виникають під час тестування
- Віртуалізація
Це одна з невід'ємних фаз тестування. Затримка віртуальної машини створює проблеми з синхронізацією в режимі реального часу, перевіряючи продуктивність великих даних. Також керування зображеннями у великих даних - клопіт.
- Великий набір даних
- Потрібно перевірити більше даних, і це потрібно зробити швидше
- Потрібно автоматизувати зусилля для тестування
- Потрібно мати можливість тестувати на різних платформах
Випробування продуктивності
- Різноманітний набір технологій : Кожен підкомпонент належить до іншої технології і вимагає окремого тестування
- Недоступність конкретних інструментів : жоден інструмент не може виконувати наскрізне тестування. Наприклад, NoSQL може не підходити до черг повідомлень
- Тестові сценарії . Для розробки сценаріїв тестування та тестових кейсів потрібен високий рівень сценаріїв
- Тестове середовище : воно потребує спеціального тестового середовища через великий обсяг даних
- Рішення для моніторингу : існує обмежена кількість рішень, які можуть контролювати все довкілля
- Діагностичне рішення : Розробляється спеціальне рішення для детального вивчення вузьких місць продуктивності
Резюме
- Коли інженерія даних та аналітика даних виходять на новий рівень, тестування великих даних неминуче.
- Обробка великих даних може бути пакетною, реальним часом або інтерактивною
- 3 етапи тестування додатків великих даних
- Перевірка індексації даних
- Перевірка "MapReduce"
- Фаза перевірки результату
- Архітектурне тестування є важливим етапом тестування великих даних, оскільки погано розроблена система може призвести до безпрецедентних помилок та погіршення продуктивності
- Тестування продуктивності для великих даних включає перевірку
- Пропускна здатність даних
- Обробка даних
- Продуктивність підкомпонентів
- Тестування великих даних сильно відрізняється від традиційного тестування даних з точки зору даних, інфраструктури та засобів перевірки
- Проблеми тестування великих даних включають віртуалізацію, автоматизацію тестування та роботу з великими наборами даних. Тестування продуктивності додатків великих даних також є проблемою.