Підручник з тестування ETL
Що таке тестування ETL?
Тестування ETL проводиться, щоб переконатися, що дані, завантажені з джерела до пункту призначення після трансформації бізнесу, є точними. Це також передбачає перевірку даних на різних проміжних етапах, які використовуються між джерелом і призначенням. ETL означає Extract-Transform-Load.
Тестування сховища даних
Тестування сховища даних це метод тестування, за якого дані в сховищі даних перевіряються на цілісність, надійність, точність і послідовність, щоб відповідати системі даних компанії. Основна мета тестування сховищ даних — переконатися, що інтегровані дані всередині сховища даних є достатньо надійними, щоб компанія могла приймати рішення.
Що таке ETL?
ETL означає Extract-Transform-Load і це процес завантаження даних із вихідної системи до сховища даних. Дані витягуються з бази даних OLTP, перетворюються відповідно до схеми сховища даних і завантажуються в базу даних сховища даних. Багато сховищ даних також включають дані з систем, що не є OLTP, наприклад текстові файли, застарілі системи та електронні таблиці.
Давайте подивимося, як це працює
Наприклад, є магазин роздрібної торгівлі, який має різні відділи, такі як продажі, маркетинг, логістика тощо. Кожен з них обробляє інформацію про клієнтів незалежно, і спосіб зберігання цих даних є зовсім іншим. Відділ продажів зберігає його за іменем клієнта, а відділ маркетингу за ідентифікатором клієнта.
Тепер, якщо вони хочуть перевірити історію клієнта та хочуть знати, які різні продукти він/вона придбав завдяки різним маркетинговим кампаніям; це було б дуже нудно.
Рішення полягає у використанні a Datawarehouse зберігати інформацію з різних джерел в єдиній структурі за допомогою ETL. ETL може перетворювати різні набори даних в єдину структуру.Later використовуйте інструменти BI, щоб отримати значущу інформацію та звіти з цих даних.
Наступна діаграма в цьому навчальному посібнику з тестування ETL надає вам ДОРОЖНЮ КАРТУ процесу тестування ETL і різні концепції тестування ETL:
1) Екстракт
- Витягніть відповідні дані
2) Перетворення
- Перетворення даних у формат DW (Data Warehouse).
- Ключі збірки – ключ – це один або кілька атрибутів даних, які унікально ідентифікують сутність. різноманітні типи ключів це первинний ключ, альтернативний ключ, зовнішній ключ, складений ключ, сурогатний ключ. Сховище даних володіє цими ключами і ніколи не дозволяє іншим особам призначати їх.
- Очищення даних: після того, як дані видобуто, вони переходять до наступної фази очищення та узгодження даних. Очищення робить пропуски в даних, а також визначає та виправляє помилки. Відповідність означає вирішення конфліктів між тими несумісними даними, щоб їх можна було використовувати в корпоративному сховищі даних. Окрім цього, ця система створює метадані, які використовуються для діагностики проблем вихідної системи та покращують якість даних.
3) Завантаження
- Завантажити дані в DW (Data Warehouse)
- Створення агрегатів – створення агрегату підсумовує та зберігає дані, доступні в таблиця фактів щоб покращити продуктивність запитів кінцевих користувачів.
Процес тестування ETL
Подібно до інших процесів тестування, ETL також проходить різні фази. Нижче наведено різні етапи процесу тестування ETL
Тестування ETL проводиться в п'ять етапів
- Визначення джерел даних і вимог
- Збір даних
- Впровадити бізнес-логіку та просторове моделювання
- Створення та заповнення даних
- Створення звітів
Типи тестування ETL
- Перевірка виробництва
Процес тестування: «Балансування таблиць» або «узгодження виробництва» – цей тип тестування ETL виконується на даних, які переміщуються у виробничі системи. Щоб підтримувати ваше бізнес-рішення, дані у ваших виробничих системах мають бути в правильному порядку. Інформатика Параметр перевірки даних забезпечує автоматизацію тестування ETL і можливості керування, щоб гарантувати, що виробничі системи не будуть скомпрометовані даними. - Джерело до Target Тестування (валідаційне тестування)
Процес тестування: Такий тип тестування виконується, щоб перевірити, чи є перетворені значення даних очікуваними значеннями даних. - додаток Upgrades
Процес тестування: Такий тип тестування ETL може бути створений автоматично, заощаджуючи значний час розробки тесту. Цей тип тестування перевіряє, чи дані, отримані зі старішої програми або сховища, точно відповідають даним у сховищі або новій програмі. - Тестування метаданих
Процес тестування: Тестування метаданих включає перевірку типу даних, перевірку довжини даних і перевірку індексів/обмежень. - Перевірка повноти даних
Процес тестування: Щоб переконатися, що всі очікувані дані завантажуються в ціль із джерела, проводиться перевірка повноти даних. Деякі з тестів, які можна виконати, це порівняння та перевірка підрахунків, агрегатів і фактичних даних між джерелом і цільовим для стовпців із простим перетворенням або без перетворення. - Тестування точності даних
Процес тестування: Це тестування виконується, щоб переконатися, що дані точно завантажуються та трансформуються, як очікувалося. - Тестування перетворення даних
Процес тестування: Тестування перетворення даних виконується, оскільки в багатьох випадках це неможливо досягти шляхом написання одного джерела SQL запит і порівняння результату з цільовим. Для перевірки правил перетворення може знадобитися запустити кілька запитів SQL для кожного рядка. - Тестування якості даних
Процес тестування:Тести якості даних включають синтаксичні та довідкові тести. Щоб уникнути будь-яких помилок через дату або номер замовлення під час бізнес-процесу проводиться тестування якості даних.
Перевірки синтаксису: повідомляється про брудні дані на основі недійсних символів, шаблону символів, неправильного порядку введення верхнього чи нижнього регістру тощо.
Довідкові тести: перевірятиме дані відповідно до моделі даних. Наприклад: ID клієнта
Тестування якості даних включає перевірку числа, перевірку дати, перевірку точності, перевірку даних, перевірку нульових значень тощо.
- Інкрементне тестування ETL
Процес тестування: Це тестування проводиться для перевірки цілісності старих і нових даних із додаванням нових даних. Поступове тестування перевіряє, чи вставки та оновлення обробляються належним чином під час поетапного процесу ETL. - GUI/тестування навігації
Процес тестування: Це тестування виконується для перевірки аспектів навігації або графічного інтерфейсу інтерфейсу звітів.
Як створити тестовий приклад ETL
Тестування ETL — це концепція, яка може бути застосована до різних інструментів і баз даних у галузі управління інформацією. Мета тестування ETL — переконатися, що дані, завантажені від джерела до місця призначення після трансформації бізнесу, є точними. Це також передбачає перевірку даних на різних проміжних етапах, які використовуються між джерелом і призначенням.
Під час виконання тестування ETL тестувальник ETL завжди використовуватиме два документи
- Аркуші відображення ETL:Аркуші зіставлення ETL містять усю інформацію про вихідні та цільові таблиці, включаючи кожен стовпець і їх пошук у довідкових таблицях. Тестери ETL повинні добре знати запити SQL, оскільки тестування ETL може передбачати написання великих запитів із кількома об’єднаннями для перевірки даних на будь-якому етапі ETL. Листи відображення ETL надають значну допомогу під час написання запитів для перевірки даних.
- Схема БД джерела, Target: Його слід тримати під рукою, щоб перевірити будь-які деталі в картографічних аркушах.
Сценарії та тестові сценарії ETL
- Відображення перевірки документа
Тестові випадки: Перевірте документ зіставлення, чи надано відповідну інформацію ETL. Журнал змін слід зберігати в кожному документі зіставлення. - Перевірка
Тестові випадки:1) Перевірте структуру вихідної та цільової таблиць на відповідність документу зіставлення.
2) Тип вихідних даних та тип цільових даних повинні бути однаковими
3) Довжина типів даних у джерелі та цільовому об'єкті має бути однаковою
4) Перевірте, чи вказані типи та формати полів даних
5) Довжина вихідного типу даних не повинна бути меншою за довжину цільового типу даних
6) Перевірте відповідність назв стовпців у таблиці документу зіставлення. - Перевірка обмежень
Тестові випадки: Переконайтеся, що обмеження визначено для конкретної таблиці, як очікувалося - Проблеми узгодженості даних
Тестові випадки:1) Тип даних та довжина для певного атрибута можуть відрізнятися у файлах або таблицях, хоча семантичне визначення однакове.
2) Зловживання обмеженнями цілісності - Проблеми повноти
Тестові випадки:1) Переконайтеся, що всі очікувані дані завантажено в цільову таблицю.
2) Порівняйте кількість записів між джерелом та цільовим об'єктом.
3) Перевірте наявність відхилених записів
4) Перевірте, чи не слід обрізати дані у стовпці цільових таблиць
5) Перевірте аналіз граничних значень
6) Порівнює унікальні значення ключових полів між даними, завантаженими в WH, та вихідними даними - Проблеми з правильністю
Тестові випадки:1) Дані, записані з орфографічними помилками або неточно
2) Нульові, неунікальні або дані поза діапазоном - Перетворення
Тестові випадки: Перетворення - Якість даних
Тестові випадки:1) Перевірка номера: Потрібно перевірити номер та підтвердити його
2) Перевірка дати: Вони повинні дотримуватися формату дати, і він має бути однаковим для всіх записів
3) Перевірка точності
4) Перевірка даних
5) Перевірка нуля - Нульова перевірка
Тестові випадки: Перевірте значення null, де для певного стовпця вказано «Not Null». - Перевірка дублікатів
Тестові випадки:1) Потрібно перевірити унікальний ключ, первинний ключ, і будь-який інший стовпець має бути унікальним, відповідно до бізнес-вимог, якщо є дублікати рядків.
2) Перевірте, чи існують дублікати значень у будь-якому стовпці, який витягується з кількох стовпців у джерелі та об'єднується в один стовпець
3) Відповідно до вимог клієнта, необхідно переконатися у відсутності дублікатів у поєднанні кількох стовпців лише в межах цільового об'єкта. - Перевірка дати
Тестові випадки: Значення дат використовуються для багатьох областей розробки ETL1) Щоб дізнатися дату створення рядка
2) Визначити активні записи відповідно до перспективи розробки ETL
3) Визначити активні записи відповідно до бізнес-вимог
4) Іноді на основі значень дат генеруються оновлення та вставки. - Повна перевірка даних
Тестові випадки:1) Перевірити повний набір даних у вихідній та цільовій таблиці без запиту в найкращому рішенні
2) Нам потрібно джерело мінус ціль і ціль мінус джерело
3) Якщо minus-запит повертає будь-яке значення, його слід вважати невідповідними рядками
4) Потрібно зіставити рядки між джерелом та цільовим елементами за допомогою оператора intersect
5) Кількість, що повертається intersect, має збігатися з окремими підрахунками вихідних та цільових таблиць
6) Якщо мінус кількість повернень запиту для рядків та кількість перетинів менша за кількість вихідних або цільових таблиць, то можна вважати, що існують дублікати рядків. - Чистота даних
Тестові випадки: Перед завантаженням у проміжну область слід видалити непотрібні стовпці.
Типи помилок ETL
Тип помилок | Опис |
---|---|
Помилки інтерфейсу користувача/косметичні помилки |
• Пов'язано з графічним інтерфейсом програми • Стиль шрифту, розмір шрифту, кольори, вирівнювання, орфографічні помилки, навігація тощо |
Помилка, пов’язана з аналізом граничних значень (BVA). | • Мінімальні та максимальні значення |
Помилка, пов’язана з розділенням класів еквівалентності (ECP). | • Дійсний та недійсний тип |
Помилки введення/виведення |
• Дійсні значення не приймаються • Приймаються недійсні значення |
Помилки розрахунків |
• Математичні помилки • Кінцевий результат неправильний |
Помилки умов завантаження |
• Не дозволяє роботу з кількома користувачами • Не дозволяє очікувати навантаження від клієнта |
Помилки умов гонки |
• Збій та зависання системи • Система не може запускати клієнтські платформи |
Помилки контролю версій |
• Немає збігу логотипів • Інформація про версію недоступна • Зазвичай це трапляється в Регресійне тестування |
H/W помилки | • Пристрій не відповідає на запити програми |
Довідка Джерело помилок | • Помилки в довідкових документах |
Різниця між тестуванням бази даних і тестуванням ETL
Тестування ETL | Тестування бази даних |
---|---|
Перевіряє, чи дані переміщуються належним чином | Основна мета — перевірити, чи відповідають дані правилам/стандартам, визначеним у моделі даних |
Перевіряє, чи збігаються підрахунки в джерелі та цілі
Перевіряє, чи перетворені дані відповідають очікуванням |
Переконайтеся, що немає жодних записів-сиріт і підтримуються зв’язки між зовнішнім і основним ключами |
Перевіряє, чи зв’язки зовнішнього первинного ключа зберігаються під час ETL | Перевіряє відсутність зайвих таблиць і оптимальну нормалізацію бази даних |
Перевіряє наявність дублікатів у завантажених даних | Перевірте, чи відсутні дані в необхідних стовпцях |
Обов'язки тестувальника ETL
Основні обов’язки тестувальника ETL поділяються на три категорії
- Поверховий стіл/ SFS або MFS
- Логіка трансформації бізнесу застосована
- Target завантаження таблиці з етапного файлу або таблиці після застосування перетворення.
Деякі з обов’язків ETL-тестера:
- Перевірте програмне забезпечення ETL
- Тестові компоненти сховища даних ETL
- Виконайте тест на базі даних
- Створювати, проектувати та виконувати тестові справи, тестові плани та тестовий джгут
- Визначте проблему та запропонуйте рішення для потенційних проблем
- Затвердити вимоги та ТУ
- Передача даних і тестовий плоский файл
- Написання SQL-запитів3 для різних сценаріїв, таких як тест підрахунку
Тестування продуктивності в ETL
Тестування продуктивності в ETL це техніка тестування, щоб переконатися, що система ETL справляється з навантаженням кількох користувачів і транзакцій. Основна мета ETL Тестування продуктивності полягає в оптимізації та покращенні продуктивності сеансу шляхом виявлення та усунення вузьких місць продуктивності. Вихідна та цільова бази даних, відображення, сеанси та система, можливо, мають вузькі місця продуктивності.
Одним із найкращих інструментів для тестування/налаштування продуктивності є Informatica.
Автоматизація тестування ETL
Загальна методологія тестування ETL полягає у використанні сценаріїв SQL або «перегляду» даних. Ці підходи до тестування ETL займають багато часу, схильні до помилок і рідко забезпечують повну покриття тесту. Прискорити, покращити покриття, зменшити витрати, покращити Дефект Раціон виявлення тестування ETL у середовищі виробництва та розробки, автоматизація є вимогою часу. Одним із таких інструментів є Informatica.
Найкращі методи тестування ETL
- Переконайтеся, що дані трансформовано правильно
- Без будь-яких втрат і скорочення даних проектовані дані повинні бути завантажені в сховище даних
- Переконайтеся, що програма ETL належним чином відхиляє та замінює значення за замовчуванням і повідомляє про недійсні дані
- Потрібно переконатися, що дані завантажуються в сховище даних протягом встановлених і очікуваних часових рамок, щоб підтвердити масштабованість і продуктивність
- Усі методи повинні мати відповідні модульні тести незалежно від видимості
- Для вимірювання ефективності всі модульні тести повинні використовувати відповідні методи покриття
- Прагніть до одного твердження на тест
- Створити одиничні тести які націлені на винятки
Перевіряти - Запитання та відповіді на співбесіді з тестування ETL