Тестването на извличането, преобразуването и натоварването (Extract Transform Load testing) – най-често наричано ETL тестване – е важен инструмент в света на съвременната бизнес информация и анализа на данни.
Екипите трябва да събират данни от различни източници, за да могат да ги съхраняват в складове за данни или да ги подготвят за инструментите си за бизнес разузнаване, за да подпомогнат вземането на качествени решения или прозрения. Тестването на ETL помага да се гарантира, че процесите, данните и прозренията са в крак с времето и са готови да подкрепят бизнеса.
Нека да разгледаме какво представлява тестването на Extract Transform Load и как работи, преди да споделим някои от различните подходи и инструменти, които можете да използвате за тестване на ETL.
Какво е Extract-Transform-Load,
и как работи?
Извличането, трансформирането и зареждането (ETL) е ключова концепция в областта на складовете за данни и анализите. По същество ETL описва процеса на събиране на данни от различни източници и централизирането им в склад за данни или езеро от данни.
Нека да разделим процеса ETL на съставните му части, за да го разберете по-ясно.
1. Извлечение:
Данните се извличат от различни източници. Тези източници могат да бъдат съществуваща база данни, ERP или CRM приложение, електронни таблици, уеб услуги или различни файлове.
2. Преобразуване:
След като извлечете данните, трябва да ги трансформирате, така че да са подходящи за съхранение или анализ. Процесът може да включва почистване и нормализиране на данните и преобразуването им в подходящ формат.
3. Натоварване:
Последната част от процеса се състои в зареждане на данни в целевата система. Тази целева система може да бъде склад за данни, езеро от данни или друго хранилище.
Макар че ETL съществува от 70-те години на миналия век, напоследък значението му нараства поради по-широкото използване от страна на бизнес общностите на системи, базирани на облаци, данни в реално време, анализи и инструменти за ML/AI.
Какво представлява ETL тестването?
Тестването на ETL е вид тестване на обработката на данни, което проверява дали данните, събрани от един източник, са били точно предадени на местоназначението им. Както ще прочетете по-горе, след като данните са извлечени, те трябва да бъдат трансформирани в съответствие с бизнес изискванията. Тази трансформация понякога може да доведе до проблеми с данните. Подходът за тестване на ETL помага да се гарантира, че данните са надеждни и точни.
Тестването на ETL е вид тестване на „черна кутия“, тъй като валидира процеса на обмен, преобразуване и зареждане чрез сравняване на входните данни с изходните. Всъщност тя се фокусира върху това какво прави системата в отговор на различни входни данни, а не върху начина, по който постига тези резултати. В определени ситуации обаче тестващите ще гледат какво се случва вътре в кутията, особено когато се появят неочаквани сценарии.
Как се трансформира екстрактът
тестване на натоварването?
Най-лесният начин да обясним как работи ETL тестването е да го разделим на съставните му части: извличане, преобразуване и зареждане. Оттук можете да разберете различните елементи на валидирането на ETL, преди да разбием етапите по-подробно.
1. Извлечение
Тестването на ETL потвърждава, че данните, извлечени от източника, са точни и без грешки. Този процес включва проверка на точността на основните стойности и гарантиране на пълнотата на данните.
Друга част от процеса включва профилиране на данни. Този процес се състои от разбиране на структурата, съдържанието и качеството на изходните данни. Идеята тук е да откриете всякакви аномалии, несъответствия или потенциални проблеми при картографирането.
2. Трансформиране на
Следващата част от процеса е свързана със стриктно спазване на правилата за преобразуване на данни. Един от основните подходи тук е тестването на логиката на трансформация спрямо разпоредби, закони и други бизнес правила.
Някои от типичните тестове тук включват проверка дали данните се конвертират в очакваните формати, дали изчисленията са точни и дали справките за търсене свързват елементи между набори от данни.
Качеството на данните също се взема под внимание. Тестерите трябва да открият и премахнат несъответствията във форматирането и дублиранията, както и да разрешат всички противоречиви данни, докато прилагат процеси за изчистване на данни.
Накрая се тества и общата производителност, за да се установи как процесът ETL се влияе от големите обеми данни.
3. Зареждане
И накрая, когато данните се зареждат в хранилището за данни, езерото от данни или друга крайна цел, тестерите трябва да проверят дали те са пълни, точни и представени в правилния формат.
Извършват се сравнения, за да се провери дали по пътя между източника, зоната за съхранение и целите не са изгубени или повредени данни.
И накрая, проверяват се одиторските пътеки, за да се проследи дали процесът проследява всички промени, които настъпват по време на процеса ETL, и се проверява дали са налице история и метаданни.
Този раздел трябва да ви даде основна представа за това как се извършват проверките на качеството на данните в ETL. Ще забележите, че тестовете се провеждат на всеки етап от предаването на данни, тъй като това е най-добрият начин за идентифициране и решаване на конкретни проблеми.
Въпреки това, за да разберете по-добре концепциите за ETL тестване, трябва да разгледате различните видове ETL тестване и етапите, на които се прилагат. Следващите два раздела ще предоставят тази информация и ще ви помогнат да получите пълната картина, от която се нуждаете.
Различни видове ETL тестване
При тестването на ETL има много различни видове валидиране. Те се използват при различни сценарии и за широк спектър от цели. Нека разгледаме видовете ETL тестове и къде и кога трябва да ги използвате.
1. Тестване за валидиране на изходните данни
Значение:
Тестването за валидиране на изходните данни гарантира, че изходните данни са висококачествени и последователни, преди да бъдат извлечени за преобразуване.
Какво проверява:
- Спазват ли данните бизнес правилата?
- Съответстват ли типовете и форматите на данните на очакванията?
- Попадат ли данните във валидни диапазони?
- Има ли нулеви или липсващи стойности на неочаквани места?
2. Изпитване за съгласуване на данните от източника към целта
Значение:
Този тип тестване потвърждава дали всички данни от даден източник са извлечени, трансформирани и заредени в целевата система.
Какво проверява:
- Загубени ли са данни по време на процеса ETL?
- Дублирани ли са данни по време на процеса ETL?
3. Тестване на трансформацията на данни
Значение:
Трансформациите на данни могат да включват много различни неща, като например промени във формата, изчисления, агрегации и т.н. Тестването на трансформацията на данни проверява дали трансформациите са извършени по предназначение.
Какво проверява:
- Дали данните отговарят на очакванията след трансформациите?
- Правилно ли е въведена бизнес логиката по време на трансформациите?
- Дали изчисленията, извършени по време на преобразуването, дават правилния резултат?
4. Тестване за валидиране на данните
Значение:
Тества се дали крайните данни съответстват на бизнес изискванията след преобразуването им.
Какво проверява:
- Спазват ли се стандартите за качество на данните (т.е. точност, пълнота)?
- Спазват ли се бизнес правилата?
5. Тестване на референтната цялост на ETL
Значение:
Потвърждава, че връзките между таблиците в изходните данни са точно възпроизведени в целевите данни.
Какво проверява:
- Съвпадат ли външните ключове в данните със съответните първични ключове?
- Запазват ли се връзките между подчинените и родителските таблици след ETL?
6. Тестване на интеграцията
Значение:
Тестовете за интеграция потвърждават дали процесът ETL се интегрира и функционира в рамките на по-голямата екосистема от данни.
Какво проверява:
- Работят ли безпроблемно потоците от данни от край до край?
- Доколко добре процесът ETL взаимодейства с другите системи, като източника, целта или други приложения надолу по веригата, които разчитат на данните?
7. Изпитване на ефективността
Значение:
Тестването на производителността на ETL оценява доколко ефикасен е процесът ETL, когато е подложен на натиск, например голямо натоварване.
Какво проверява:
- Отговаря ли времето за обработка на ETL на бизнес изискванията или критериите?
- Може ли процесът ETL да се мащабира в отговор на нарастващите обеми данни?
- Има ли процесът на ETL някакви ограничения на ресурсите или тесни места, които трябва да бъдат преодолени?
8. Функционално тестване
Значение:
Функционалното тестване потвърждава дали процесът ETL отговаря на изискванията на проекта от гледна точка на потребителя.
Какво проверява:
- Съответстват ли резултатите на заявените бизнес изисквания?
- Генерират ли отчетите точни резултати?
- Информационните табла показват ли очакваните данни?
9. Регресионно тестване
Значение:
Процесите на ETL са много сложни, с много взаимосвързани данни. Дори малки промени в процеса могат да повлияят на продукцията при източника. Регресионното тестване е от съществено значение за идентифицирането на тези неочаквани резултати.
Какво проверява:
- Дали промените в кода или основните данни внезапно предизвикват неблагоприятни ефекти?
- Дали промените са имали желания ефект върху подобряването на процеса ETL?
Струва си да се отбележи, че в този списък можем да включим и тестването на единици. Вместо това обаче сме включили съставните части, които тестването на единици би обхванало, като например тестване на валидирането на източника, тестване на съгласуването на данните от източника с целевите данни и т.н.
8 етапа на ETL тестване с
8 експертни съвета за успех
Добре, сега, когато разбрахте различните видове валидиране при тестването на ETL, е време да обединим всичко това. Тестването на ETL обикновено се извършва с многоетапен подход, който ще представим по-долу.
#1. Събиране на бизнес изисквания
Първият етап от всеки процес на тестване включва събиране на изисквания. Тестерите трябва да постигнат консенсус относно това, което процесът ETL трябва да осигури. Някои въпроси, на които трябва да се отговори на този ранен етап, са:
- Как ще се използват данните?
- Какви изходни формати са необходими?
- Какви са очакванията за изпълнението?
- Какви разпоредби, закони или фирмени политики уреждат използването на данните?
Съвет на експерта:
Въпреки че спазването на изискванията е задължително, ETL тестерите трябва да използват своите знания и опит, за да търсят проактивно потенциални проблеми, несъответствия или грешки в началото на процеса. Много по-лесно е да се идентифицират и отстранят проблемите на ранен етап и това отнема много по-малко време.
#2. Идентифициране и валидиране на източници на данни
ЕТЛ се занимава с извличане на данни от различни източници на данни, като например ERP или CRM инструменти, приложения, други бази данни, електронни таблици и т.н. Тестващите трябва да потвърдят, че необходимите данни са достъпни, структурирани са правилно и са достатъчно качествени, за да се използват по предназначение.
Съвет на експерта:
Изходните данни в реалните системи обикновено са разхвърляни. Изготвянето на подробни доклади за профилиране на данните е от ключово значение на този етап, за да се гарантира идентифицирането на липсващи стойности, проблеми с формата, аномалии и други несъответствия, които искате да запазите от логиката на преобразуване.
#3. Написване на тестови случаи
След като имате бизнес изискванията и докладите за профилиране на данни, е време да създадете тестовите случаи, необходими за проверка на процеса ETL. Случаите за тестване трябва да включват функционални тестове, както и крайни случаи и всички области, които сте определили като такива с висок риск от неуспех.
Съвет на експерта:
Тестването на единични трансформации е добро, но изграждането на тестови случаи, които разбират как данните се влияят, докато се предават през целия ETL тръбопровод, е по-добро.
#4. Изпълнение на тестови случаи
Сега е време да приложите тестовите си случаи. Тестващите трябва да направят всичко възможно да симулират реални условия или, когато е възможно, да използват реални условия.
Съвет на експерта:
Инструментите за автоматизирано тестване на ETL са от съществено значение тук. Възможността за създаване на последователни и възпроизводими тестове спестява огромно количество време и усилия. Нещо повече, тестването на ETL е постоянно изискване, тъй като източниците на данни се актуализират или се правят промени в самия процес на ETL.
#5. Генериране на отчети
След като извършите тестовете си, трябва да документирате вярно резултатите си. Запишете резултатите си и включете:
- Успехи
- Неуспехи
- Отклонения от очакванията
- Какви поправки или промени трябва да се направят
Тези доклади не само потвърждават състоянието на вашата система. Те също така ще предоставят график за всички поправки, които трябва да направите, като същевременно предоставят важна информация, необходима за оптимизиране на процеса ETL.
Съвет на експерта:
Докладите са предназначени за всички, включително и за нетехнически заинтересовани страни. Стремете се да намалите жаргона и прекалено техническите понятия и използвайте визуални обобщения като графики, диаграми и други, за да обясните процеса.
#6. Повторно тестване за грешки и дефекти
След това трябва да проверите дали грешките и дефектите, открити по време на изпълнението на тестовете, са отстранени. Освен това трябва да потвърдите, че всички промени, въведени по време на този процес, не са довели до нови проблеми.
Съвет на експерта:
Тестването за регресия е от решаващо значение на този етап, тъй като процесът ETL е сложен и взаимосвързан. Една поправка може да доведе до непредвидени и напълно неочаквани последици за целия процес на ETL.
#7. Окончателни доклади
Окончателните доклади предоставят подробно обобщение на процеса на тестване на ETL. Подчертайте областите на успех и всички области, които изискват допълнителна работа. И накрая, направете цялостна оценка на качеството и надеждността на данните от ETL.
Съвет на експерта:
Окончателният ви доклад не е просто запис. Добре написаните и добре структурирани тестови доклади ще станат част от производствената документация и ще помогнат да се гарантира, че процесът ETL се подобрява и оптимизира постоянно.
#8. Приключване на отчетите
И накрая, след като докладите бъдат представени и разбрани от различните заинтересовани страни, те трябва да бъдат официално приети. Докладите трябва да съдържат ясен план за всички елементи, които трябва да бъдат разрешени, или за по-нататъшни действия, които трябва да бъдат предприети.
Съвет на експерта:
Въпреки че затварянето на отчетите е силен знак, че процесът на ETL е достигнал приемливо ниво, не трябва да забравяте, че тази работа никога не е напълно завършена. Непрекъснатото усъвършенстване и реагиране на промени в изходните данни, хардуера или дори в променящите се бизнес правила означава, че всяко приемане е само етап от един непрекъснат процес.
Извлечете трансформацията на тестовете за натоварване
Цялостният процес на тестване на ETL е от съществено значение за екипите и продуктите, които разчитат на анализи на данни. Нека разгледаме ползите, които можете да извлечете, когато се ангажирате с подход за тестване на ETL.
1. Точност и цялост на данните
Основната концепция на валидирането на ETL е да се гарантира, че получавате чисти и надеждни данни в хранилището си за данни. Правилният подход за тестване на ETL означава:
- Не губите данни по време на извличането
- Вашите трансформации не съдържат грешки
- Данните достигат до целевата система, както сте предвидили.
2. Спестяване на време и пари
Тестването на ETL в хранилището за данни е важно, тъй като позволява ранно откриване на грешки. Много по-желателно е да се идентифицират и отстранят проблемите с данните на ранен етап, отколкото да се решават проблеми, когато конят е избягал от конюшнята. Според Gartner лошото качество на данните струва на екипите средно 13 милиона долара всяка година. Започнете ETL тестването на ранен етап и ще спестите време и пари.
3. Изпълнение
Лошите ETL процеси могат да затруднят системите ви за данни и да намалят качеството на анализите, отчетите и вземането на решения. Добрият процес на тестване на ETL ви помага да се придържате към правилния път, като идентифицира тесните места в данните и други области, които се нуждаят от подобрение.
4. Съответствие
За финансовите институции и доставчиците на здравни услуги съществуват строги правила за управление на данните. Неправилното обработване и управление на данните може да доведе до отнемане на лиценза или до големи глоби. Тестването на ETL ви помага да се уверите, че спазвате изискванията за съответствие и защитавате поверителната информация.
5. По-добро вземане на решения
Колкото по-точни и надеждни са данните ви, толкова по-уверени можете да бъдете в решенията, базирани на данни. Тестването на ETL гарантира, че можете да разчитате на съдържанието в хранилището за данни, за да получите информацията, от която се нуждаете, за да направите правилните стъпки.
Предизвикателства, свързани с тестването на ETL
Осигуряването на доброто състояние на тръбопровода за данни е от съществено значение, но е свързано с някои трудности. Нека разгледаме предизвикателствата, свързани с надеждните проверки на качеството на данните в ETL.
1. Обем и сложност на данните
Добрият процес на тестване на ETL означава работа с големи обеми от различни видове данни – от структурирани до неструктурирани. Това разнообразие от данни може бързо да стане сложно и трудно за управление.
2. Зависимост от изходната система
Както посочихме по-горе, тестването на ETL е свързано с осигуряването на безпроблемна работа на тръбопровода от източник до цел. Качеството на продукцията обаче зависи в голяма степен от качеството на входа. Промените в изходната схема, формата или качеството на източника могат да доведат до неуспешни ETL тестове, които не винаги са лесни за диагностициране.
3. Сложност на трансформацията
Изграждането на логиката за преобразуване на данни е специализирано начинание. Прилагането на бизнес правила и почистването или преформатирането на данни е сложно, а проверката на качеството на тези трансформации не винаги е лесна.
4. Променящи се изисквания
Всички тестери познават болката от бързо променящите се бизнес изисквания. Процесът ETL е динамично пространство, както и тестването на ETL. Тъй като бизнес ролите се актуализират и променят, тестерите трябва да адаптират тестовите случаи и да осигурят оптимизиране на производителността на базата данни.
5. Ограничения на тестовата среда
Пускането на пълномащабна производствена среда за тестване на ETL е сложно и скъпо. Въпреки това по-малките тестови среди невинаги осигуряват истинска валидация, тъй като не възпроизвеждат начина, по който обработката на огромни обеми данни може да доведе до затруднения в производителността.
Съвети и най-добри практики за ETL
Тестването на ETL отнема време за усвояване. Ето няколко съвета, които ще ви помогнат по пътя.
#1. Непрекъснато тестване
Тестването на ETL не е еднократна задача. Това е перспектива за осигуряване на добро качество на данните, която трябва да изпълнявате и наблюдавате непрекъснато. Тестването на ETL QA е работа на пълен работен ден във фирми, които разчитат на инструменти за бизнес разузнаване, по някаква причина.
#2. Никой ETL тестер не е остров
Докато при тестването на ETL се използва подходът на черната кутия, инженерите по осигуряване на качеството на ETL трябва да работят със заинтересованите страни, администраторите на бази данни и разработчиците, които изграждат логиката на ETL, ако искат да разработят смислени тестове, които наистина да валидират процеса на ETL.
#3. Солидната документация е от решаващо значение.
Надеждната и подробна документация, включваща съпоставки между източниците и целите и запис на произхода на данните, е от съществено значение за установяване на грешките в потока от данни.
#4. Автоматизирайте възможно най-много
Това е може би най-важният момент. Цялостното тестване на ETL е ресурсоемко. Освен това това е постоянен процес, което означава, че изисква много ръчни усилия на редовни интервали. Ето защо ETL тестването е идеална работа за софтуер за автоматизация на тестването и RPA инструменти.
Най-добрите инструменти за автоматизирано тестване на ETL
Вече трябва да е ясно, че автоматизираното тестване на ETL е значително предимство за екипите за тестване по отношение на максималното използване на ресурсите.
За щастие, на пазара има няколко качествени инструмента за тестване на ETL. Всеки инструмент има своите плюсове и минуси, както и характеристики и функционалност, които отговарят на различни изисквания.
Изборът на подходящ инструмент зависи от няколко различни фактора, включително:
- Сложност на процеса ETL и бизнес логиката
- Обемът на предаваните данни
- Наличие или концентрация на неструктурирани данни в процеса на ETL
- Техническа компетентност и набор от умения на вашите тестери
- Вашият бюджет.
Нека разгледаме 5-те най-добри инструмента за тестване на ETL.
#5. QuerySurge
QuerySurge е абонаментно базиран инструмент за тестване на ETL с акцент върху непрекъснатото тестване. Той поддържа комбинации от изходни и целеви бази данни, предлага големи възможности за автоматизация и е създаден за големи и сложни нужди, свързани с хранилища на данни.
Потребителският интерфейс е приятен за използване, а възможностите за отчитане са отлични. Някои потребители обаче се оплакват от скъпите и непрозрачни цени на QuerySurge, а други критикуват липсата на удобство за потребителя и стръмната крива на обучение за неопитни потребители.
#4. iCEDQ
iCEDQ е инструмент за тестване на качеството на данните и за наблюдение на качеството на данните. Той предлага тестване, базирано на правила, и интересно откриване на грешки с помощта на ML. Проследяването, отчитането и визуализацията са особено силни страни на iCEDQ, което го прави добър инструмент за фирми с критични нужди от спазване на изискванията за данни и регулиране.
Въпреки това прилагането на инструмента в сложни ETL пейзажи е един от най-значимите недостатъци на iCEDQ. Освен това потребителският интерфейс е доста сложен и няма да е подходящ за по-малко технически екипи.
#3. RightData
RightData е лесен за използване инструмент, който се отличава с големи възможности за тестване без код както за ETL, така и за валидиране на данни. Инструментът е изключително гъвкав и работи с различни бази данни и облачни складове за данни. С редица предварително създадени шаблони за тестове, превъзходни възможности за визуализация и безпроблемна интеграция с инструменти за работни потоци е ясно защо RightData набира популярност през последните години.
Въпреки че RightData има много желани характеристики, тя може да бъде скъпа, ако трябва да тествате много ETL процеси. Въпреки че е абонаментна, цените могат бързо да нараснат при високи нива на използване на данни и допълнителни функции. В сравнение с предсказуемия модел на фиксирано ценообразуване и неограничените лицензи на ZAPTEST подходът на RightData изглежда е в ущърб на разрастващите се или разширяващи се компании.
#2. Оценяване на качеството
BiG EVAL е чудесен избор за сложни ETL системи и наследени складови внедрявания. Той използва валидиране на данни, базирано на правила, и има мощни възможности за профилиране на данни, което го прави добър избор за ETL тестване. BiG EVAL също така предоставя на потребителите чудесни възможности за автоматизация на проектирането и планирането на тестовете, а в комбинация с отличните възможности за отчитане и визуализация той се нарежда до най-всеобхватните инструменти за ETL тестване.
Въпреки това внедряването на BiG EVAL е още по-голяма работа. В сравнение с инструменти без код като ZAPTEST интерфейсът може да изглежда малко старомоден. Важно е да се отбележи, че тестването на ETL е само един от случаите на използване на BiG EVAL, така че ценообразуването на базата на лиценз може да се окаже непосилно за някои екипи, ако плащате за характеристики и функции, които не са ви крайно необходими.
#1. ZAPTEST: Избор номер 1 за ETL тестване
Въпреки че ZAPTEST не е специализиран инструмент за тестване на ETL, той предлага гъвкавост и мащабируемост, за да помогне с няколко от задачите, които съставляват цялостен подход за тестване на ETL.
Както можете да видите от раздела „Различни видове тестване на ETL“ по-горе, тестването на процеса ETL изисква валидиране на данни, интеграция, производителност, функционалност и регресионно тестване. ZAPTEST може да направи всичко това и дори повече. Нашите инструменти за тестване от край до край и възможностите за тестване на метаданни са ключови характеристики, за да се гарантира, че вашите анализи и бизнес анализи са на ниво и са готови да предоставят резултати и стойност.
ZAPTEST се предлага и с един от най-добрите RPA инструменти на пазара. В контекста на тестването на ETL RPA може да осигури сериозна стойност чрез генериране на реалистични тестови данни, автоматизиране на повтарящи се ръчни задачи и подпомагане на въвеждането на непрекъснатото тестване, от което се нуждаете за стабилен процес на ETL.
Благодарение на възможностите на ZAPTET да не се използва код, светкавичното създаване на тестове и безпроблемната интеграция с други корпоративни инструменти, той е универсално средство за автоматизирано тестване на ETL и много, много повече.
Заключителни мисли
Тестването за натоварване на трансформацията на екстракта е като създаването на отдел за контрол на качеството на вашия склад за данни. Не става въпрос само за това дали данните са прехвърлени от източника към целта, но и за това дали са пристигнали непокътнати и в съответствие с очакванията.
Ако разполагате с лоши данни, в крайна сметка ще вземете погрешни решения. Правилното тестване на ETL е инвестиция в целостта на цялата ви екосистема от данни. За много предприятия обаче времето и разходите, свързани с тестването на ETL, са нещо, което те трудно могат да си позволят.
Автоматизирането на ETL тестването ви помага да тествате по-бързо и по-ефективно, като същевременно спестявате пари в дългосрочен план. Увеличаването на обхвата на тестовете и възможностите за регресионно тестване може да помогне за повишаване на целостта на данните, тъй като можете да тествате много по-често, отколкото ако сте останали с ръчно тестване.
Нещо повече, използването на инструменти за автоматизирано тестване на ETL намалява човешките грешки, като същевременно освобождава тестерите за по-креативни и стойностни задачи. Приемането на инструменти за автоматизация на тестове и RPA като ZAPTEST е решение, което няма да ви се наложи да проверявате чрез инструментите си за бизнес разузнаване.