Скачиваний:
0
Добавлен:
26.01.2026
Размер:
155.79 Кб
Скачать

19-lekciya. Programmalıq támiynattı testlew hám tekseriw.

Jobası:

1.Testlewdiń mánisi, maqseti hám "Verifikaciya vs Validaciya" túsinikleri.

2.Testlew dárejeleri: Birlik, Integraciyalıq, Sistemalıq hám Qabıllaw.

3.Testlew usılları: Aq qutı (White Box) hám Qara qutı (Black Box).

4.Avtomatlastırılǵan testlew hám TDD (Test Driven Development).

Testlewdiń tiykarları hám Verifikaciya/Validaciya

Programmalıq támiynattı testlew (Software Testing) – bul programmanıń haqıyqıy nátiyjelerin kútilgen nátiyjeler menen salıstırıw hám qátelerdi (bugs) tabıw procesi. Kóp adamlar testlewdiń maqseti "programmanıń durıs isleytuǵının dálillew" dep oylaydı. Biraq Glenford Mayers aytqanınday: "Testlew – bul qáte tabıw maqsetinde programmanı orınlaw procesi". Testlewdiń tabısı tabılǵan qáteler sanı menen ólshenedi. Qátesiz programma joq, tek jaqsı testlenbegen programma bar. Testlew konstrukciyalaw procesiniń ajıralmas bólegi bolıp, ol sapaǵa (Quality Assurance - QA) kepillik beredi.

Testlew procesinde eki tiykarǵı túsinik bar: "Verifikaciya" (Verification) hám "Validaciya" (Validation). Olar bir-birine uqsas bolıp kóringeni menen, mánisleri hár qıylı. Verifikaciya – "Biz ónimdi durıs islep atırmız ba?" (Are we building the product right?) degen sorawǵa juwap beredi. Yaǵnıy, programma texnikalıq specifikaciyaǵa, standartlarǵa hám dizaynǵa sáykes kele me? Bul ishki sapanı tekseriw. Validaciya – "Biz durıs ónimdi islep atırmız ba?" (Are we building the right product?) degen sorawǵa juwap beredi. Yaǵnıy, programma paydalanıwshınıń haqıyqıy talaplarına hám kútkenine sáykes kele me? Programma texnikalıq jaqtan qátesiz bolıwı múmkin (Verifikaciya OK), biraq paydalanıwshıǵa kerek emes bolıwı múmkin (Validaciya Fail).

Testlewdiń "V-modeli" (V-model) bul processlerdiń baylanısın kórsetedi. Hárbir islep shıǵıw basqıshına (Talaplar, Dizayn, Kod) sáykes keletuǵın testlew basqıshı bar. Testlew tek kod jazılıp bolǵannan keyin baslanbaydı, ol proekttiń basında test jobasın (Test Plan) hám test scenariylerin (Test Cases) jazıwdan baslanadı. Test scenariyi – bul kirisiw maǵlıwmatları, orınlanatuǵın háreketler hám kútiletuǵın nátiyje jazılǵan kishi hújjet.

Testlewdiń "Jeti principi" (ISTQB) bar. Olardıń eń áhmiyetlisi – "Testlew qátelerdiń bar ekenin kórsetedi, biraq joq ekenin dálilley almaydı". Qansha testlesek te, biz programmanıń 100% qátesiz ekenine kepillik bere almaymız. Ekinshi princip – "Pesticid paradoksı". Eger birdey testlerdi qayta-qayta orınlay berseńiz, olar jańa qátelerdi taba almaydı. Testlerdi turaqlı jańalap turıw kerek.

Testlew dárejeleri

Testlew procesi piramida sıyaqlı tómennen joqarıǵa qaray bir neshe dárejege bólinedi. Eń tómengi hám eń kóp kólemli dáreje – "Birlik testlew" (Unit Testing). Bunda programmanıń eń kishi bólekleri – funkciyalar, metodlar yamasa klasslar izolyaciyada testlenedi. Birlik testlerdi ádette programmistlerdiń ózleri jazadı (JUnit, NUnit, PyTest). Maqset – hárbir "gerbishtiń" (kodtıń) salamat ekenine isenim payda etiw. Birlik testler tez isleydi hám qáteniń ornın anıq kórsetedi.

Ekinshi dáreje – "Integraciyalıq testlew" (Integration Testing). Birlik testler durıs ótti deyik, biraq bul bólekler birge isley me? Integraciyalıq testlew moduller arasındaǵı interfeyslerdi hám maǵlıwmat almasıwdı tekseredi. Mısalı, maǵlıwmatlar bazası menen baylanıs, API shaqırıwları. Bul jerde "Úlken jarılıs" (Big Bang) usılınan (hámmesin birden qosıw) qashıw kerek, onıń ornına "Artıwshı" (Incremental) usıldı qollanǵan maqul.

Úshinshi dáreje – "Sistemalıq testlew" (System Testing). Bul basqıshta tolıq jıynalǵan programma "qara qutı" retinde testlenedi. Funkcional talaplardan tısqarı, "Funkcional emes talaplar" da tekseriledi: Ónimlilik (Performance Testing), Qáwipsizlik (Security Testing), Júklemege shıdamlılıq (Load Testing). Sistemalıq testlewdi kóbinese ǵárezsiz QA (Quality Assurance) komandası ámelge asıradı. Olar programmanıń ishki kodın bilmewi múmkin, biraq onıń sırtqı minez-qulqın qatań tekseredi.

Tórtinshi hám eń joqarı dáreje – "Qabıllaw testlewi" (Acceptance Testing). Bul testlewdi buyırtpashı (klient) yamasa onıń wákilleri ótkizedi. Maqset – programmanı paydalanıwǵa qabıllaw (User Acceptance Testing - UAT). Eger programma usı basqıshtan ótse, ol "Production"ǵa (real paydalanıwǵa) shıǵarıladı. Geyde "Alpha" (ishki) hám "Beta" (sırtqı sheklengen paydalanıwshılar) testlewleri de qollanıladı.

Testlew usılları: Aq qutı hám Qara qutı

Testlew usılları programmanıń ishki dúzilisi haqqındaǵı bilimge qaray eki túrge bólinedi. "Aq qutı" (White Box / Glass Box) testlewde testlewshi

programmanıń ishki kodın, algoritmlerin hám strukturasın tolıq biledi hám kóre aladı. Ol test scenariylerin kodtıń barlıq tarmaqlanıwların (if-else) hám cikllerin qamtıp alatuǵınday etip dúzedi. "Kodtı qamtıw" (Code Coverage) metrikası qollanıladı: testler kodtıń neshe procentin orınladı? Aq qutı usılı tiykarınan birlik testlewde qollanıladı.

"Qara qutı" (Black Box) testlewde testlewshi programmanıń ishki kodın bilmeydi. Ol programmaǵa tek "Kirisiw" (Input) beredi hám "Shıǵıw" (Output) nátiyjesin tekseredi. Ishinde ne bolıp atırǵanı oǵan qızıq emes. Bul usıl paydalanıwshınıń kózqarasına eń jaqın usıl. Qara qutı usılında "Ekvivalentlik klasslarına bóliw" (Equivalence Partitioning) hám "Shegaralıq mánisler analizi" (Boundary Value Analysis) texnikaları qollanıladı. Mısalı, eger programma 1- 100 aralıǵındaǵı sanlardı qabıllasa, biz 50 (orta), 1, 100 (shegara), 0, 101 (qáte) mánislerin tekseremiz.

Bul eki usıldıń ortasında "Kúlreń qutı" (Grey Box) usılı bar. Bunda testlewshi kodtı tolıq bilmese de, maǵlıwmatlar bazasınıń strukturasın yamasa algoritmlerdiń ulıwma principlerin biledi. Bul oǵan effektlirek test scenariylerin jazıwǵa járdem beredi. Mısalı, veb-sayttı testlegende, testlewshi HTML kodın hám API sorawların analizley aladı.

Sonday-aq, testlew "Statikalıq" hám "Dinamikalıq" bolıwı múmkin. Dinamikalıq testlewde programma iske túsiriledi. Statikalıq testlewde programma iske túsirilmeydi, tek kod yamasa hújjetler oqıladı (Review, Inspection). Statikalıq testlew qátelerdi júdá erte basqıshta tabıwǵa imkaniyat beredi hám arzanǵa túsedi.

Avtomatlastırıw hám TDD

Zamanagóy programmalıq injeneriyada qol menen testlew (Manual Testing) jetkiliksiz. Programma hár kúni ózgeredi, hár ózgeristen keyin mıńlaǵan testlerdi qol menen qaytalaw (Regression Testing) múmkin emes. Sol sebepli "Testlewdi avtomatlastırıw" (Test Automation) zárúr. Selenium (Web UI), Appium (Mobile), JUnit (Unit) sıyaqlı qurallar test scenariylerin avtomat túrde orınlap, esabat beredi. Avtomat testler tez, dál hám sharshamaydı. Olar CI/CD (Úziliksiz integraciya) konveyeriniń tiykarı bolıp tabıladı.

Avtomatlastırıwdıń shıńı – bul "TDD" (Test-Driven Development – Test arqalı islep shıǵıw). TDD metodologiyasında kod jazıwdıń tártibi kerisinshe boladı: 1) Dáslep qáteni tekseriwshi test (Red test) jazıladı (ol qulaydı, sebebi kod ele joq). 2) Testti ótkeriw ushın minimal kod jazıladı (Green). 3) Kod jaqsılanadı (Refactor). Bul "Red-Green-Refactor" cikli kodtıń sapasın hám

testleniwshiligin (testability) maksimal dárejege kóteredi. TDD programmisttiń oylawın ózgertedi. Ol kodtı "qalay jazıw" kerekliginen burın, "kod qalay qollanılıwı" kerekligin oylaydı. TDD arqalı jazılǵan kodlar ádette modulli, laconicalıq hám az qáteli boladı. Degen menen, TDD úyreniwdi hám tájiriybeni talap etedi.

Juwmaqlap aytqanda, testlew – bul programmalıq támiynattıń immuniteti. Qanshelli kúshli immunitet bolsa, programma sırtqı hám ishki "viruslarǵa" (qátelerge) sonshelli shıdamlı boladı. Testlewge jumsalǵan waqıt – bul joǵaltılǵan waqıt emes, bul keleshektegi tınıshlıq hám abıroy ushın investiciya.

BAQLAW SORAWLARÍ:

1."Verifikaciya" hám "Validaciya" processleriniń tiykarǵı ayırmashılıǵı nede?

2.Testlewdiń "Pesticid paradoksı" degen principi neni ańlatadı?

3.Birlik testlew (Unit Testing) menen Sistemalıq testlewdiń maqsetleri qalay parıqlanadı?

4."Aq qutı" hám "Qara qutı" testlew usıllarınıń kodtı biliw dárejesine qatnası qanday?

5.TDD (Test-Driven Development) metodologiyasınıń "Red-Green-Refactor" cikli qalay isleydi?

Соседние файлы в папке Programmalıq támiynat qurılması hám evolyuciyası