Підручник з тестування ETL

⚡ Розумний підсумок

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

  • 🎯 Визначення ETL-тестування: Verify data integrity across Extract, Transform, and Load stages between source and target systems.
  • 🔁 Фази процесу: Визначте джерела, отримайте дані, застосуйте бізнес-логіку та вимірне моделювання, а потім створіть звіти та створіть сукупність даних.
  • 🧪 Типи тестування: Валідація продукції, перевірка від джерела до цільового об'єкта, метадані, повнота, точність, трансформація та інкрементне тестування.
  • 🐞 Категорії помилок: Дефекти інтерфейсу користувача, аналізу граничних значень, розподілу еквівалентності, обчислення, навантаження, стану змагання та контролю версій.
  • 🤖 Фокус автоматизації: Такі інструменти, як Informatica та скрипти на основі штучного інтелекту, зменшують ручну роботу та розширюють охоплення тестами.
  • Кращі практики: Перевіряйте трансформації, вибирайте винятки, забезпечуйте покриття та підтверджуйте масштабовані часові рамки завантаження.

Підручник з тестування ETL

Що таке ETL?

ETL стенди для Extract-Transform-Load, and it describes how data moves from a source system into a data warehouse. Data is extracted from an OLTP database, transformed to match the data warehouse schema, and loaded into the warehouse database. Many warehouses also incorporate data from non-OLTP systems such as text files, legacy applications, and spreadsheets.

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

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

На наступній діаграмі показано процес тестування ETL та основні концепції, які ви використовуватимете в цьому посібнику:

Extract-Transform-Load

1) Extract

  • Extract relevant data from one or more source systems.

2) Перетворення

  • Трансформувати дані у формат DW (сховище даних).
  • Ключі збірки: ключ — це один або декілька атрибутів даних, які однозначно ідентифікують сутність. Різні типи ключів це первинний ключ, альтернативний ключ, зовнішній ключ, складений ключ та сурогатний ключ. Сховище даних володіє цими ключами та ніколи не дозволяє жодній іншій сутності призначати їх.
  • Cleansing of data: after the data is extracted, it moves into the next phase of cleaning and conforming. Cleaning fixes omissions and identifies errors. Conforming resolves conflicts between incompatible data sets so they can be used in an enterprise data warehouse. The system also creates metadata that helps diagnose source system problems and improve data quality.

3) Завантаження

  • Завантаження даних у сховище даних (DW).
  • Створення агрегатів: агрегат підсумовує та зберігає дані з таблиця фактів для покращення продуктивності запитів кінцевих користувачів.

Що таке тестування ETL?

ETL Testing is performed to ensure that the data loaded from a source to a destination, after business transformation, is accurate. It also involves the verification of data at the various middle stages between source and destination. Because ETL stands for Extract-Transform-Load, ETL Testing covers each of these three stages and the points where data crosses between them.

Тестування ETL

Чому важливе ETL-тестування?

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

Наступні пункти пояснюють практичну цінність надійного ETL-тестування:

  • Точність даних: It confirms that values transformed by business rules match the documented mapping specifications, preventing silent corruption.
  • Надійна звітність: Панелі інструментів та інструменти бізнес-аналітики залежать від сховища даних, тому перевірені ETL-конвеєри захищають кожен звіт та ключовий показник ефективності (KPI) для подальшого виконання.
  • Відповідність законодавству: Такі галузі, як банківська справа, охорона здоров'я та страхування, повинні довести, що походження та цілісність даних зберігаються від початку до кінця.
  • Зменшення кількості повторної роботи: Виявлення дефектів у середовищах нижчого рівня дозволяє уникнути дороговартісного перезавантаження виробництва, ручного звірення та помилок, з якими стикаються клієнти.
  • Гарантія виконання: ETL-тестування вимірює вікна навантаження, пропускну здатність та вузькі місця, щоб сховище даних продовжувало масштабуватися зі зростанням обсягу даних.

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

Процес тестування ETL

Подібно до інших процесів тестування, ETL також проходить різні фази. Різні фази процесу тестування ETL такі:

Процес тестування ETL

Тестування ETL виконується у п'ять етапів:

  1. Визначення джерел даних і вимог
  2. Збір даних
  3. Впроваджуйте бізнес-логіку та розмірне моделювання
  4. Створення та заповнення даних
  5. Створення звітів

Процес тестування ETL

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

Типи тестування ETL

  1. Перевірка виробництва
    Процес тестування: Також відомий як «балансування таблиць» або «узгодження виробництва», цей тип ETL-тестування виконується для даних під час їх переміщення у виробничі системи. Для підтримки бізнес-рішень виробничі дані повинні бути в правильному порядку. Інформатика Опція перевірки даних (Data Validation Option) забезпечує можливості автоматизації та управління ETL-тестуванням, щоб виробничі системи не були скомпрометовані неправильними даними.
  2. Джерело до Target Тестування (валідаційне тестування)
    Процес тестування: Цей тип тестування перевіряє, чи відповідають перетворені значення даних очікуваним цільовим значенням.
  3. додаток Upgrades
    Процес тестування: This type of ETL Testing can be automatically generated, saving substantial test development time. It checks whether data extracted from an older application or repository matches the data in a new application or repository.
  4. Тестування метаданих
    Процес тестування: Тестування метаданих включає перевірку типу даних, перевірку довжини даних та перевірку індексів або обмежень.
  5. Перевірка повноти даних
    Процес тестування: Перевірка повноти даних перевіряє, чи всі очікувані дані завантажено з джерела в ціль. Звичайні тести включають порівняння та перевірку кількості записів, агрегатів та фактичних даних між вихідними та цільовими стовпцями, коли перетворення просте або відсутнє.
  6. Тестування точності даних
    Процес тестування: Це тестування гарантує, що дані завантажуються та трансформуються належним чином.
  7. Тестування перетворення даних
    Процес тестування: Трансформацію тестових даних часто неможливо досягти з одного джерела SQL запит та порівняння результатів. Для перевірки правил перетворення для кожного рядка може знадобитися кілька SQL-запитів.
  8. Тестування якості даних
    Процес тестування:

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

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

    Довідкові тести перевіряють дані на відповідність моделі даних. Наприклад: Ідентифікатор клієнта.

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

  9. Покрокове тестування ETL
    Процес тестування: Це тестування перевіряє цілісність старих та нових даних із додаванням нових даних. Інкрементне тестування перевіряє, чи вставки та оновлення обробляються належним чином під час інкрементного процесу ETL.
  10. GUI/тестування навігації
    Процес тестування: Це тестування перевіряє аспекти навігації та графічного інтерфейсу у звітах фронтенду.

Як створити тестовий приклад ETL

ETL-тестування – це концепція, яку можна застосовувати до різних інструментів та баз даних в галузі управління інформацією. Мета ETL-тестування полягає в тому, щоб переконатися, що дані, завантажені з джерела до місця призначення після трансформації бізнесу, є точними. Це також включає перевірку даних на різних проміжних етапах між джерелом та місцем призначення.

Під час виконання ETL-тестування ETL-тестер завжди використовує два документи:

  1. ETL mapping аркуші: An ETL mapping sheet contains all the information of source and destination tables, including each column and its look-up in reference tables. ETL testers must be comfortable with SQL queries because ETL Testing may involve writing big queries with multiple joins to validate data at any stage. ETL mapping sheets give significant help while writing queries for data verification.
  2. Схема БД джерела та цільової бази даних: It should be kept handy to verify any detail in the mapping аркуші.

Сценарії та тестові сценарії ETL

  1. картаping doc validation
    Тестові випадки: Verify whether the corresponding ETL information is provided in the mapping doc. A change log should be maintained in every mapping док.
  2. Перевірка
    Тестові випадки:

    1) Validate the source and target table structure against the corresponding mapping док.
    2) Тип вихідних даних та тип цільових даних повинні бути однаковими.
    3) Довжина типів даних у джерелі та цільовому об'єкті має бути однаковою.
    4) Перевірте, чи вказані типи та формати полів даних.
    5) Довжина вихідного типу даних не повинна бути меншою за довжину цільового типу даних.
    6) Validate the names of columns in the table against the mapping док.

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

    1) Тип даних та довжина певного атрибута можуть відрізнятися між файлами або таблицями, навіть якщо семантичне визначення однакове.
    2) Зловживання обмеженнями цілісності.

  5. Проблеми повноти
    Тестові випадки:

    1) Переконайтеся, що всі очікувані дані завантажено в цільову таблицю.
    2) Порівняйте кількість записів між джерелом та цільовим об'єктом.
    3) Перевірте наявність відхилених записів.
    4) Перевірте, чи не обрізані дані у стовпцях цільових таблиць.
    5) Перевірте аналіз граничних значень.
    6) Порівняйте унікальні значення ключових полів між даними, завантаженими до сховища, та вихідними даними.

  6. Проблеми з правильністю
    Тестові випадки:

    1) Дані, записані з орфографічними помилками або неточно.
    2) Нульові, неунікальні або дані поза діапазоном.

  7. Перетворення
    Тестові випадки: Validate that every business rule and transformation logic in the mapping document is correctly applied to the source data before it lands in the target.
  8. Якість даних
    Тестові випадки:

    1) Перевірка чисел: перевірка числових форматів та значень.
    2) Перевірка дати: дати повинні відповідати єдиному формату та бути узгодженими в усіх записах.
    3) Перевірка точності.
    4) Перевірка даних.
    5) Перевірка на нуль.

  9. Нульова перевірка
    Тестові випадки: Перевірте значення null, де для певного стовпця вказано «Not Null».
  10. Перевірка дублікатів
    Тестові випадки:

    1) Перевірте унікальний ключ, первинний ключ та будь-який інший стовпець, який має бути унікальним згідно з бізнес-вимогами, щоб підтвердити відсутність дублікатів рядків.
    2) Check if any duplicate values exist in any column extracted from multiple source columns and combined into one column.
    3) Відповідно до вимог клієнта, переконайтеся, що в комбінації кількох стовпців у цільовому об'єкті немає дублікатів.

  11. Перевірка дати
    Тестові випадки: Значення дат використовуються в багатьох сферах розробки ETL:

    1) Щоб дізнатися дату створення рядка.
    2) Визначити активні записи з точки зору розробки ETL.
    3) Визначити активні записи з точки зору бізнес-вимог.
    4) Іноді на основі значень дат генеруються оновлення та вставки.

  12. Повна перевірка даних
    Тестові випадки:

    1) Перевірте повний набір даних у вихідній та цільовій таблицях, використовуючи мінус-запит як найкраще рішення.
    2) Вам потрібно виконати обчислення джерело мінус ціль та ціль мінус джерело.
    3) Якщо запит мінус повертає будь-яке значення, ці рядки слід вважати невідповідними.
    4) Зіставте рядки між джерелом та цільовим елементами за допомогою оператора intersect.
    5) Кількість, що повертається функцією intersect, має збігатися з окремими підрахунками вихідної та цільової таблиць.
    6) Якщо мінус-запит повертає рядки, а кількість перетинів менша за кількість джерела або цілі, існують дублікати рядків.

  13. Чистота даних
    Тестові випадки: Перед завантаженням у проміжну область слід видалити непотрібні стовпці.

Типи помилок ETL

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

Типи помилок ETL

Тип помилок Опис
Помилки інтерфейсу користувача/косметичні помилки • Пов'язано з графічним інтерфейсом програми
• Стиль шрифту, розмір шрифту, кольори, вирівнювання, орфографічні помилки, навігація тощо
Помилка, пов’язана з аналізом граничних значень (BVA). • Мінімальні та максимальні значення
Помилка, пов’язана з розділенням класів еквівалентності (ECP). • Дійсний та недійсний тип
Помилки введення/виведення • Дійсні значення не приймаються
• Приймаються недійсні значення
Помилки розрахунків • Математичні помилки
• Кінцевий результат неправильний
Помилки умов завантаження • Не дозволяє роботу з кількома користувачами
• Не дозволяє навантаження, очікуване клієнтом
Помилки умов гонки • Збій та зависання системи
• Система не може запускати клієнтські платформи
Помилки контролю версій • Немає збігу логотипів
• Інформація про версію недоступна
• Зазвичай трапляється в Регресійне тестування
H/W помилки • Пристрій не відповідає на запити програми
Довідка Джерело помилок • Помилки в довідкових документах

Тестування сховища даних

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

Різниця між тестуванням бази даних і тестуванням ETL

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

Тестування ETL Тестування бази даних
Перевіряє, чи дані переміщено належним чином. Основна мета — перевірити, чи відповідають дані правилам і стандартам, визначеним у моделі даних.
Перевіряє, чи збігаються підрахунки у джерелі та цільовому об'єкті, і чи відповідають перетворені дані очікуванням. Перевіряє відсутність осиротілих записів та підтримку зв'язків між зовнішнім та первинним ключами.
Перевіряє, чи зберігаються зв'язки зовнішніх первинних ключів під час ETL. Перевіряє відсутність надлишкових таблиць та оптимальну нормалізацію бази даних.
Перевіряє наявність дублікатів у завантажених даних. Перевіряє, чи відсутні дані в стовпцях, де це необхідно.

Тестування продуктивності в ETL

Тестування продуктивності в ETL – це метод тестування, який гарантує, що система ETL може обробляти навантаження від кількох користувачів і транзакцій. Основна мета ETL Тестування продуктивності is to optimize and improve session performance by identifying and eliminating performance bottlenecks. The source and target databases, mappings, sessions, and the system itself can all contain bottlenecks.

Одним з найкращих інструментів, що використовуються для тестування та налаштування продуктивності, є Informatica.

Обов'язки тестувальника ETL

Ключові обов'язки ETL-тестера поділяються на три категорії:

  • Сценічний стіл / SFS або MFS
  • Логіка трансформації бізнесу застосована
  • Target завантаження таблиці з файлу або таблиці етапу після застосування трансформації

Деякі щоденні обов'язки ETL-тестера:

  • Перевірте програмне забезпечення ETL
  • Тестові компоненти сховища даних ETL
  • Виконання тестів на основі даних на серверній частині
  • Створювати, проектувати та виконувати тестові справи, плани тестування та тестові обв'язки
  • Визначте проблеми та запропонуйте рішення для потенційних проблем
  • Затвердити вимоги та ТУ
  • Перевіряти передачу даних та тестувати плоскі файли
  • Писати SQL-запити для різних сценаріїв, таких як тести підрахунку

Автоматизація тестування ETL

Загальна методологія ETL-тестування полягає у використанні SQL-скриптів або візуального «аналізу» даних. Ці підходи є трудомісткими, схильними до помилок і рідко забезпечують повну картину. покриття тестуЩоб пришвидшити виконання, покращити охоплення, зменшити витрати та покращити дефект виявлення у виробничому середовищі та середовищі розробки, автоматизація є потребою часу. Одним із таких інструментів є Informatica.

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

Найкращі методи тестування ETL

  1. Переконайтеся, що дані перетворено правильно.
  2. Без будь-якої втрати даних або їх скорочення, прогнозовані дані повинні бути завантажені до сховища даних.
  3. Переконайтеся, що програма ETL належним чином відхиляє недійсні дані, замінює їх значеннями за замовчуванням, де це можливо, та повідомляє про це.
  4. Переконайтеся, що дані завантажуються до сховища у встановлені та очікувані терміни, щоб перевірити масштабованість та продуктивність.
  5. Усі методи повинні мати відповідні модульні тести незалежно від видимості.
  6. Щоб виміряти свою ефективність, усі модульні тести повинні використовувати відповідні методи покриття.
  7. Прагніть до одного твердження на кожен тестовий випадок.
  8. Створити одиничні тести що спрямовані на винятки.

Перевіряти - Запитання та відповіді на співбесіді з тестування ETL

Поширені запитання

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

Common challenges include large data volumes, frequent schema changes, missing test data, undocumented business rules, complex transformations, and performance constraints. Strong mapping documents, automation, and reusable validation queries reduce these risks significantly.

Популярні інструменти включають Інформатика Варіант перевірки даних, QuerySurge, Talend, IBM InfoSphere DataStage та утиліти з відкритим кодом, такі як DBT-тести. Правильний вибір залежить від платформи сховища, бюджету та необхідної глибини автоматизації.

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

Yes. AI assistants can read mapping documents, infer transformation rules, and produce SQL validation scripts automatically. Testers still review the generated cases for business accuracy, but generation time often drops from hours to minutes for repetitive checks.

Підсумуйте цей пост за допомогою: