این مقاله به شما درک درستی از نحوه انجام تست انبار داده در یک سازمان می دهد. همچنین با اهداف تست DW، نحوه و نوع آزمایشی که می توان در backend انجام داد، که همگی در این فرآیند دخیل هستند، خطاهای DW و استقرار ETL به تفصیل آشنا خواهید شد.
تست انبار داده (ETL)
اهمیت تست سیستم های انبار داده و هوش تجاری چیست؟
آزمایش نقش مهمی در موفقیت هر یک از دو سیستم فوق دارد، با اطمینان از صحت دادهها که باعث ایجاد اطمینان کاربران نهایی میشود.
به طور کلی، رفع نقصی که در مراحل بعدی چرخه عمر توسعه نرم افزار یافت می شود، هزینه بیشتری دارد. این وضعیت در DW می تواند بدتر شود زیرا داده های اشتباهی که در مراحل بعدی یافت می شود ممکن است در آن زمان در تصمیمات تجاری مهم استفاده شده باشد.
بنابراین، رفع نقص در DW از نظر فرآیند، افراد و تغییرات فناوری گرانتر است. شما می توانید تست DW را درست از مرحله جمع آوری نیازمندی ها شروع کنید.
یک ماتریس ردیابی نیازمندی تهیه و بررسی میشود، و این عمدتاً ویژگیهای DW را با نیازهای تجاری مربوطه نشان میدهد. ماتریس قابلیت ردیابی به عنوان ورودی برای طرح آزمایش DW که توسط آزمایش کننده ها تهیه شده است عمل می کند. طرح تست آزمایشاتی را که برای اعتبارسنجی سیستم DW انجام می شود، تشریح می کند.
همچنین انواع تست هایی که بر روی سیستم انجام خواهد شد را شرح می دهد. پس از آماده شدن طرح تست، تمام موارد تست دقیق برای سناریوهای مختلف DW آماده می شود. سپس تمام موارد تست اجرا می شود و نقص ها ثبت می شود.
استانداردی در دنیای عملیاتی وجود دارد که محیط های مختلف را برای توسعه، آزمایش و تولید حفظ می کند. در دنیای DW، هم توسعهدهندگان و هم آزمایشکنندگان اطمینان حاصل میکنند که محیطهای توسعه و آزمایش با کپی دادههای تولید قبل از شروع کارشان در دسترس است.
این برای لیستی از جداول با داده های محدود یا کامل، بسته به نیاز پروژه کپی می شود، زیرا داده های تولید واقعاً بزرگ هستند. توسعه دهندگان کد خود را در محیط developing توسعه می دهند و آن را به آزمایش کنندگان تحویل می دهند.
آزمایشکنندگان کد ارائهشده در محیطهای آزمایشی را آزمایش میکنند تا مطمئن شوند که آیا همه سیستمها کار میکنند یا خیر. سپس کد در محیط های تولید زنده می شود. کد DW نیز در نسخه های مختلف بر اساس نقص های رفع شده در هر نسخه حفظ می شود. حفظ چندین محیط و نسخه های کد به ساخت یک سیستم با کیفیت خوب کمک می کند.
اهداف تست انبار داده (ETL)
بیایید نگاهی به اهداف تست انبار داده بیندازیم.
1) کامل بودن داده ها: اطمینان حاصل کنید که همه داده ها از منابع مختلف در یک انبار داده بارگذاری می شوند. اگر تمام رکوردهای DW بارگیری شوند، تیم آزمایش در برابر پایگاه داده منبع و فایلهای فلت با پیروی از استراتژیهای نمونه زیر اعتبارسنجی میکند.
تعداد کل رکوردهای بارگذاری شده از سیستم منبع باید با تعداد کل رکوردهای بارگذاری شده در DW مطابقت داشته باشد. اگر تفاوتی وجود دارد، می توانید در مورد رکوردهای رد شده فکر کنید.
داده های بارگذاری شده در هر فیلد DW را با فیلدهای داده سیستم منبع مقایسه کنید. این خطاهای داده را در صورت وجود نشان می دهد.
2) تبدیل داده: هنگام بارگذاری داده های منبع در انبار داده، تعداد کمی از فیلدها را می توان مستقیماً با داده های منبع بارگیری کرد، اما تعداد کمی از فیلدها با داده هایی بارگذاری می شوند که طبق منطق تجاری تبدیل می شوند. این بخش پیچیده آزمایش DW (ETL) است.
در زیر نمونه استراتژی هایی برای آزمایش این موضوع وجود دارد:
می توانید با ایجاد و مقایسه داده ها در spreedsheetها آزمایش کنید. داده های تبدیل شده منبع و داده های DW را در این صفحات بارگیری کنید و مقایسه کنید. هیچ گونه ناهماهنگی نباید وجود داشته باشد.
آزمایشکنندگان باید پرسوجوها را طبق منطق تبدیل بنویسند تا دادههای DW را با دادههای منبع مقایسه کنند. اجرای پرس و جو تضمین می کند که اعتبار سنجی داده ها برای هیچ یک از فیلدها از بین نمی رود.
3) کیفیت داده: سیستم انبار داده (ETL) باید با رد کردن (یا) تصحیح داده ها، از کیفیت داده های بارگذاری شده در آن اطمینان حاصل کند.
DW ممکن است تعدادی از داده های سیستم منبع را بر اساس منطق نیازهای تجاری رد کند. برای مثال، اگر فیلد خاصی دارای دادههای غیر عددی باشد، رکورد را رد کنید. تمام رکوردهای رد شده برای مرجع در جدول رد بارگذاری می شوند.
داده های رد شده به مشتریان گزارش می شوند زیرا شانسی برای اطلاع از این داده های از دست رفته وجود ندارد، زیرا در سیستم DW بارگذاری نمی شوند. DW ممکن است داده ها را با بارگذاری صفر بجای مقادیر تهی و غیره تصحیح کند.
4) مقیاس پذیری و عملکرد: انبار داده باید مقیاس پذیری سیستم را با افزایش بار تضمین کند. با این کار، هنگام اجرای پرسوجوها، با نتایج پیشبینیشده در بازههای زمانی خاص، نباید هیچ گونه تنزلی در عملکرد ایجاد شود. بنابراین تست عملکرد هر گونه مشکل را آشکار می کند و قبل از تولید آن را برطرف می کند.
در زیر نمونه استراتژی هایی برای تست عملکرد و مقیاس پذیری آورده شده است:
- آزمایش عملکرد را با بارگیری حجمی از داده تولید انجام دهید و اطمینان حاصل کنید که بازه های زمانی از دست نرفته است.
- عملکرد هر پرس و جو را با داده های انبوه (bulk) تأیید کنید. عملکرد را با استفاده از پیوندهای ساده و پیوندهای متعدد آزمایش کنید.
- بارگذاری دو برابر (یا) سه برابر حجم داده مورد انتظار برای محاسبه تقریبی ظرفیت سیستم.
- با اجرای کارها برای همه گزارش های فهرست شده به طور همزمان آزمایش کنید.
5) تست یکپارچه سازی: انبار داده باید تست یکپارچه سازی را با سایر برنامه های بالادستی و پایین دستی انجام دهد. در صورت امکان، بهتر است داده های تولید را در محیط تست برای یکپارچه سازی تست کپی کنید.
همه تیم های سیستم باید در این مرحله شرکت کنند تا شکاف ها را پر کنند و در عین حال همه سیستم ها را با هم بشناسند و آزمایش کنند.
6) تست واحد: این توسط توسعه دهندگان منفرد بر روی محصولات تحویلی خود انجام می شود. توسعه دهندگان سناریوهای تست واحد را بر اساس درک خود از الزامات آماده می کنند، تست های واحد را اجرا می کنند و نتایج را مستند می کنند. این به توسعهدهندگان کمک میکند تا قبل از تحویل کد به تیم آزمایش، هر گونه اشکال را در صورت یافتن برطرف کنند.
7) تست رگرسیون: تأیید می کند که سیستم DW پس از رفع هر گونه نقصی دچار اختلال نمی شود. این کار با هر تغییر کد جدید بارها انجام می شود.
8) تست پذیرش کاربر: این آزمایش توسط کاربران تجاری برای تایید عملکرد سیستم انجام می شود. محیط UAT با محیط QA متفاوت است. علامت UAT نشان می دهد که ما آماده هستیم تا کد را به تولید منتقل کنیم.
از دیدگاه انبار داده و سیستم هوش تجاری، کاربران تجاری می توانند گزارش های مختلف را از طریق رابط کاربری (UI) تأیید کنند. آنها می توانند مشخصات گزارش را بر اساس الزامات اعتبار سنجی کنند، می توانند صحت داده ها را در گزارش ها تأیید کنند، می توانند تأیید کنند که سیستم با چه سرعتی نتایج را برمی گرداند و غیره.
نمودار جریان تست DW:
مسئولیت های تست انبار داده
تیم های مختلفی که در ارائه یک سیستم DW موفق دخیل هستند در زیر لیست شده اند:
تحلیلگران کسب و کار: همه الزامات تجاری را برای سیستم جمع آوری کنید و آن ها را به دلخواه همه مستند کنید.
تیم زیرساخت: محیط های مختلفی را در صورت نیاز برای توسعه دهندگان و آزمایش کنندگان تنظیم کنید.
توسعه دهندگان: کد ETL را مطابق با الزامات توسعه دهید و تست های واحد را انجام دهید.
QA (تضمین کیفیت)/تست کننده ها: طرح آزمایش، موارد تست و غیره را توسعه دهید. با اجرای موارد آزمایشی عیوب سیستم را شناسایی می کند. انجام سطوح مختلف تست.
DBAها: DBAها وظیفه تبدیل سناریوهای منطقی پایگاه داده ETL به سناریوهای فیزیکی پایگاه داده ETL را بر عهده می گیرند و همچنین در تست عملکرد مشارکت دارند.
کاربران تجاری: در تست پذیرش کاربر شرکت کنید، پرس و جوها و گزارش ها را روی جداول DW اجرا کنید.
خطا در انبار داده
هنگامی که شما در حال استخراج، تبدیل و بارگذاری داده ها (ETL) از چندین منبع هستید، این احتمال وجود دارد که داده های بدی دریافت کنید که ممکن است کارهای طولانی مدت را متوقف کند.
دلایل اصلی خرابی سیستم DW به شرح زیر است:
1) نقض قوانین تجاری (خطاهای منطقی): داده های منطقی اشتباه قوانین تجارت را نقض می کند. چنین داده هایی را می توان بیشتر در طول مراحل تبدیل یا بارگذاری پردازش کرد.
2) نقض قوانین داده (خطاهای داده): خطاهای داده در سیستم پایگاه داده DW مانند عدم تطابق نوع داده، نقض محدودیت داده و غیره رخ می دهد.
استقرار ETL
این مرحلهای است که تمام تلاشهای شما در آن زنده میشوند. کلیه مدارک پشتیبانی تولید باید تهیه شود.
این اسناد به دیگران درباره توالی کارهایی که باید اجرا شوند، سناریوهای بازیابی شکست، مواد آموزشی به تیمهای پشتیبانی DW برای نظارت بر سیستم پس از استقرار و به تیم پشتیبانی اداری برای اجرای گزارشها میگوید.
محدوده آزمایش خوب برنامه ریزی شده، به خوبی تعریف شده و موثر، تبدیل بی نقص پروژه به تولید را تضمین می کند. هنگامی که فرآیندهای ETL توسط گروهی مستقل از کارشناسان تأیید و اعتبارسنجی شوند تا مطمئن شوند که انبار داده مشخص و مستحکم است، یک کسب و کار شناوری واقعی به دست می آورد.
تست انبار داده و یا ETL صرف نظر از فناوری یا ابزارهای ETL مورد استفاده به چهار بخش مختلف طبقه بندی می شود:
تست انبار داده جدید: DW جدید از ابتدا ساخته و تأیید شده است. ورودی داده از نیازهای مشتری و منابع داده های مختلف گرفته شده و یک انبار داده جدید با کمک ابزارهای ETL ساخته و تأیید می شود.
آزمایش مهاجرت: در این نوع پروژه، مشتریان یک DW و ETL موجود دارند که کار را انجام می دهند، اما آنها به دنبال ابزارهای جدید برای بهبود کارایی هستند.
درخواست تغییر: در این نوع پروژه داده های جدید از منابع مختلف به DW موجود اضافه می شود. همچنین، ممکن است شرایطی وجود داشته باشد که مشتریان نیاز به تغییر قوانین تجاری موجود خود داشته باشند یا ممکن است قوانین جدید را ادغام کنند.
تست گزارش: گزارش نتیجه نهایی هر انبار داده و پیشنهاد اولیه ای است که DW برای آن می سازد. گزارش باید با تایید و محاسبه طرح و داده های موجود در گزارش ، آزمایش شود.
فرآیند ETL:
تکنیک های تست ETL
1) آزمایش تبدیل داده ها: بررسی کنید که آیا داده ها مطابق با الزامات و قوانین مختلف تجاری به درستی تبدیل شده اند یا خیر.
2) آزمایش تعداد رکوردمنبع تا مقصد: مطمئن شوید که تعداد رکوردهای بارگذاری شده در مقصد با تعداد مورد انتظار مطابقت دارد.
3) تست منبع به مقصد داده: اطمینان حاصل کنید که تمام داده های پیش بینی شده بدون از دست دادن یا برش داده ها در انبار داده بارگذاری می شوند.
4) تست کیفیت داده: اطمینان حاصل کنید که برنامه ETL به درستی مقادیر را از نظر درستی رد می کند، مقادیر پیش فرض را جایگزین می کند و داده های نامعتبر را گزارش می کند.
5) تست عملکرد: اطمینان حاصل کنید که داده ها در انبار داده در بازه های زمانی تعیین شده و مورد انتظار بارگیری می شوند تا عملکرد و مقیاس پذیری بهبود یافته را تأیید کنند.
6) تست اعتبار سنجی تولید: داده ها را در سیستم تولید اعتبار سنجی کنید و آن را با داده های منبع مقایسه کنید.
7) تست یکپارچه سازی داده ها: مطمئن شوید که داده ها از منابع مختلف به درستی در سیستم هدف بارگذاری شده اند و تمام مقادیر آستانه بررسی شده اند.
8) آزمایش مهاجرت برنامه: در این آزمایش، اطمینان حاصل کنید که برنامه ETL در انتقال به جعبه یا پلت فرم جدید به خوبی کار می کند.
9) Data & Constraint Check: نوع داده، طول، ایندکس، محدودیت ها و غیره در این مورد تست می شوند.
10) بررسی داده های تکراری: بررسی کنید که آیا داده های تکراری در سیستم مورد نظر وجود دارد یا خیر. داده های تکراری می تواند منجر به گزارش های تحلیلی نادرست شود.
به غیر از روش های تست ETL فوق، روش های تست دیگری مانند تست یکپارچه سازی سیستم، تست پذیرش کاربر، تست افزایشی، تست رگرسیون، تست مجدد و تست ناوبری نیز برای اطمینان از روان و قابل اعتماد بودن همه چیز انجام می شود.
فرآیند تست ETL/Data Warehouse
مشابه هر آزمایش دیگری که تحت تأیید و اعتبارسنجی مستقل قرار دارد، ETL نیز همین مرحله را طی میکند.
- درک نیازمندی ها
- اعتبار سنجی
- تخمین تست بر اساس تعدادی جداول، پیچیدگی قوانین، حجم داده ها و عملکرد یک کار است.
- برنامه ریزی آزمون بر اساس ورودی های برآورد آزمون و الزامات تجاری است. در اینجا باید تشخیص دهیم که چه چیزی در محدوده است و چه چیزی خارج از محدوده است. ما همچنین به دنبال وابستگی ها، خطرات و برنامه های کاهش در این مرحله خواهیم بود.
- طراحی موارد تست و سناریوهای تست از تمام ورودی های موجود. ما همچنین نیاز به طراحی اسناد mapping و اسکریپت های SQL داریم.
- پس از آماده شدن و تایید تمامی موارد تست، تیم تست اقدام به انجام بررسی های پیش از اجرا و آماده سازی داده های تست برای تست می کند.
- در نهایت، اجرا تا زمانی که معیارهای خروج برآورده شود انجام می شود. بنابراین، مرحله اجرا شامل اجرای jobهای ETL، نظارت بر اجرای کار، اجرای اسکریپت SQL، ثبت نقص، تست مجدد نقص و تست رگرسیون است.
- پس از اتمام موفقیت آمیز، یک گزارش خلاصه تهیه می شود و فرآیند اتمام تست انجام می شود. در این مرحله، برای ارتقای job یا کد به مرحله بعدی، تاییدیه داده میشود.
دو مرحله اول یعنی درک نیاز و اعتبارسنجی را می توان به عنوان مراحل اولیه فرآیند آزمون ETL در نظر گرفت.
بنابراین، فرآیند اصلی را می توان به صورت زیر نشان داد:
لازم است یک استراتژی آزمون تعریف شود که قبل از شروع آزمایش واقعی باید توسط ذینفعان پذیرفته شود. یک استراتژی تست به خوبی تعریف شده تضمین می کند که رویکرد صحیح برای برآورده کردن خواسته های تست دنبال شده است.
آزمایش ETL/Data Warehouse ممکن است نیاز به نوشتن عبارات SQL به طور گسترده توسط تیم آزمایش داشته باشد یا احتمالاً کدهای ارائه شده توسط تیم توسعه را طلب کند. در هر صورت، یک تیم آزمایشی باید از نتایجی که در تلاش برای به دست آوردن با استفاده از آن دستورات SQL هستند آگاه باشد.
تفاوت بین تست پایگاه داده و انبار داده
یک سوء تفاهم رایج وجود دارد که آزمایش پایگاه داده و انبارهای داده مشابه هستند، در حالی که واقعیت این است که هر دو جهت متفاوتی در آزمایش دارند.
- آزمایش پایگاه داده با استفاده از مقیاس کوچکتر داده معمولاً با نوع پایگاه داده OLTP (پردازش تراکنش آنلاین) انجام می شود در حالی که آزمایش انبار داده با حجم زیادی با داده های مربوط به پایگاه داده های OLAP (پردازش تحلیلی آنلاین) انجام می شود.
- در آزمایش پایگاه داده، معمولا داده ها به طور مداوم از منابع یکنواخت تزریق می شوند، در حالی که در آزمایش انبار داده، بیشتر داده ها از انواع مختلفی از منابع داده می آیند که به طور متوالی ناسازگار هستند.
- ما معمولاً فقط عملیات CRUD (ایجاد، خواندن، بهروزرسانی و حذف) را در طول آزمایش پایگاه داده انجام میدهیم در حالی که در آزمایش انبار داده از عملیات فقط خواندنی (انتخاب) استفاده میکنیم.
- پایگاه داده نرمال شده در تست DB استفاده می شود در حالی که DB دی نرمال شده در تست انبار داده استفاده می شود.
تعدادی تأییدیه جهانی وجود دارد که باید برای هر نوع آزمایش انبار داده انجام شود.
در زیر لیستی از آبجکتهایی است که برای اعتبار سنجی در این آزمایش ضروری تلقی می شوند:
- بررسی کنید که تبدیل داده ها از مبدا به مقصد مطابق انتظار عمل می کند.
- بررسی کنید که داده های مورد انتظار به سیستم هدف اضافه شده است.
- بررسی کنید که تمام فیلدهای DB و داده های فیلد بدون هیچ گونه برشی بارگیری شده باشند.
- بررسی جمع کنترلی داده ها برای مطابقت تعداد رکوردها.
- بررسی کنید که برای دادههای رد شده، لاگهای خطای مناسب با تمام جزئیات تولید میشوند.
- فیلدهای مقدار NULL را تأیید کنید
- بررسی کنید که داده های تکراری بارگیری نشده باشند.
- یکپارچگی داده ها را تأیید کنید
چالش های تست ETL
این آزمایش کاملاً با آزمایش معمولی متفاوت است. در هنگام انجام تست انبار داده با چالش های زیادی مواجه می شویم.
در اینجا چند چالش وجود دارد که در پروژه خود تجربه کردم:
- داده های ناسازگار و تکراری
- از دست دادن داده ها در طول فرآیند ETL.
- در دسترس نبودن بستر آزمایشی فراگیر.
- تسترها هیچ امتیازی برای اجرای کارهای ETL به تنهایی ندارند.
- حجم و پیچیدگی داده ها بسیار زیاد است.
- خطا در فرآیندها و رویه های کسب و کار.
- مشکل در دستیابی و ساخت داده های آزمایشی
- محیط تست ناپایدار
- اطلاعات جریان کسب و کار وجود ندارد
دادهها برای کسبوکارها برای تصمیمگیریهای مهم تجاری مهم هستند. تست ETL نقش مهمی در اعتبارسنجی و اطمینان از دقیق، سازگار و قابل اعتماد بودن اطلاعات تجاری ایفا می کند. همچنین خطر از دست دادن اطلاعات در تولید را به حداقل می رساند.
امیدواریم این نکات به شما کمک کند تا اطمینان حاصل کنید که فرآیند ETL شما دقیق است و انبار داده ساخته شده توسط این یک مزیت رقابتی برای تجارت شما است.
نظر بگذارید