Урок за тестване на ETL

Какво е ETL тестване?

ETL тестването се извършва, за да се гарантира, че данните, които са били заредени от източника до дестинацията след бизнес трансформацията, са точни. Това също така включва проверка на данни на различни средни етапи, които се използват между източника и местоназначението. ETL означава Extract-Transform-Load.

ETL тестване

Тестване на Data Warehouse

Тестване на Data Warehouse е метод за тестване, при който данните в хранилището на данни се тестват за цялостност, надеждност, точност и последователност, за да отговарят на рамката на данните на компанията. Основната цел на тестването на хранилище за данни е да се гарантира, че интегрираните данни в хранилището за данни са достатъчно надеждни, за да може компанията да взема решения.

Какво е 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 тестването се извършва на пет етапа

  1. Идентифициране на източници на данни и изисквания
  2. Събирането на данни
  3. Внедрете бизнес логика и моделиране на измеренията
  4. Изграждане и попълване на данни
  5. Изграждане на отчети

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

Видове ETL тестване

  1. Тестване за валидиране на производството
    Процес на тестване: „Балансиране на таблица“ или „съпоставяне на производството“ този тип ETL тестване се извършва върху данни, докато се преместват в производствени системи. За да подкрепите вашето бизнес решение, данните във вашите производствени системи трябва да са в правилния ред. Информатика Опцията за валидиране на данни предоставя възможности за автоматизиране и управление на тестването на ETL, за да гарантира, че производствените системи не са компрометирани от данните.
  2. Източник към Target Тестване (тестване за валидиране)
    Процес на тестване: Такъв тип тестване се извършва, за да се потвърди дали преобразуваните стойности на данните са очакваните стойности на данните.
  3. Приложение Upgrades
    Процес на тестване: Такъв тип ETL тестване може да се генерира автоматично, спестявайки значително време за разработване на тестове. Този тип тестване проверява дали данните, извлечени от по-старо приложение или хранилище, са точно същите като данните в хранилище или ново приложение.
  4. Тестване на метаданни
    Процес на тестване: Тестването на метаданни включва проверка на тип данни, проверка на дължина на данните и проверка на индекс/ограничение.
  5. Тестване за пълнота на данните
    Процес на тестване: За да се провери дали всички очаквани данни са заредени в целта от източника, се извършва тест за пълнота на данните. Някои от тестовете, които могат да бъдат изпълнени, са сравняване и валидиране на преброяване, агрегати и действителни данни между източника и целта за колони с проста трансформация или без трансформация.
  6. Тестване на точността на данните
    Процес на тестване: Това тестване се прави, за да се гарантира, че данните са точно заредени и трансформирани според очакванията.
  7. Тестване на трансформация на данни
    Процес на тестване: Извършва се тестова трансформация на данни, тъй като в много случаи не може да се постигне чрез писане на един източник SQL заявка и сравняване на изхода с целта. Може да се наложи да се изпълнят множество SQL заявки за всеки ред, за да се проверят правилата за трансформация.
  8. Тестване на качеството на данните
    Процес на тестване:

    Тестовете за качество на данните включват синтаксис и референтни тестове. За да се избегнат грешки поради дата или номер на поръчка по време на бизнес процес, се извършва тестване на качеството на данните.

    Тестове на синтаксиса: Той ще докладва мръсни данни, базирани на невалидни знаци, модел на знаци, неправилен ред с главни или малки букви и т.н.

    Референтни тестове: Ще проверява данните според модела на данни. Например: ID на клиента

    Тестването на качеството на данните включва проверка на номера, проверка на дата, проверка на точността, проверка на данни, нулева проверка и др.

  9. Инкрементално ETL тестване
    Процес на тестване: Това тестване се прави, за да се провери целостта на старите и новите данни с добавянето на нови данни. Постепенното тестване проверява дали вмъкванията и актуализациите се обработват според очакванията по време на постепенния ETL процес.
  10. Тестване на GUI/навигация
    Процес на тестване: Това тестване се прави, за да се проверят аспектите на навигацията или GUI на отчетите от предния край.

Как да създадете ETL тестов случай

ETL тестването е концепция, която може да се приложи към различни инструменти и бази данни в индустрията за управление на информация. Целта на ETL тестването е да се гарантира, че данните, които са били заредени от източника до дестинацията след бизнес трансформацията, са точни. Това също така включва проверка на данни на различни средни етапи, които се използват между източника и местоназначението.

Докато извършвате ETL тестване, два документа, които винаги ще се използват от ETL тестер, са

  1. Листове за картографиране на ETL:Листовете за картографиране на ETL съдържат цялата информация за таблиците източник и местоназначение, включително всяка колона и тяхното търсене в референтни таблици. ETL тестерите трябва да се справят добре със SQL заявките, тъй като ETL тестването може да включва писане на големи заявки с множество присъединявания за валидиране на данни на всеки етап от ETL. Листовете за картографиране на ETL предоставят значителна помощ при писане на заявки за проверка на данни.
  2. DB схема на източника, Target: Трябва да е под ръка, за да проверите всеки детайл в картографските листове.

ETL тестови сценарии и тестови случаи

  1. Проверка на документ за картографиране
    Тестови случаи: Проверете документа за съпоставяне дали е предоставена съответната ETL информация или не. Регистърът на промените трябва да се поддържа във всеки документ за картографиране.
  2. Утвърждаване
    Тестови случаи:

    1) Валидирайте структурата на изходната и целевата таблица спрямо съответния документ за съпоставяне.
    2) Типът на изходните данни и типът на целевите данни трябва да са еднакви
    3) Дължината на типовете данни както в източника, така и в целта трябва да е еднаква
    4) Проверете дали са посочени типовете и форматите на полетата за данни
    5) Дължината на изходния тип данни не трябва да е по-малка от дължината на целевия тип данни
    6) Проверете имената на колоните в таблицата спрямо документа за съпоставяне.

  3. Валидиране на ограничения
    Тестови случаи: Уверете се, че ограниченията са дефинирани за конкретна таблица, както се очаква
  4. Проблеми с последователността на данните
    Тестови случаи:

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

  5. Проблеми с пълнотата
    Тестови случаи:

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

  6. Проблеми с коректността
    Тестови случаи:

    1) Данни, които са с правописни грешки или неточно записани
    2) Нулеви, неуникални или извън обхват данни

  7. Трансформация
    Тестови случаи: Трансформация
  8. Качество на данните
    Тестови случаи:

    1) Проверка на номера: Необходимо е да се провери номерът и да се валидира
    2) Проверка на датата: Те трябва да следват формата на датата и тя трябва да е еднаква във всички записи
    3) Проверка на прецизността
    4) Проверка на данните
    5) Проверка за нула

  9. Нулева проверка
    Тестови случаи: Проверете нулевите стойности, където е посочено „Not Null“ за конкретна колона.
  10. Проверка на дубликат
    Тестови случаи:

    1) Необходимо е да се валидира уникалният ключ, първичният ключ и всяка друга колона трябва да е уникална, съгласно бизнес изискванията, ако има дублиращи се редове.
    2) Проверете дали съществуват дублиращи се стойности във всяка колона, която извлича от множество колони в източника и комбинира в една колона
    3) Съгласно изискванията на клиента, трябва да се гарантира, че няма дубликати в комбинация от множество колони само в рамките на целевата група.

  11. Валидиране на дата
    Тестови случаи: Стойностите на датата се използват за много области в разработката на ETL

    1) За да се знае датата на създаване на реда
    2) Идентифицирайте активните записи съгласно перспективата за разработване на ETL
    3) Идентифицирайте активните записи според гледната точка на бизнес изискванията
    4) Понякога актуализациите и вложките се генерират въз основа на стойностите на датите.

  12. Пълна проверка на данните
    Тестови случаи:

    1) Да се валидира пълният набор от данни в изходната и целевата таблица, без заявка в най-доброто решение
    2) Трябва да изчислим източника минус целта и целта минус източника
    3) Ако minus заявката върне някаква стойност, тя трябва да се счита за несъответстващи редове
    4) Необходимо е да се съпоставят редове между източника и целта, използвайки оператора intersect
    5) Броят, върнат от intersect, трябва да съвпада с индивидуалния брой на изходните и целевите таблици
    6) Ако минус връщанията на редове от заявката и броят на пресечните точки е по-малък от броя на изходната или целевата таблица, тогава можем да считаме, че съществуват дублиращи се редове.

  13. Чистота на данните
    Тестови случаи: Ненужните колони трябва да бъдат изтрити, преди да се заредят в етапната област.

Видове грешки в ETL

Видове грешки в ETL

Видове грешки Descriptйон
Грешки в потребителския интерфейс/козметични грешки • Свързано с графичния потребителски интерфейс на приложението
• Стил на шрифта, размер на шрифта, цветове, подравняване, правописни грешки, навигация и т.н.
Грешка, свързана с анализ на гранични стойности (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 тестване

  1. Уверете се, че данните са трансформирани правилно
  2. Без загуба на данни и съкращаване, проектираните данни трябва да бъдат заредени в хранилището на данни
  3. Уверете се, че ETL приложението правилно отхвърля и заменя със стойности по подразбиране и отчита невалидни данни
  4. Необходимо е да се гарантира, че данните се зареждат в хранилището на данни в рамките на предписаните и очаквани времеви рамки, за да се потвърди мащабируемостта и производителността
  5. Всички методи трябва да имат подходящи единични тестове, независимо от видимостта
  6. За да се измери тяхната ефективност, всички единични тестове трябва да използват подходящи техники за покритие
  7. Стремете се към едно твърдение на тестов случай
  8. Създаване на единични тестове които са насочени към изключения

Разгледайте - Въпроси и отговори за интервю за ETL тестване