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

Що таке ETL?
ETL стенди для Extract-Трансформація-Навантаження, і він описує, як дані переміщуються з вихідної системи до сховища даних. Дані єtracотримані з бази даних OLTP, перетворені відповідно до схеми сховища даних та завантажені в базу даних сховища. Багато сховищ також містять дані з систем, що не є OLTP, таких як текстові файли, застарілі програми та електронні таблиці.
Наприклад, роздрібний магазин може мати окремі відділи, такі як відділ продажів, маркетингу та логістики. Кожен відділ обробляє інформацію про клієнтів незалежно, і спосіб зберігання цих даних у кожному з них відрізняється. Відділ продажів може зберігати записи за іменем клієнта, тоді як відділ маркетингу використовує ідентифікатор клієнта.
Якщо бізнес-команди хочуть переглянути повну історію покупок клієнта в різних маркетингових кампаніях, розрізнені дані роблять цей процес дуже виснажливим. Рішенням є використання Datawarehouse зберігати інформацію з різних джерел в єдиній структурі за допомогою ETL. ETL може перетворити різні набори даних в єдину структуру, щоб інструменти бізнес-аналітики могли згодом отримувати змістовні висновки та звіти.
На наступній діаграмі показано процес тестування ETL та основні концепції, які ви використовуватимете в цьому посібнику:
1) Колишнійtract
- Extracвідповідні дані з однієї або кількох вихідних систем.
2) Перетворення
- Трансформувати дані у формат DW (сховище даних).
- Ключі збірки: ключ — це один або декілька атрибутів даних, які однозначно ідентифікують сутність. Різні типи ключів це первинний ключ, альтернативний ключ, зовнішній ключ, складений ключ та сурогатний ключ. Сховище даних володіє цими ключами та ніколи не дозволяє жодній іншій сутності призначати їх.
- Очищення даних: після видалення данихtracПісля обробки система переходить до наступного етапу очищення та узгодження. Очищення виправляє пропуски та виявляє помилки. Узгодження вирішує конфлікти між несумісними наборами даних, щоб їх можна було використовувати в корпоративному сховищі даних. Система також створює метадані, які допомагають діагностувати проблеми вихідної системи та покращувати якість даних.
3) Завантаження
- Завантаження даних у сховище даних (DW).
- Створення агрегатів: агрегат підсумовує та зберігає дані з таблиця фактів для покращення продуктивності запитів кінцевих користувачів.
Що таке тестування ETL?
ETL-тестування виконується для того, щоб переконатися в точності даних, завантажених з джерела до місця призначення після трансформації бізнесу. Воно також включає перевірку даних на різних проміжних етапах між джерелом і місцем призначення. Оскільки ETL розшифровується як Extract-трансформація-завантаження, ETL-тестування охоплює кожен із цих трьох етапів та точки, де дані перетинаються між ними.
Чому важливе ETL-тестування?
Щойно ви зрозумієте, що таке ETL-тестування, наступним питанням буде те, чому організації вкладають у нього стільки зусиль. Бізнес-рішення залежать від правильних, повних та достовірних даних, тому одна помилка трансформації може вплинути на фінансові звіти, аналітику клієнтів та розкриття інформації регуляторними органами.
Наступні пункти пояснюють практичну цінність надійного ETL-тестування:
- Точність даних: Це підтверджує, що значення, перетворені бізнес-правилами, відповідають задокументованій картіping специфікації, запобігаючи прихованому пошкодженню.
- Надійна звітність: Панелі інструментів та інструменти бізнес-аналітики залежать від сховища даних, тому перевірені ETL-конвеєри захищають кожен звіт та ключовий показник ефективності (KPI) для подальшого виконання.
- Відповідність законодавству: Такі галузі, як банківська справа, охорона здоров'я та страхування, повинні довести, що походження та цілісність даних зберігаються від початку до кінця.
- Зменшення кількості повторної роботи: Виявлення дефектів у середовищах нижчого рівня дозволяє уникнути дороговартісного перезавантаження виробництва, ручного звірення та помилок, з якими стикаються клієнти.
- Гарантія виконання: ETL-тестування вимірює вікна навантаження, пропускну здатність та вузькі місця, щоб сховище даних продовжувало масштабуватися зі зростанням обсягу даних.
Зрозумівши ці мотивації, у наступному розділі розглядається структурований процес, якого дотримуються ETL-тестери в реальних проектах.
Dataddo — це повністю керована платформа інтеграції даних без написання коду, яка спрощує підключення хмарних додатків, інформаційних панелей та сховищ даних. Ця ETL-платформа має власні конектори, які можна створити протягом 10 робочих днів. Інструмент підтримує зворотний ETL, реплікацію бази даних та традиційну функціональність ETL.
Процес тестування ETL
Подібно до інших процесів тестування, ETL також проходить різні фази. Різні фази процесу тестування ETL такі:
Тестування ETL виконується у п'ять етапів:
- Визначення джерел даних і вимог
- Збір даних
- Впроваджуйте бізнес-логіку та розмірне моделювання
- Створення та заповнення даних
- Створення звітів
Маючи на увазі високорівневий процес, давайте розглянемо конкретні типи тестування, які вписуються в цей життєвий цикл.
Типи тестування ETL
- Перевірка виробництва
Процес тестування: Також відомий як «балансування таблиць» або «узгодження виробництва», цей тип ETL-тестування виконується для даних під час їх переміщення у виробничі системи. Для підтримки бізнес-рішень виробничі дані повинні бути в правильному порядку. Інформатика Опція перевірки даних (Data Validation Option) забезпечує можливості автоматизації та управління ETL-тестуванням, щоб виробничі системи не були скомпрометовані неправильними даними. - Джерело до Target Тестування (валідаційне тестування)
Процес тестування: Цей тип тестування перевіряє, чи відповідають перетворені значення даних очікуваним цільовим значенням. - додаток Upgrades
Процес тестування: Цей тип ETL-тестування може бути згенерований автоматично, що значно заощаджує час на розробку тестів. Він перевіряє, чи дані...tracдані, отримані зі старішої програми або репозиторію, збігаються з даними в новій програмі або репозиторії. - Тестування метаданих
Процес тестування: Тестування метаданих включає перевірку типу даних, перевірку довжини даних та перевірку індексів або обмежень. - Перевірка повноти даних
Процес тестування: Перевірка повноти даних перевіряє, чи всі очікувані дані завантажено з джерела в ціль. Звичайні тести включають порівняння та перевірку кількості записів, агрегатів та фактичних даних між вихідними та цільовими стовпцями, коли перетворення просте або відсутнє. - Тестування точності даних
Процес тестування: Це тестування гарантує, що дані завантажуються та трансформуються належним чином. - Тестування перетворення даних
Процес тестування: Трансформацію тестових даних часто неможливо досягти з одного джерела SQL запит та порівняння результатів. Для перевірки правил перетворення для кожного рядка може знадобитися кілька SQL-запитів. - Тестування якості даних
Процес тестування:Тести якості даних включають синтаксичні тести та довідкові тести. Вони запобігають помилкам бізнес-процесів, спричиненим неправильними датами або номерами замовлень.
Синтаксичні тести повідомляють про некоректні дані на основі недійсних символів, шаблонів символів та неправильного порядку регістру літер.
Довідкові тести перевіряють дані на відповідність моделі даних. Наприклад: Ідентифікатор клієнта.
Тестування якості даних також включає перевірку чисел, перевірку дати, перевірку точності, перевірку даних та перевірку нульових значень.
- Покрокове тестування ETL
Процес тестування: Це тестування перевіряє цілісність старих та нових даних із додаванням нових даних. Інкрементне тестування перевіряє, чи вставки та оновлення обробляються належним чином під час інкрементного процесу ETL. - GUI/тестування навігації
Процес тестування: Це тестування перевіряє аспекти навігації та графічного інтерфейсу у звітах фронтенду.
Як створити тестовий приклад ETL
ETL-тестування – це концепція, яку можна застосовувати до різних інструментів та баз даних в галузі управління інформацією. Мета ETL-тестування полягає в тому, щоб переконатися, що дані, завантажені з джерела до місця призначення після трансформації бізнесу, є точними. Це також включає перевірку даних на різних проміжних етапах між джерелом та місцем призначення.
Під час виконання ETL-тестування ETL-тестер завжди використовує два документи:
- Карта ETLping аркуші: Карта ETLping Аркуш містить всю інформацію про вихідні та цільові таблиці, включаючи кожен стовпець та його пошук у таблицях-посиланнях. Тестери ETL повинні вміти працювати з SQL-запитами, оскільки тестування ETL може включати написання великих запитів з кількома об'єднаннями для перевірки даних на будь-якому етапі. Карта ETLping Таблиці надають значну допомогу під час написання запитів для перевірки даних.
- Схема БД джерела та цільової бази даних: Його слід тримати під рукою, щоб перевірити будь-які деталі на картіping аркуші.
Сценарії та тестові сценарії ETL
- картаping перевірка документа
Тестові випадки: Перевірте, чи відповідна інформація ETL надається на картіping документ. Журнал змін слід вести на кожній картіping док. - Перевірка
Тестові випадки:1) Перевірте структуру вихідної та цільової таблиць на відповідній картіping док.
2) Тип вихідних даних та тип цільових даних повинні бути однаковими.
3) Довжина типів даних у джерелі та цільовому об'єкті має бути однаковою.
4) Перевірте, чи вказані типи та формати полів даних.
5) Довжина вихідного типу даних не повинна бути меншою за довжину цільового типу даних.
6) Перевірте відповідність назв стовпців у таблиці картіping док. - Перевірка обмежень
Тестові випадки: Переконайтеся, що обмеження для конкретної таблиці визначені належним чином. - Проблеми узгодженості даних
Тестові випадки:1) Тип даних та довжина певного атрибута можуть відрізнятися між файлами або таблицями, навіть якщо семантичне визначення однакове.
2) Зловживання обмеженнями цілісності. - Проблеми повноти
Тестові випадки:1) Переконайтеся, що всі очікувані дані завантажено в цільову таблицю.
2) Порівняйте кількість записів між джерелом та цільовим об'єктом.
3) Перевірте наявність відхилених записів.
4) Перевірте, чи не обрізані дані у стовпцях цільових таблиць.
5) Перевірте аналіз граничних значень.
6) Порівняйте унікальні значення ключових полів між даними, завантаженими до сховища, та вихідними даними. - Проблеми з правильністю
Тестові випадки:1) Дані, записані з орфографічними помилками або неточно.
2) Нульові, неунікальні або дані поза діапазоном. - Перетворення
Тестові випадки: Перевірте, чи кожне бізнес-правило та логіка трансформації на картіping документ правильно застосовується до вихідних даних, перш ніж він потрапить до цільового об'єкта. - Якість даних
Тестові випадки:1) Перевірка чисел: перевірка числових форматів та значень.
2) Перевірка дати: дати повинні відповідати єдиному формату та бути узгодженими в усіх записах.
3) Перевірка точності.
4) Перевірка даних.
5) Перевірка на нуль. - Нульова перевірка
Тестові випадки: Перевірте значення null, де для певного стовпця вказано «Not Null». - Перевірка дублікатів
Тестові випадки:1) Перевірте унікальний ключ, первинний ключ та будь-який інший стовпець, який має бути унікальним згідно з бізнес-вимогами, щоб підтвердити відсутність дублікатів рядків.
2) Перевірте, чи існують дублікати значень у будь-якому стовпці extracотримано з кількох вихідних стовпців та об'єднано в один стовпець.
3) Відповідно до вимог клієнта, переконайтеся, що в комбінації кількох стовпців у цільовому об'єкті немає дублікатів. - Перевірка дати
Тестові випадки: Значення дат використовуються в багатьох сферах розробки ETL:1) Щоб дізнатися дату створення рядка.
2) Визначити активні записи з точки зору розробки ETL.
3) Визначити активні записи з точки зору бізнес-вимог.
4) Іноді на основі значень дат генеруються оновлення та вставки. - Повна перевірка даних
Тестові випадки:1) Перевірте повний набір даних у вихідній та цільовій таблицях, використовуючи мінус-запит як найкраще рішення.
2) Вам потрібно виконати обчислення джерело мінус ціль та ціль мінус джерело.
3) Якщо запит мінус повертає будь-яке значення, ці рядки слід вважати невідповідними.
4) Зіставте рядки між джерелом та цільовим елементами за допомогою оператора intersect.
5) Кількість, що повертається функцією intersect, має збігатися з окремими підрахунками вихідної та цільової таблиць.
6) Якщо мінус-запит повертає рядки, а кількість перетинів менша за кількість джерела або цілі, існують дублікати рядків. - Чистота даних
Тестові випадки: Перед завантаженням у проміжну область слід видалити непотрібні стовпці.
Типи помилок ETL
Навіть із сильними тестовими випадками, конвеєри ETL можуть зазнавати невдачі різними способами. На зображенні нижче підсумовано категорії помилок, на які слід звернути увагу, а в таблиці нижче описано кожну з них.
| Тип помилок | Опис |
|---|---|
| Помилки інтерфейсу користувача/косметичні помилки |
• Пов'язано з графічним інтерфейсом програми • Стиль шрифту, розмір шрифту, кольори, вирівнювання, орфографічні помилки, навігація тощо |
| Помилка, пов’язана з аналізом граничних значень (BVA). | • Мінімальні та максимальні значення |
| Помилка, пов’язана з розділенням класів еквівалентності (ECP). | • Дійсний та недійсний тип |
| Помилки введення/виведення |
• Дійсні значення не приймаються • Приймаються недійсні значення |
| Помилки розрахунків |
• Математичні помилки • Кінцевий результат неправильний |
| Помилки умов завантаження |
• Не дозволяє роботу з кількома користувачами • Не дозволяє навантаження, очікуване клієнтом |
| Помилки умов гонки |
• Збій та зависання системи • Система не може запускати клієнтські платформи |
| Помилки контролю версій |
• Немає збігу логотипів • Інформація про версію недоступна • Зазвичай трапляється в Регресійне тестування |
| H/W помилки | • Пристрій не відповідає на запити програми |
| Довідка Джерело помилок | • Помилки в довідкових документах |
Тестування сховища даних
Тестування сховища даних – це метод тестування, за допомогою якого дані в сховищі даних перевіряються на цілісність, надійність, точність та узгодженість, щоб відповідати структурі даних компанії. Головна мета тестування сховища даних – переконатися, що інтегровані дані всередині сховища є достатньо надійними, щоб компанія могла приймати на їх основі рішення. У той час як тестування ETL зосереджується на переміщенні даних, тестування сховища даних охоплює ширший рівень зберігання та звітності, який ETL зрештою забезпечує.
Різниця між тестуванням бази даних і тестуванням ETL
Хоча обидві дисципліни працюють зі структурованими даними, вони відповідають на різні питання. Таблиця нижче підкреслює практичну різницю:
| Тестування ETL | Тестування бази даних |
|---|---|
| Перевіряє, чи дані переміщено належним чином. | Основна мета — перевірити, чи відповідають дані правилам і стандартам, визначеним у моделі даних. |
| Перевіряє, чи збігаються підрахунки у джерелі та цільовому об'єкті, і чи відповідають перетворені дані очікуванням. | Перевіряє відсутність осиротілих записів та підтримку зв'язків між зовнішнім та первинним ключами. |
| Перевіряє, чи зберігаються зв'язки зовнішніх первинних ключів під час ETL. | Перевіряє відсутність надлишкових таблиць та оптимальну нормалізацію бази даних. |
| Перевіряє наявність дублікатів у завантажених даних. | Перевіряє, чи відсутні дані в стовпцях, де це необхідно. |
Тестування продуктивності в ETL
Тестування продуктивності в ETL – це метод тестування, який гарантує, що система ETL може обробляти навантаження від кількох користувачів і транзакцій. Основна мета ETL Тестування продуктивності полягає в оптимізації та покращенні продуктивності сеансу шляхом виявлення та усунення вузьких місць у продуктивності. Вихідна та цільова бази даних, картаpingВузькі місця можуть міститися в системах, сесіях та самій системі.
Одним з найкращих інструментів, що використовуються для тестування та налаштування продуктивності, є Informatica.
Обов'язки тестувальника ETL
Ключові обов'язки ETL-тестера поділяються на три категорії:
- Сценічний стіл / SFS або MFS
- Логіка трансформації бізнесу застосована
- Target завантаження таблиці з файлу або таблиці етапу після застосування трансформації
Деякі щоденні обов'язки ETL-тестера:
- Перевірте програмне забезпечення ETL
- Тестові компоненти сховища даних ETL
- Виконання тестів на основі даних на серверній частині
- Створювати, проектувати та виконувати тестові справи, плани тестування та тестові обв'язки
- Визначте проблеми та запропонуйте рішення для потенційних проблем
- Затвердити вимоги та ТУ
- Перевіряти передачу даних та тестувати плоскі файли
- Писати SQL-запити для різних сценаріїв, таких як тести підрахунку
Автоматизація тестування ETL
Загальна методологія ETL-тестування полягає у використанні SQL-скриптів або візуального «аналізу» даних. Ці підходи є трудомісткими, схильними до помилок і рідко забезпечують повну картину. покриття тестуЩоб пришвидшити виконання, покращити охоплення, зменшити витрати та покращити дефект виявлення у виробничому середовищі та середовищі розробки, автоматизація є потребою часу. Одним із таких інструментів є Informatica.
Сучасні команди також поєднують традиційну автоматизацію з помічниками на основі штучного інтелекту, які пропонують тести трансформації, генерують синтетичні вихідні дані та позначають відхилення схеми, що звільняє тестувальників від необхідності зосереджуватися на складній бізнес-логіці, а не на повторюваному обслуговуванні скриптів.
Найкращі методи тестування ETL
- Переконайтеся, що дані перетворено правильно.
- Без будь-якої втрати даних або їх скорочення, прогнозовані дані повинні бути завантажені до сховища даних.
- Переконайтеся, що програма ETL належним чином відхиляє недійсні дані, замінює їх значеннями за замовчуванням, де це можливо, та повідомляє про це.
- Переконайтеся, що дані завантажуються до сховища у встановлені та очікувані терміни, щоб перевірити масштабованість та продуктивність.
- Усі методи повинні мати відповідні модульні тести незалежно від видимості.
- Щоб виміряти свою ефективність, усі модульні тести повинні використовувати відповідні методи покриття.
- Прагніть до одного твердження на кожен тестовий випадок.
- Створити одиничні тести що спрямовані на винятки.
Перевіряти - Запитання та відповіді на співбесіді з тестування ETL





