Programmalıq támiynat sapasın támiyinlew / 13-lekciya_ST
.pdf13-lekciya. Sapanı basqarıwdıń shólkemlestirilgen-texnologiyalıq tárepleri.
Jobası:
1.Sapanı basqarıwda shólkemlestiriw strukturası: QA komandasınıń roli.
2.Texnologiyalıq tárepler: Sapa infrastrukturası (Test environment, Tools).
3.Processlerdi avtomatlastırıw hám CI/CD konveyeri.
4.Sapa mádeniyatı hám kommunikaciya: Cross-functional teams.
Sapanı basqarıwda shólkemlestiriw strukturası
Sapanı basqarıwdıń nátiyjeliligi tek qural hám texnologiyalarǵa emes, al shólkemniń strukturasına (Organisational Structure) hám onıń ishinde QA (Quality Assurance) komandasınıń ornına baylanıslı. Tariyxıy jaqtan sapa basqarıw "Oraylasqan" (Centralized) hám "Oraylaspaǵan" (Decentralized) modellerge bólinedi. Oraylasqan modelde QA injenerleri bólek departament bolıp, proektlerge "sırtqı auditor" sıyaqlı xızmet kórsetedi. Olar kodtı jazbaydı, tek tekseredi. Bul modeldiń artıqmashılıǵı – ǵárezsizlik hám standartlardıń qatań saqlanıwı. Kemshiligi – "Diywal" (Silo) mashqalası: testerler menen programmistler bir-birinen ajıralǵan, kommunikaciya áste, qáteler kesh tabıladı.
Házirgi zamanagóy (Agile/DevOps) ortalıqta "Oraylaspaǵan" yamasa "Kirgizilgen" (Embedded) model keń tarqalǵan. Bunda QA injenerleri hárbir proekt komandasınıń (Squad/Team) ajıralmas aǵzası bolıp isleydi. Olar kúnlik stend-aplarda qatnasadı, talaplardı talqılaydı hám programmistler menen birge otıradı. Bul "Shift Left" (Shepke jılısıw) principin ámelge asırıwǵa járdem beredi. Sapa endi bólek bólimniń emes, al pútkil komandanıń juwapkershiligi bolıp esaplanadı. Degen menen, bul modelde QA injenerleri kásiplik rawajlanıwdan qalıs qalıwı múmkin (bir-biri menen baylanısı az bolǵanlıqtan), sol sebepli "QA Gildiyaları" (Guilds) sıyaqlı gorizontal baylanıslar da kerek.
Sapa basqarıwda "Roller hám Juwapkershilikler" (Roles and Responsibilities) anıq bólistiriliwi shárt. 1) SQA Manager (Basqarıwshı) – sapa strategiyasın, standartlardı hám qurallardı tańlaydı. 2) QA Engineer (Injener) – test jobaların dúzedi, testleydi hám qátelerdi tirkeydi. 3) Test Automation Engineer (Avtomatlastırıwshı) – avtomat test kodların jazadı. 4) Developer (Programmist) – Unit testlerdi jazıw hám kod sapasına juwap beriw. 5) Product Owner (Ónim iyesi) – qabıllaw kriteriyaların (Acceptance Criteria) anıqlaw hám UAT (User Acceptance Testing) qabıllaw. Hár kim óz ornın biliwi kerek.
Shólkemlestiriwdiń eń qıyın tárepi – "Ǵárezsizlik" (Independence) máselesi. QA injeneri proekt menedjerine (kim "tezirek pitkeriwdi" qáleydi) boysınbawı kerek, ol sapa menedjerine boysınıwı tiyis. Eger QA ónimdi "Stop" (toqtatıw) qıla almasa, onıń jumısı formal xarakterge iye boladı. Sapa basqarıw
– bul "Konstruktiv konflikt". Tester qáteni tabıwǵa, al programmist onıń joqlıǵın dálillewge háreket etedi, nátiyjede haqıyqat (sapa) payda boladı.
Texnologiyalıq tárepler: Sapa infrastrukturası
Sapanı basqarıw ushın tek adamlar emes, al "Sapa infrastrukturası" (Quality Infrastructure) da zárúr. Infrastruktura – bul testlew serverleri, maǵlıwmatlar bazaları, emulyatorlar hám programmalıq qurallar jıynaǵı. Eń birinshi talap – "Testlew ortalıǵı" (Test Environment) "Islep shıǵarıw ortalıǵına" (Production Environment) maksimal dárejede uqsas bolıwı kerek. Eger testerler Windows-ta testlese, al klientler Linux qollansa, test nátiyjeleri qáte bolıwı múmkin. Sol sebepli, "Virtualizaciyalaw" hám "Konteynerizaciyalaw" (Docker) texnologiyaları sapa infrastrukturasınıń tiykarına aylandı.
Sapa basqarıw quralları (SQA Tools) processlerdi avtomatlastırıw hám qadaǵalaw ushın kerek. 1) "Test Management Tools" (TestLink, Zephyr) – test scenariylerin saqlaw hám test nátiyjelerin analizlew. 2) "Defect Tracking Tools" (Jira, Bugzilla) – qátelerdiń ómirlik ciklın (Jaratıw -> Ońlaw -> Tekseriw -> Jabıw) basqarıw. 3) "Source Code Management" (Git, GitLab) – kod versiyaların qadaǵalaw. 4) "Static Analysis Tools" (SonarQube) – kodtıń sapasın hám qáwipsizligin avtomat túrde tekseriw. Bul qurallar bir-biri menen "Integraciyalanǵan" bolıwı shárt (mısalı, Jira Git penen baylanısıwı kerek).
Infrastrukturanıń taǵı bir bólegi – "Test maǵlıwmatları" (Test Data). Haqıyqıy (klientlik) maǵlıwmatlardı testlewde qollanıw qáwipli (GDPR nızamı boyınsha). Sol sebepli, "Sintetik maǵlıwmatlar" (Fake Data) jaratıw yamasa haqıyqıy maǵlıwmatlardı "Depersonalizaciyalaw" (anonimlestiriw) kerek. Test maǵlıwmatların basqarıw (TDM - Test Data Management) – bul bólek texnologiyalıq process. Sapalı maǵlıwmat bolmasa, testler isenimsiz boladı.
"Monitoring hám Loglaw" (Observability) da sapa infrastrukturasına kiredi. Testlew tek relizden aldın emes, al relizden keyin de dawam etedi. Production-daǵı qátelerdi tez tabıw ushın loglardı jıynawshı (ELK Stack, Splunk) hám serverlerdi baqlawshı (Prometheus, Grafana) sistemalar kerek. SQA injenerleri bul qurallardıń kórsetkishlerine (Error Rate, Latency) qaray processlerdi jaqsılaydı.
Processlerdi avtomatlastırıw hám CI/CD
Sapanı basqarıwdıń texnologiyalıq shıńı – bul "Processlerdi avtomatlastırıw". Qol menen islenetuǵın jumıslar (Manual Testing, Deployment) áste, qımbat hám qátege beyim. Sol sebepli, "Úziliksiz integraciya hám
Jetkiziw" (CI/CD - Continuous Integration / Continuous Delivery) konveyerleri engizilmekte. CI/CD – bul kod jazılǵannan baslap, onıń testlenip, serverge ornatılıwına shekemgi processti tolıq avtomatlastıratuǵın sistema (Jenkins, GitLab CI). CI/CD konveyeri sapa "Dárwazaları"nan (Quality Gates) turadı. 1) Kod Commit: Programmist kodtı jiberdi. 2) Build: Kod kompilyaciya boldı. 3) Unit Test: Birlik testler ótti. 4) Static Analysis: Kod stili hám qáwipsizlik tekserildi (SonarQube). 5) Deploy to Test: Test serverge ornatıldı. 6) Auto E2E Test: Avtomat interfeys testleri ótti (Selenium). Eger usı qádemlerdiń birewinde qáte shıqsa, konveyer toqtaydı hám kod qaytarıladı. Bul "Sapasız kodtıń ótip ketpewin" kepilleydi.
Avtomatlastırıw tek testler menen sheklenbeydi. "Infrastruktura kod retinde" (IaC - Infrastructure as Code) texnologiyası (Terraform, Ansible) serverlerdi sazlaw procesin de avtomatlastıradı. Bul testlew ortalıǵınıń "birdeyligin" (Consistency) támiyinleydi. "Configuration drift" (sazlawlardıń ózgerip ketiwi) mashqalası joǵaladı. Biz bir buyrıq penen jańa test serverin jaratıp, jumıs pitkennen soń óshire alamız.
Avtomatlastırıwdıń paydası – "Tez keri baylanıs" (Fast Feedback). Programmist kodtı jazǵannan keyin 10-15 minutta onıń durıs-qátesin biledi. Qol menen islegende bul kúnler yamasa hápteler alıwı múmkin. Degen menen, avtomatlastırıw qımbat turadı (kod jazıw, qollap-quwatlaw). Sol sebepli, "Test piramidası"na (kóp Unit test, az UI test) ámel etiw kerek. 100% avtomatlastırıw múmkin emes, izlewshilik (Exploratory) testlew ushın adam intellekti bárqulla kerek.
Sapa mádeniyatı hám kommunikaciya
Shólkemlestiriw hám texnologiya "Sapa mádeniyatı" menen birlestiriliwi kerek. Texnologiyalar (Jira, Jenkins) tek qural, olar adamlar arasındaǵı baylanıstı almastıra almaydı. Sapalı ónim jaratıw ushın "Kros-funkcional komandalar" (Cross-Functional Teams) kerek. Bunda programmist, tester, dizayner hám analitik bir stolda (yamasa bir chatta) otırıp, máseleni birge sheshedi. "DevOps" mádeniyatı usı birigiwdi (Collaboration) úgit-násiyatlaydı.
Kommunikaciyanıń sapası ónim sapasına tikkeley tásir etedi (Konvey nızamı: "Sistema strukturası shólkemniń kommunikaciya strukturasın qaytalaydı"). Eger testerler menen programmistler urıssa, programma da
"bóleklenip" qaladı. SQA procesi kommunikaciyanı jaqsılawǵa xızmet etiwi kerek. Mısalı, qáte (Bug) tabılǵanda, onıń "statusın" talqılaw emes, al onıń "bizneske tásirin" talqılaw kerek.
Sapa mádeniyatında "Bilim almasıw" (Knowledge Sharing) zárúr. QA injenerleri programmistlerge test jazıwdı úyretiwi, al programmistler QA-ge kodtıń strukturasın túsindiriwi kerek. "Pair Testing" (Jup testlew) – programmist hám tester birge otırıp testleydi. Bul usıl bir-birin túsiniwge hám qátelerdi tez tabıwǵa járdem beredi. Sonday-aq, "Post-Mortem" (Qáteni analizlew) jıynalısları "ayıplaw" (Blaming) emes, al "úyreniw" (Learning) ruhında ótiwi tiyis. Juwmaqlap aytqanda, sapanı basqarıw – bul shólkemlestiriw (adamlar, processler) hám texnologiya (qurallar, avtomatlastırıw) sıńar qanatları. Tek birewine súyeniw sapanıń aqsawına alıp keledi. Sapalı shólkemlestiriw strukturası hám kúshli texnologiyalıq baza – bul sapalı programmalıq ónimniń kepili.
BAQLAW SORAWLARÍ:
1.Sapanı basqarıwda "Oraylasqan" hám "Kirgizilgen" (Embedded) QA modelleriniń ayırmashılıǵı nede?
2.Testlew ortalıǵı (Test Environment) menen Islep shıǵarıw ortalıǵı (Production) arasındaǵı uqsaslıq ne ushın áhmiyetli?
3.CI/CD (Úziliksiz integraciya) konveyerindegi "Sapa Dárwazaları" (Quality Gates) qanday wazıypanı atqaradı?
4."Test piramidası" (Test Pyramid) koncepciyasınıń avtomatlastırıw strategiyasına tásiri qanday?
5."Konvey nızamı" (Conway's Law) programmalıq támiynat arxitekturası hám komanda strukturası arasındaǵı baylanıstı qalay túsindiredi?
