Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm

Hər kəsə salam, mənim adım Alexander və mən verilənlərin keyfiyyətini yoxlayan Məlumat Keyfiyyəti mühəndisiyəm. Bu məqalə mənim buna necə gəldiyim və niyə 2020-ci ildə bu sınaq sahəsinin dalğanın zirvəsində olması barədə danışacaq.

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm

Qlobal trend

Bugünkü dünya başqa bir texnoloji inqilabı yaşayır, bunun bir tərəfi hər cür şirkətlər tərəfindən öz satış, mənfəət və PR-ni təşviq etmək üçün toplanmış məlumatlardan istifadə etməkdir. Görünür, yaxşı (keyfiyyətli) məlumatların, eləcə də ondan pul qazana bilən (düzgün emal edən, vizuallaşdıran, maşın öyrənmə modellərini quran və s.) bacarıqlı beyinlərin olması bu gün çoxları üçün uğurun açarına çevrilib. Əgər 15-20 il əvvəl iri şirkətlər əsasən məlumatların toplanması və monetizasiyası ilə intensiv işlə məşğul olurdusa, bu gün demək olar ki, bütün sağlam düşüncəli insanların işidir.

Bununla əlaqədar, bir neçə il əvvəl bütün dünyada iş axtarışına həsr olunmuş bütün portallar Data Scientists üçün vakansiyalarla doldurulmağa başladı, çünki hamı belə bir mütəxəssisi işə götürərək maşın öyrənməsinin super modelini qurmaq mümkün olacağına əmin idi. , gələcəyi proqnozlaşdırın və şirkət üçün "kvant sıçrayışı" həyata keçirin. Zamanla insanlar başa düşdülər ki, bu yanaşma demək olar ki, heç bir yerdə işləmir, çünki belə mütəxəssislərin əlinə düşən bütün məlumatlar modellərin hazırlanması üçün uyğun deyil.

Data Scientists-dən sorğular başladı: “Gəlin bunlardan və onlardan daha çox məlumat alaq...”, “Bizim kifayət qədər məlumatımız yoxdur...”, “Bizə daha çox məlumat lazımdır, tercihen yüksək keyfiyyətli...” . Bu sorğular əsasında bu və ya digər məlumat toplusuna sahib olan şirkətlər arasında çoxsaylı qarşılıqlı əlaqələr qurulmağa başladı. Təbii ki, bu, bu prosesin texniki təşkilini tələb edirdi - məlumat mənbəyinə qoşulmaq, onu yükləmək, onun tam yüklənməsini yoxlamaq və s. Mütəxəssislər - Məlumatların Keyfiyyəti üzrə mühəndislər - sistemdəki məlumat axınına (məlumat boru kəmərləri), giriş və çıxışda məlumatların keyfiyyətinə nəzarət edən və onların kafiliyi, bütövlüyü və digər xüsusiyyətləri haqqında nəticə çıxaran şəxslər.

Məlumatların Keyfiyyəti mühəndisləri üçün tendensiya bizə ABŞ-dan gəldi, burada kapitalizmin qızğın dövrünün ortasında heç kim məlumat uğrunda döyüşü uduzmağa hazır deyil. Aşağıda ABŞ-dakı ən məşhur iş axtarışı saytlarından ikisinin ekran görüntülərini təqdim etdim: www.monster.com и www.dice.com — 17 mart 2020-ci il tarixinə olan məlumatları açar sözlərdən istifadə edərək qəbul edilmiş elan edilmiş vakansiyaların sayına dair məlumatları əks etdirir: Məlumatların Keyfiyyəti və Məlumat Alimi.

www.monster.com

Data Scientists – 21416 vakant yer
Məlumatların keyfiyyəti – 41104 vakant yer

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm
Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm

www.dice.com

Data Scientists – 404 vakant yer
Data Keyfiyyəti – 2020 vakansiyaları

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm
Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm

Aydındır ki, bu peşələr heç bir şəkildə bir-biri ilə rəqabət aparmır. Ekran görüntüləri ilə mən sadəcə əmək bazarındakı mövcud vəziyyəti Data Scientists-dən daha çox ehtiyac duyulan Məlumat Keyfiyyəti mühəndisləri üçün müraciətlər baxımından göstərmək istədim.

2019-cu ilin iyun ayında EPAM müasir İT bazarının ehtiyaclarına cavab verərək Məlumatların Keyfiyyətini ayrıca təcrübəyə ayırdı. Verilənlərin Keyfiyyəti üzrə mühəndislər gündəlik işlərinin gedişində məlumatları idarə edir, onun yeni şərait və sistemlərdə davranışını yoxlayır, məlumatların aktuallığına, kifayət qədər və aktuallığına nəzarət edir. Bütün bunlarla, praktiki mənada, Data Keyfiyyəti mühəndisləri həqiqətən klassik funksional testlərə çox az vaxt ayırırlar, LAKİN bu layihədən çox asılıdır (aşağıda misal verəcəyəm).

Məlumatların Keyfiyyəti üzrə mühəndisin vəzifələri təkcə verilənlər bazası cədvəllərindəki “sıfırlar, saylar və məbləğlər” üçün müntəzəm əl/avtomatik yoxlamalarla məhdudlaşmır, lakin müştərinin biznes ehtiyaclarını dərindən başa düşməyi və müvafiq olaraq, mövcud məlumatları dəyişdirmək bacarığını tələb edir. faydalı biznes məlumatları.

Məlumatın Keyfiyyəti Nəzəriyyəsi

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm

Belə bir mühəndisin rolunu daha dolğun təsəvvür etmək üçün nəzəri olaraq Data Keyfiyyətinin nə olduğunu anlayaq.

Data keyfiyyəti — Data Management mərhələlərindən biri (sizin təkbaşına öyrənməyiniz üçün tərk edəcəyimiz bütün dünya) və aşağıdakı meyarlara uyğun olaraq məlumatların təhlilinə cavabdehdir:

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm
Düşünürəm ki, nöqtələrin hər birini deşifrə etməyə ehtiyac yoxdur (nəzəri olaraq onlara "məlumat ölçüləri" deyilir), şəkildə onlar olduqca yaxşı təsvir edilmişdir. Ancaq sınaq prosesinin özü bu xüsusiyyətləri ciddi şəkildə test vəziyyətlərinə köçürmək və yoxlamaq demək deyil. Hər hansı digər test növlərində olduğu kimi Data Keyfiyyətində də, ilk növbədə, biznes qərarları verən layihə iştirakçıları ilə razılaşdırılmış məlumatların keyfiyyəti tələblərinə əsaslanmaq lazımdır.

Məlumatların Keyfiyyəti layihəsindən asılı olaraq, mühəndis müxtəlif funksiyaları yerinə yetirə bilər: məlumatların keyfiyyətinin səthi qiymətləndirilməsi ilə adi avtomatlaşdırma testerindən tutmuş yuxarıda göstərilən meyarlara uyğun olaraq məlumatların dərin profilini aparan şəxsə qədər.

Məlumatların İdarə Edilməsi, Məlumatların Keyfiyyəti və əlaqəli proseslərin çox ətraflı təsviri adlı kitabda yaxşı təsvir edilmişdir "DAMA-DMBOK: Məlumatların İdarə Olunması: 2-ci Nəşr". Mən bu kitabı bu mövzuya giriş kimi çox tövsiyə edirəm (məqalənin sonunda ona keçid tapa bilərsiniz).

Hekayem

İT sənayesində mən məhsul şirkətlərində kiçik testçi vəzifəsindən EPAM-da Aparıcı Məlumat Keyfiyyəti Mühəndisi vəzifəsinə qədər yüksəldim. Təxminən iki il sınaqçı kimi işlədikdən sonra mən qəti əmin oldum ki, mən tamamilə bütün növ testləri etmişəm: reqressiya, funksional, stress, stabillik, təhlükəsizlik, UI və s. - və çoxlu sayda test alətlərini sınamışam. eyni zamanda üç proqramlaşdırma dilində işləmişdir: Java, Scala, Python.

Geriyə baxanda başa düşürəm ki, mənim bacarıqlar dəstimin niyə bu qədər müxtəlif olduğunu başa düşürəm – mən böyük və kiçik dataya əsaslanan layihələrdə iştirak etmişəm. Məni inkişaf üçün çoxlu alətlər və imkanlar dünyasına gətirən budur.

Yeni bilik və bacarıqlar əldə etmək üçün alətlərin və imkanların müxtəlifliyini qiymətləndirmək üçün “Data & AI” dünyasında ən populyarları göstərən aşağıdakı şəklə baxmaq kifayətdir.

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm
Bu cür illüstrasiya proqram təminatının işlənməsi ilə məşğul olan məşhur vençur kapitalistlərindən biri Mett Turk tərəfindən hər il tərtib edilir. Budur əlaqə bloquna və vençur kapitalı şirkəti, partnyor kimi işlədiyi yerdə.

Mən layihədə yeganə tester olanda və ya heç olmasa layihənin əvvəlində peşəkarcasına sürətlə inkişaf etdim. Məhz belə bir anda bütün sınaq prosesinə cavabdeh olmalısan və geri çəkilmək imkanın yoxdur, yalnız irəli. Əvvəlcə qorxulu idi, amma indi belə bir testin bütün üstünlükləri mənə aydındır:

  • Siz heç vaxt olmadığı kimi bütün komanda ilə ünsiyyət qurmağa başlayırsınız, çünki ünsiyyət üçün proksi yoxdur: nə test meneceri, nə də digər testçilər.
  • Layihəyə dalmaq inanılmaz dərəcədə dərinləşir və siz həm ümumi, həm də ətraflı şəkildə bütün komponentlər haqqında məlumat əldə edirsiniz.
  • Tərtibatçılar sizə “nə etdiyini bilməyən sınaqdan çıxan adam” kimi deyil, avtomatlaşdırılmış testləri və proqramın müəyyən bir komponentində görünən səhvləri gözləməsi ilə komanda üçün inanılmaz faydalar yaradan bərabər bir insan kimi baxırlar. məhsul.
  • Nəticədə, siz daha effektiv, daha ixtisaslı və daha çox tələbat sahibisiniz.

Layihə böyüdükcə, 100% hallarda yeni testçilər üçün mentor oldum, onlara öyrətdim və özüm öyrəndiyim bilikləri ötürdüm. Eyni zamanda, layihədən asılı olaraq, mən həmişə rəhbərlikdən ən yüksək səviyyəli avtotest mütəxəssislərini almamışam və ya onları avtomatlaşdırma (maraqlananlar üçün) öyrətmək, ya da gündəlik fəaliyyətlərdə istifadə üçün alətlər yaratmaq ehtiyacı var idi (alətlər məlumatların yaradılması və sistemə yüklənməsi üçün , yük testi/sabitlik testini “tez” yerinə yetirmək üçün alət və s.).

Müəyyən bir layihənin nümunəsi

Təəssüf ki, açıqlamamaq öhdəliyimə görə işlədiyim layihələr haqqında ətraflı danışa bilmərəm, lakin layihələrdən birində Məlumat Keyfiyyəti Mühəndisinin tipik tapşırıqlarından nümunələr verəcəyəm.

Layihənin mahiyyəti onun əsasında maşın öyrənmə modellərinin hazırlanması üçün məlumatların hazırlanması platformasının həyata keçirilməsindən ibarətdir. Müştəri ABŞ-dan böyük bir əczaçılıq şirkəti idi. Texniki cəhətdən bu, çoxluq idi Kubernetes, qədər yüksəlir AWS EC2 bir neçə mikroservis və EPAM-ın əsas Açıq Mənbə layihəsi ilə nümunələr - Legion, müəyyən bir müştərinin ehtiyaclarına uyğunlaşdırılmışdır (indi layihə yenidən doğuldu odahu). istifadə edərək ETL prosesləri təşkil edilmişdir Apache hava axını və məlumatları köçürdü SalesForce müştəri sistemləri AWS S3 vedrələr. Daha sonra platformaya maşın öyrənməsi modelinin Docker təsviri yerləşdirildi, o, təzə məlumatlar üzərində öyrədilib və REST API interfeysindən istifadə edərək biznes üçün maraqlı olan və konkret problemləri həll edən proqnozlar hazırlayıb.

Vizual olaraq hər şey belə görünürdü:

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm
Bu layihədə çoxlu funksional sınaqlar var idi və funksiyaların inkişaf sürətini və buraxılış dövrünün sürətini (iki həftəlik sprint) saxlamaq ehtiyacını nəzərə alaraq, ən kritik komponentlərin sınağını avtomatlaşdırmaq barədə dərhal düşünmək lazım idi. sistem. Kubernetes-ə əsaslanan platformanın çoxu, tətbiq olunan avtotestlərlə əhatə olunub Robot Çərçivəsi + Python, lakin onları dəstəkləmək və genişləndirmək də lazım idi. Bundan əlavə, müştərinin rahatlığı üçün klasterə yerləşdirilmiş maşın öyrənmə modellərini idarə etmək üçün GUI, eləcə də modellərin öyrədilməsi üçün məlumatların hara və hara ötürülməsi lazım olduğunu müəyyən etmək imkanı yaradılmışdır. Bu geniş əlavə, əsasən REST API zəngləri və az sayda son 2-end UI testləri vasitəsilə həyata keçirilən avtomatlaşdırılmış funksional testin genişləndirilməsinə səbəb oldu. Bütün bu hərəkətin ekvatoru ətrafında, məhsul versiyalarının qəbul testi və növbəti buraxılışın qəbulu ilə bağlı müştəri ilə əlaqə saxlayan əla iş görən bir əl test cihazı bizə qoşuldu. Bundan əlavə, yeni bir mütəxəssisin gəlişi ilə əlaqədar olaraq işimizi sənədləşdirə bildik və dərhal avtomatlaşdırılması çətin olan bir neçə çox vacib əl yoxlamasını əlavə edə bildik.

Və nəhayət, platformadan və onun üzərindəki GUI əlavəsindən sabitliyə nail olduqdan sonra Apache Airflow DAG-lərdən istifadə edərək ETL boru kəmərlərinin tikintisinə başladıq. Avtomatlaşdırılmış məlumat keyfiyyətinin yoxlanılması ETL prosesinin nəticələrinə əsasən məlumatları yoxlayan xüsusi Hava axını DAG-larının yazılması ilə həyata keçirilmişdir. Bu layihənin bir hissəsi olaraq bəxtimiz gətirdi və müştəri bizə sınaqdan keçirdiyimiz anonim məlumat dəstlərinə giriş imkanı verdi. Məlumatların növlərə uyğunluğu, pozulmuş məlumatların mövcudluğu, əvvəl və sonra qeydlərin ümumi sayı, toplama üçün ETL prosesi tərəfindən edilən çevrilmələrin müqayisəsi, sütun adlarının dəyişdirilməsi və sair üçün sətir-sətir yoxladıq. Bundan əlavə, bu yoxlamalar müxtəlif məlumat mənbələrinə, məsələn, SalesForce-a əlavə olaraq, MySQL-ə də ölçüldü.

Məlumatların keyfiyyətinin yekun yoxlanışı artıq S3 səviyyəsində aparılıb, burada onlar saxlanılır və maşın öyrənmə modellərinin hazırlanması üçün istifadəyə hazırdır. S3 Bucket-də yerləşən son CSV faylından məlumatları əldə etmək və onu təsdiqləmək üçün kod istifadə edərək yazılmışdır boto3 müştəriləri.

Müştəridən məlumatların bir hissəsini bir S3 Bucket-də, bir hissəsini isə digərində saxlamaq tələbi də var idi. Bu, həmçinin belə çeşidləmənin etibarlılığını yoxlamaq üçün əlavə yoxlamaların yazılmasını tələb edirdi.

Digər layihələrdən ümumiləşdirilmiş təcrübə

Məlumat Keyfiyyəti mühəndisinin ən ümumi fəaliyyət siyahısına bir nümunə:

  • Avtomatlaşdırılmış alət vasitəsilə test məlumatlarını (etibarsız böyük kiçik) hazırlayın.
  • Hazırlanmış məlumat dəstini orijinal mənbəyə yükləyin və istifadəyə hazır olduğunu yoxlayın.
  • Müəyyən parametrlər dəstindən istifadə etməklə mənbə yaddaşından son və ya aralıq yaddaşa qədər verilənlər toplusunun emalı üçün ETL proseslərini işə salın (mümkünsə, ETL tapşırığı üçün konfiqurasiya edilə bilən parametrləri təyin edin).
  • ETL prosesi tərəfindən işlənmiş məlumatların keyfiyyətinə və biznes tələblərinə uyğunluğunu yoxlayın.

Eyni zamanda, yoxlamaların əsas diqqəti təkcə sistemdəki məlumat axınının, prinsipcə, işlədiyinə və tamamlanmasına (funksional testin bir hissəsidir) deyil, daha çox məlumatların yoxlanılması və təsdiqlənməsinə yönəldilməlidir. gözlənilən tələblərə uyğunluq, anomaliyaların müəyyən edilməsi və digər şeylər.

Tools

Bu cür məlumatlara nəzarət üsullarından biri, ədəbiyyatda "məlumat zənciri" adlanan məlumatların emalının hər mərhələsində zəncirvari yoxlamaların təşkili ola bilər - məlumatların mənbədən son istifadə nöqtəsinə qədər nəzarəti. Bu cür yoxlamalar ən çox yoxlanılan SQL sorğuları yazmaqla həyata keçirilir. Aydındır ki, bu cür sorğular mümkün qədər yüngül olmalıdır və məlumat keyfiyyətinin ayrı-ayrı hissələrini (cədvəllərin metaməlumatları, boş sətirlər, NULL-lər, sintaksisdəki səhvlər - yoxlama üçün tələb olunan digər atributlar) yoxlamalıdır.

Hazır (dəyişməyən, bir qədər dəyişən) məlumat dəstlərindən istifadə edən reqressiya testi zamanı avtotest kodu verilənlərin keyfiyyətə uyğunluğunu yoxlamaq üçün hazır şablonları saxlaya bilər (gözlənilən cədvəl metaməlumatlarının təsviri; sıra nümunəsi obyektləri. test zamanı təsadüfi seçilmiş və s.).

Həmçinin, test zamanı siz Apache Airflow kimi çərçivələrdən istifadə edərək ETL test proseslərini yazmalısınız, Apache Spark və ya hətta qara qutu bulud tipi alət GCP Dataprep, GCP Dataflow Və s. Bu vəziyyət sınaq mühəndisini yuxarıda göstərilən vasitələrin işləmə prinsipləri ilə tanış olmağa və daha effektiv şəkildə həm funksional sınaq keçirməyə (məsələn, layihədə mövcud ETL prosesləri) və həm də məlumatları yoxlamaq üçün istifadə etməyə məcbur edir. Xüsusilə, Apache Airflow məşhur analitik verilənlər bazaları ilə işləmək üçün hazır operatorlara malikdir, məsələn, GCP BigQuery. Onun istifadəsinin ən əsas nümunəsi artıq təsvir edilmişdir burada, buna görə də özümü təkrarlamayacağam.

Hazır həllərdən başqa, heç kim sizə öz texnika və alətlərinizi həyata keçirməyi qadağan etmir. Bu, təkcə layihə üçün deyil, həm də texniki üfüqlərini və kodlaşdırma bacarıqlarını təkmilləşdirəcək Məlumat Keyfiyyəti Mühəndisinin özü üçün də faydalı olacaqdır.

Həqiqi bir layihədə necə işləyir

“Məlumat zənciri”, ETL və hər yerdə olan yoxlamalar haqqında son paraqrafların yaxşı təsviri real layihələrdən birinin aşağıdakı prosesidir:

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm

Burada müxtəlif məlumatlar (təbii ki, bizim tərəfimizdən hazırlanmışdır) sistemimizin giriş "hunisinə" daxil olur: etibarlı, etibarsız, qarışıq və s. və son anbarda yerləşdirilir, buradan isə öz növbəsində analitika, data marketlərin qurulması və biznes anlayışlarının axtarışı həyata keçiriləcək. Belə bir sistemdə, ETL proseslərinin işləməsini funksional yoxlamadan, biz transformasiyadan əvvəl və sonra məlumatların keyfiyyətinə, həmçinin analitikaya çıxışa diqqət yetiririk.

Yuxarıdakıları ümumiləşdirmək üçün, işlədiyim yerlərdən asılı olmayaraq, hər yerdə aşağıdakı xüsusiyyətləri paylaşan Data layihələrində iştirak etdim:

  • Yalnız avtomatlaşdırma vasitəsilə siz bəzi halları sınaqdan keçirə və biznes üçün məqbul buraxılış dövrünə nail ola bilərsiniz.
  • Belə bir layihə üzrə tester komandanın ən hörmətli üzvlərindən biridir, çünki bu, iştirakçıların hər birinə böyük fayda gətirir (sınağın sürətləndirilməsi, Data Scientist-dən yaxşı məlumatlar, ilkin mərhələdə qüsurların müəyyən edilməsi).
  • Öz aparatınızda və ya buludda işləməyinizin fərqi yoxdur - bütün resurslar Hortonworks, Cloudera, Mesos, Kubernetes və s.
  • Layihələr mikroservis yanaşması üzərində qurulur, paylanmış və paralel hesablamalar üstünlük təşkil edir.

Qeyd etmək istərdim ki, Məlumatların Keyfiyyəti sahəsində test apararkən, test mütəxəssisi öz peşəkar diqqətini məhsulun koduna və istifadə olunan alətlərə yönəldir.

Data Keyfiyyət testinin fərqli xüsusiyyətləri

Bundan əlavə, mən özüm üçün Data (Big Data) layihələrində (sistemlərində) və digər sahələrdə testlərin aşağıdakı fərqli xüsusiyyətlərini (dərhal qeyd edəcəyəm ki, onlar ÇOX ümumiləşdirilmiş və müstəsna olaraq subyektivdir) müəyyən etmişəm:

Böyük və kiçik məlumat test cihazı: tendensiyalar, nəzəriyyə, mənim hekayəm

Faydalı linklər

  1. Nəzəriyyə: DAMA-DMBOK: Məlumatların İdarə Edilməsi Bilik Orqanı: 2-ci Nəşr.
  2. Təlim mərkəzi EPAM 
  3. Başlanğıc Məlumat Keyfiyyəti mühəndisi üçün tövsiyə olunan materiallar:
    1. Stepik üzrə pulsuz kurs: Verilənlər bazalarına giriş
    2. LinkedIn Learning kursu: Data Science Foundations: Data Engineering.
    3. Məqalələr:
    4. Video:

Nəticə

Data keyfiyyəti çox gənc perspektivli istiqamətdir, onun bir hissəsi olmaq startapın bir hissəsi olmaq deməkdir. Data Keyfiyyətində bir dəfə siz çoxlu sayda müasir, tələb olunan texnologiyalara qərq olacaqsınız, lakin ən əsası ideyalarınızı yaratmaq və həyata keçirmək üçün sizin qarşınızda böyük imkanlar açılacaq. Mütəxəssis kimi davamlı inkişaf edərək, davamlı təkmilləşdirmə yanaşmasını təkcə layihədə deyil, özünüz üçün də istifadə edə biləcəksiniz.

Mənbə: www.habr.com

Добавить комментарий