Найкращі практики автоматизації тестування конвеєрів даних

Найкращі практики автоматизації тестування конвеєрів даних

Вихідний вузол: 2035833

Процеси інтеграції даних виграють від автоматизованого тестування, як і будь-яке інше програмне забезпечення. Проте рідко можна знайти проект конвеєра даних із відповідним набором автоматизованих тестів. Навіть якщо проект має багато тестів, вони часто неструктуровані, не повідомляють про свою мету та їх важко виконувати.

Характеристика конвеєр даних розробка — це частий випуск високоякісних даних для отримання відгуків користувачів і визнання. Наприкінці кожної ітерації конвеєра даних очікується, що дані мають високу якість для наступного етапу. 

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

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

По-перше, це займає надто багато часу та є критичним гальмом для частої доставки трубопроводів. Команди, які здебільшого покладаються на ручне тестування, зрештою відкладають тестування на спеціальні періоди тестування, що дозволяє накопичувати помилки. 

По-друге, ручне тестування конвеєра даних недостатньо відтворюване для регресійного тестування. 

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

Варіанти конвеєрів даних

  • Видобуток, перетворення та завантаження (ETL)
  • Видобуток, завантаження та перетворення (ELT)
  • Озеро даних, конвеєри сховищ даних
  • Конвеєри реального часу
  • Конвеєри машинного навчання

Компоненти конвеєра даних для розгляду автоматизації тестування

Конвеєри даних складаються з кількох компонентів, кожен з яких відповідає за певне завдання. Елементи конвеєра даних включають:

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

Найкращі методи автоматизації тестування конвеєрів даних

Що і коли автоматизувати (або навіть якщо вам потрібна автоматизація) є ключовими рішеннями для команди тестування (або розробки). Вибір відповідних характеристик продукту для автоматизації значною мірою визначає успіх автоматизації. 

Під час автоматизації тестів для конвеєра даних передові методи включають:

  • Визначте чіткі та конкретні цілі тесту: Перш ніж почати тестування, важливо визначити, чого ви хочете досягти за допомогою тестування. Це допоможе вам створювати ефективні та ефективні тести, які нададуть цінну інформацію.
  • Перевірте всі робочі процеси конвеєра даних: Конвеєр даних зазвичай складається з кількох компонентів: прийом даних, обробка, перетворення та зберігання. Важливо протестувати кожен компонент, щоб забезпечити правильний і плавний потік даних через конвеєр.
  • Використовуйте надійні дані тестування: Під час тестування конвеєра даних важливо використовувати реалістичні дані, які імітують сценарії реального світу. Це допоможе виявити будь-які проблеми, які можуть виникнути під час обробки різних типів даних.
  • Автоматизуйте за допомогою ефективних інструментів: Цього можна досягти за допомогою фреймворків та інструментів тестування.
  • Контролюйте трубопровід на регулярній основі: Навіть після завершення тестування важливо регулярно контролювати трубопровід, щоб переконатися, що він працює належним чином. Це допоможе виявити проблеми до того, як вони стануть критичними.
  • Залучення зацікавлених сторін: Залучайте до процесу тестування зацікавлених сторін, таких як аналітики даних, інженери даних і бізнес-користувачі. Це допоможе переконатися, що тести будуть актуальними та цінними для всіх зацікавлених сторін.
  • Вести документацію: Важливо зберігати документи, які описують тести, тестові приклади та результати тестів. Це допоможе гарантувати, що тести можна відтворювати та підтримувати з часом.

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

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

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

Як правило, автоматизація тестування передбачає автоматизацію існуючого ручного процесу, який використовує формальний процес тестування.

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

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

Інтеграція автоматизованого тестування в розробку конвеєрів даних представляє унікальний набір проблем. Поточні автоматизовані засоби тестування розробки програмного забезпечення не легко адаптуються до баз даних і проектів конвеєрів даних. 

Велика різноманітність архітектур конвеєрів даних ще більше ускладнює ці проблеми, оскільки вони включають численні бази даних, які вимагають спеціального кодування для вилучення даних, перетворення, завантаження, очищення даних, агрегації даних і збагачення даних.

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

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

  • Тестування звіту BI 
  • Бізнес, відповідність уряду
  • Обробка агрегації даних
  • Очищення та архівування даних
  • Тести якості даних
  • Узгодження даних (наприклад, від джерела до цілі)
  • Перетворення даних
  • Завантажуються дані таблиці розмірів
  • Наскрізне тестування
  • ETL, ELT валідаційне та верифікаційне тестування
  • Завантажуються дані таблиці фактів 
  • Перевірка завантаження файлів/даних
  • Тестування з поступовим навантаженням
  • Тестування навантаження та масштабованості
  • Відсутні файли, записи, поля
  • Тестування продуктивності 
  • Референтна цілісність
  • Регресійне тестування
  • Тестування безпеки
  • Тестування вихідних даних і профілювання
  • Постановка, перевірка даних ODS 
  • Модульне, інтеграційне та регресійне тестування

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

Для більшості проектів процеси тестування конвеєра даних призначені для перевірки та впровадження якості даних.

Різноманітність типів даних, доступних сьогодні, створює труднощі для тестування

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

З появою Інтернету речей (IoT) відбувся вибух різноманітних типів даних, включаючи дані датчиків, дані про місцезнаходження та дані міжмашинного зв’язку. Оскільки ці типи даних витягуються та перетворюються, тестування може стати більш складним без відповідних інструментів. Це призвело до появи нових технологій керування даними та аналітичних методів, таких як потокова обробка, периферійні обчислення та аналітика в реальному часі.

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

Малюнок 1: Приклади різноманітних джерел даних і цільових даних

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

Ключовим елементом agile та інших сучасних розробок є автоматизоване тестування. Ми можемо застосувати цю обізнаність до конвеєра даних.

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

Рисунок 2. Тестування «гарячих точок» від початку до кінця конвеєра даних

Під час впровадження автоматизації тестування дані можна відстежувати від вихідних рівнів, через обробку конвеєра даних, до завантажень у конвеєрі даних, а потім, нарешті, до зовнішніх програм або звітів. Припустімо, у зовнішній програмі чи звіті знайдено пошкоджені дані. У цьому випадку виконання автоматизованих пакетів може допомогти швидше визначити, чи окремі проблеми розташовані в джерелах даних, процесі конвеєра даних, нещодавно завантаженій базі даних/вітринці даних конвеєра чи звітах бізнес-аналітики/аналітики.

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

Визначте категорії тестів для автоматизації

Хитрість полягає в тому, щоб визначити, що потрібно автоматизувати та як виконувати кожне завдання. Під час автоматизації тестів слід розглянути ряд запитань, наприклад:

  • Яка вартість автоматизації тестів?
  • Хто відповідає за автоматизацію тестування (наприклад, Dev., QA, інженери даних)?
  • Які інструменти тестування слід використовувати (наприклад, з відкритим кодом, постачальника)?
  • Чи виправдають обрані інструменти всі очікування?
  • Як будуть повідомлятися результати тесту?
  • Хто інтерпретує результати тесту?
  • Як підтримуватимуться тестові сценарії?
  • Як ми організуємо сценарії для легкого та точного доступу? 

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

Малюнок 3: Порівняння тривалості ручного та автоматичного виконання тесту.

Автоматизоване тестування конвеєра даних має на меті охопити найважливіші функції для завантаження конвеєра даних – синхронізацію та узгодження вихідних і цільових даних.

Переваги та обмеження автоматизованого тестування

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

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

Переваги автоматизації тестування

  • Виконує тести швидше: Автоматизація може прискорити реалізацію тестових сценаріїв.
  • Створює набір багаторазових тестів: Після запуску тестових сценаріїв за допомогою інструментів автоматизації їх можна створити резервну копію для легкого виклику та повторного використання.
  • Полегшує звітність про тестування: Цікавою особливістю багатьох автоматизованих інструментів є їх здатність створювати звіти та тестові файли. Ці можливості точно відображають статус даних, чітко визначають недоліки та використовуються під час перевірок відповідності. 
  • Зменшує витрати на персонал і переробку: Час, витрачений на ручне тестування або повторне тестування після виправлення дефектів, можна витратити на інші ініціативи в ІТ-відділі.

Потенційні обмеження

  • Не може повністю замінити ручне тестування: Хоча автоматизацію можна використовувати для різних програм і тестових випадків, він не може повністю замінити ручне тестування. Як і раніше існуватимуть складні тестові випадки, де автоматизація не охопить усе, а для перевірки прийнятності користувачами кінцевим користувачам часто доводиться виконувати тести вручну. Тому наявність правильного поєднання автоматизованого та ручного тестування в процесі життєво важлива. 
  • Вартість інструментів: Комерційні засоби тестування можуть бути дорогими, залежно від їх розміру та функціональності. Зовні бізнес може розглядати це як непотрібні витрати. Однак лише повторне використання може швидко зробити його активом. 
  • Вартість навчання: Тестувальники повинні бути навчені не лише програмуванню, а й плануванню автоматизованих тестів. Автоматизовані інструменти можуть бути складними у використанні та потребують навчання користувача.
  • Автоматизація потребує планування, підготовки та спеціальних ресурсів: Успіх автоматизованого тестування в основному залежить від точних вимог до тестування та ретельної розробки тестових випадків перед початком тестування. На жаль, розробка тестів все ще є переважно ручним процесом. Оскільки кожна організація та програма конвеєра даних можуть бути унікальними, багато інструментів автоматизованого тестування не створюватимуть тестові випадки.

Початок роботи з автоматизацією тестування конвеєрів даних

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

Розробити бізнес-кейс для автоматизованого тестування. ІТ-спеціалісти повинні спочатку обґрунтувати, щоб передати цінність для бізнесу. 

Оцініть варіанти. Оцінивши поточний стан і вимоги ІТ-відділу, визначте, які інструменти відповідають процесам і середовищам тестування організації. Варіанти можуть включати постачальників, відкритий код, внутрішні інструменти або комбінацію інструментів. 

Висновки

Оскільки автоматизація тестування швидко стала важливою альтернативою ручному тестуванню, все більше компаній шукають інструменти та стратегії для успішного впровадження автоматизації. Це призвело до значного зростання інструментів автоматизації тестування на основі Appium, Selenium, Katalon Studio та багатьох інших. Однак інженери з конвеєра даних та обробки даних, BI та команди із забезпечення якості повинні мати відповідні навички програмування, щоб повноцінно використовувати ці інструменти автоматизації. 

Багато ІТ-експертів передбачають, що розрив у знаннях між тестувальниками та розробниками повинен і буде постійно скорочуватися. Автоматизовані засоби тестування конвеєра даних можуть значно скоротити час, витрачений на тестування коду, порівняно зі звичайними ручними методами.

Оскільки можливості розробки конвеєрів даних продовжують зростати, потреба в більш комплексному та сучасному автоматизованому тестуванні даних також зростає.

Часова мітка:

Більше від ПЕРЕДАЧА