0%
9-dars

Test darajalari va Regression

Test darajalari โ€” qaysi bosqichda kim, nima test qiladi. Test piramidasi va Regression Testing โ€” professional QA uchun asosiy tushunchalar.

90 daqiqa
Darajalar va strategiya
6 ta interaktiv topshiriq

Nega test darajalari kerak?

Tasavvur qiling: siz 100 qavatli bino quryapsiz. Har qavatda bir xil tarzda tekshirasizmi? Albatta yo'q. Poydevorni โ€” muhandislar, xonalarni โ€” sozlovchilar, umumiy ko'rinishni โ€” arxitektor tekshiradi.

Dasturlashda ham shunday. Kichik qismlarni dasturchilar, modullar orasidagi bog'liqlikni senior dasturchilar, butun tizimni QA'lar, yakuniy qabul qilishni biznes tomoni sinaydi.

Bu darsda 4 ta test darajasini, ular orasidagi balansni (Test Piramidasi) va Regression Testing'ni ko'rib chiqamiz.

4 ta asosiy test darajasi

Har bir test darajasi boshqacha maqsadga xizmat qiladi. Ularning har biri kim tomonidan, qachon va qanday asboblar bilan bajariladi โ€” bilish kerak.

1
Component Testing
UNIT TESTING
Dasturning eng kichik qismi โ€” bitta funksiya yoki metod testlanadi. Maqsad: kodning har birligi alohida to'g'ri ishlayotganini ta'minlash.
Kim qiladi
Dasturchilar
Qachon
Kod yozayotganda
Asboblar
JUnit, Jest, pytest
Misol: Calculator ilovasida qo'shish(2, 3) funksiyasi 5 qaytarayaptimi? Agar ha โ€” test Pass, agar yo'q โ€” Fail. Foydalanuvchi bu testni ko'rmaydi, bu faqat kod darajasida.
2
Integration Testing
INTEGRATSIYA TESTLASH
Modullar yoki qismlar o'zaro bog'lanib ishlayaptimi tekshiriladi. Ikki yoki undan ko'p komponent birga to'g'ri ishlayaptimi?
Kim qiladi
Dasturchilar + QA
Qachon
Component'lar tayyor bo'lganda
Asboblar
Postman, REST Assured
Misol: Login sahifasi (Frontend) โ†’ Server (Backend) โ†’ Database. Frontend'ga email/parol kiritiladi, backend'ga yuboriladi, database'dan tekshiriladi. 3 ta komponent birga ishlayaptimi? โ€” integration test.
3
System Testing
TIZIM TESTLASHI
Butun tizim to'liq yig'ilgan holda testlash. Foydalanuvchi kabi tizimni ishlatib ko'rish โ€” boshdan oxirigacha senariylar.
Kim qiladi
QA'lar (sizning asosiy ishingiz!)
Qachon
Butun tizim tayyor bo'lganda
Asboblar
Selenium, Playwright, manual
Misol: Uzum Market'da: foydalanuvchi ro'yxatdan o'tadi โ†’ login qiladi โ†’ mahsulot qidiradi โ†’ savatga qo'shadi โ†’ to'lov qiladi โ†’ xarid tasdiqlangan xabarni oladi. Butun bu jarayonni QA sinab ko'radi.
4
Acceptance Testing
QABUL TESTLASHI (UAT)
Biznes tomon yoki haqiqiy foydalanuvchi mahsulotni qabul qilish uchun tekshiradi. "Bu mening talablarimga javob beryaptimi?" savoliga javob.
Kim qiladi
Product Owner, Mijoz
Qachon
System Testing tugagandan so'ng
Asboblar
Manual, real ma'lumotlar
Misol: Click'ning mijozi (bank) tizimni o'zlari sinab ko'radi: "Pul o'tkazish bizning real shartnomalarga mos keladimi?". Agar ha โ€” tizim production'ga chiqadi.
๐Ÿ’ก Hayotiy misol
Pizza pishirish jarayoni
Component: Har ingredient alohida yaxshimi? (xamir, sos, pishloq) ยท Integration: Ular birga qo'shilganda mos keladimi? ยท System: Pishirilgan pizza yaxlit holda yaxshimi? ยท Acceptance: Mijoz ta'mi yoqadimi, buyurtmasiga mos keladimi?
๐ŸŽฏ Amaliy topshiriq

Test darajalarini tartibga qo'ying

Darajalarni pastdan yuqoriga (boshlanishdan yakunigacha) tartibda sudrab joylashtiring.

1-daraja
2-daraja
3-daraja
4-daraja
System Testing
Component Testing
Acceptance Testing
Integration Testing
0 / 4 to'g'ri
๐ŸŽฏ Bog'lang

Test darajasi va uni kim bajaradi

Chap tomonda darajani tanlang, o'ngdan kim bajarishini bog'lang.

Test darajasi

Component Testing
Integration Testing
System Testing
Acceptance Testing

Kim bajaradi

Product Owner yoki Mijoz
QA (sizning asosiy ishingiz)
Dasturchilar (o'zlari yozgan kod uchun)
Dasturchi + QA birga
0 / 4 juft topildi

Test Piramidasi

Asosiy atama

Test Piramidasi โ€” test darajalari orasida qancha test bo'lishi kerakligi haqidagi nazariya. Mike Cohn tomonidan taklif qilingan.

Asosiy g'oya: Ko'p sonli kichik (tez) testlar pastda, kam sonli katta (sekin) testlar yuqorida.

Piramidaning ideal ko'rinishi

Yuqorida UI / E2E Tests ~10%
3-daraja System Tests ~15%
2-daraja Integration Tests ~25%
1-daraja (eng pasti) Unit / Component Tests ~50%
โ†‘ Tez, arzon, ko'p miqdor = pastda ยท Sekin, qimmat, kam miqdor = yuqorida โ†“

Nega bunday proporsiya?

Pastdagi testlar (Unit)

Afzalliklari: Juda tez bajariladi (millisekunddalarda), arzon yozish, ishonchli. Shuning uchun ko'p miqdor yozish mumkin va kerak.

Yuqoridagi testlar (E2E)

Kamchiliklari: Sekin (minutlarda), qimmat, ba'zida "flaky" (bir xil natija bermaydi). Shuning uchun kam, faqat eng muhim sahnalar uchun.

Amaliy xulosa

Agar sizning loyihangizda 1000 ta Unit test va 10 ta E2E test bo'lsa โ€” bu sog'lom piramida. Agar 100 ta Unit va 500 ta E2E โ€” bu muammo (Ice Cream Cone).

Anti-pattern: Ice Cream Cone (muzqaymoq konus)

Ba'zi loyihalarda piramida teskari bo'ladi โ€” ko'p E2E testlar, kam Unit testlar. Bu yomon holat:

โš ๏ธ Ice Cream Cone Anti-Pattern
Manual Testing ~40%
E2E / UI Tests ~30%
Integration ~20%
Unit ~10%
Bu holat sekin, qimmat va nazorat qilish qiyin!
๐Ÿ’ก Hayotiy misol
Poydevor va tom
Bino qurayotganingizda kuchli poydevor va yengil tom kerak. Agar poydevor zaif, tom og'ir bo'lsa โ€” bino yiqiladi. Xuddi shunday testlarda ham โ€” ko'p Unit test va kam E2E test โ€” bu kuchli strategiya.

Regression Testing

Asosiy atama

Regression Testing โ€” dasturga yangi o'zgarish kiritilgandan so'ng, eski funksiyalar ishlayaptimini tekshirish.

Oddiy qilib: yangi feature qo'shildi โ€” qolgan narsalar yana ishlayaptimi? Regression Testing aynan shuni tekshiradi.

Nima uchun kerak?

Real misol

Uzum Market'da yangi "Chegirma kodi" funksiyasi qo'shildi. Dasturchi kodni yozdi, yangi funksiya ishlayapti. Lekin... endi savat ham ishlamay qoldi! Chunki yangi kod eski savat kodiga ta'sir qilgan. Bu holatni oldini olish uchun โ€” Regression Testing.

Qachon bajariladi?

Manual vs Automation

Regression Testing juda ko'p marta takrorlanadigan ish. Shuning uchun u avtomatlashtirish uchun ideal. Keling qaraymiz:

Manual Regression

Yangi jamoalarda yoki kichik loyihalarda ishlatiladi.

  • Asosiy senariylar qo'lda tekshiriladi
  • Har release oldidan 1-2 kun ketadi
  • Inson xatosi bo'lishi mumkin
  • Yangi boshlovchilar uchun yaxshi

Automation Regression

Katta loyihalarda albatta kerak.

  • Yuzlab testlar 30 daqiqada
  • Har night'da avtomatik ishga tushadi
  • Bug'larni darhol topadi
  • Senior QA yoki SDET yozadi

Smoke Testing vs Regression Testing

Bu ikkala atamani ko'pchilik aralashtirib yuboradi. Intervyu'da so'raydi.

Smoke Testing

Smoke โ€” "ishlayaptimi umuman?" degan savolga javob. Eng asosiy funksiyalar ishlayaptimi? 15-30 daqiqalik tez tekshiruv.

Misol: Sayt ochilayaptimi? Login ishlayaptimi? Bosh sahifa chiqayaptimi? Agar ha โ€” keyingi testlarga o'tamiz.

Regression Testing

Regression โ€” "eski narsalar yana ishlayaptimi?" degan savolga javob. Chuqurroq, batafsilroq tekshiruv. Bir necha soatdan bir necha kungacha.

Misol: Barcha eski funksiyalarni bir-bir tekshirish. Login, ro'yxatdan o'tish, savat, to'lov, profil... hammasini.

Oddiy farqlash

Smoke = tez, yuzaki ("ishlayaptimi?") ยท Regression = sekin, chuqur ("to'liq ishlayaptimi?")

๐ŸŽฏ Bug classifier

Bug qaysi test darajasida topilishi kerak?

Har bir bug'ni o'qing va ideal holda qaysi darajada topilishi kerakligini tanlang.

Qo'shish funksiyasi noto'g'ri natija qaytarmoqda
calculator.add(2, 3) = 6 qaytaryapti, 5 o'rniga. Bu faqat bitta funksiyaga tegishli.
Frontend'dan ma'lumot Backend'ga yetib bormaydi
Forma to'ldiriladi, lekin server xato qaytaradi โ€” ikki komponent orasidagi bog'liqlik buzilgan.
Mobil versiyada "Savatga qo'shish" tugmasi ko'rinmaydi
Butun tizim ishlayapti, lekin UI muammosi foydalanuvchi tajribasiga ta'sir qiladi.
Mijoz: "Bu bizning brend ranglarga mos kelmaydi"
Texnik jihatdan hammasi to'g'ri ishlayapti, lekin biznes talablariga to'liq mos emas.
Component / Unit
Integration
System
Acceptance
0 / 4 to'g'ri
๐ŸŽฌ Haqiqiy stsenariy
Payme'da yangi feature qo'shildi

Juma, 14:00. Payme jamoasi yangi funksiya qo'shdi โ€” "Do'stga pul yuborish". Dasturchilar kodni yozdi, test server'ga joyladi.

Sizning vazifangiz: Testorsiz. Bu yangi funksiyani test qilish kerak, lekin yana nima tekshirasiz?

Eng to'g'ri strategiya qaysi?
โšก Tezkor tekshiruv
Sog'lom Test Piramida'da qaysi test ko'proq bo'lishi kerak?

TestShop'da test darajalarini qo'llash

Endi nazariyani TestShop'da amaliy sinab ko'ramiz. Har bir test darajasi uchun konkret vazifalar bor.

๐Ÿ›’

TestShop โ€” Test darajalari amaliyoti

System Testing va Regression Testing'ni amaliy bajaring.

๐Ÿš€ TestShop'ga o'tish

Sizning 3 bosqichli vazifangiz:

1
System Testing โ€” End-to-End senariy
Foydalanuvchi sifatida to'liq senariyni bajaring: Ro'yxatdan o'ting โ†’ Login qiling โ†’ Mahsulot tanlang โ†’ Savatga qo'shing โ†’ Checkout'ga boring. Har bosqichda nima ishlayapti, nima yo'q? Hisobot tuzing.
2
Regression Test Suite tuzing
Tasavvur qiling: TestShop'da yangi funksiya qo'shildi. Qaysi 10 ta eski funksiyani albatta qayta sinash kerak? Google Sheets'da Regression Test Suite ro'yxatini tuzing.
3
Smoke Test ro'yxatini tuzing
Har ertalabki 15 daqiqali Smoke Test uchun 5 ta eng muhim tekshiruvni aniqlang. Masalan: sayt ochilayaptimi, login ishlayaptimi, bosh sahifa chiqayaptimi va hokazo.
๐Ÿ’ก Pro maslahat

Tuzilgan Regression va Smoke Test ro'yxatlaringizni saqlang. Intervyu'da: "Siz qanday Regression strategiyasi yaratasiz?" degan savolga konkret misol bilan javob bera olasiz. Bu sizni boshqa nomzodlardan ustun qiladi.

Intervyu savollari

Test darajalari va Regression โ€” intervyu'da eng ko'p so'raladigan mavzular. Javoblarni puxta o'rganing.

๐Ÿ’ก Har savol ustiga bosing โ€” professional javobni ko'rasiz.

Q1 Test darajalarini sanab bering va kim bajarishini ayting. +

Javob: "4 ta asosiy test darajasi bor:"

  • Component/Unit Testing โ€” Dasturchilar bajaradi. Eng kichik qism โ€” bir funksiya.
  • Integration Testing โ€” Dasturchi + QA. Modullar o'zaro ishlayaptimi.
  • System Testing โ€” QA'lar bajaradi. Butun tizim end-to-end.
  • Acceptance Testing โ€” Product Owner yoki mijoz. Biznes talablar bajarilganmi.

Muhim: "Men aynan System Testingda ishlayman โ€” bu QA'ning asosiy sohasi."

Q2 Test Piramidasi nima va u nima uchun muhim? +

Javob: "Test Piramidasi โ€” test darajalari orasida balans haqidagi nazariya. Ko'p Unit, o'rtacha Integration, kam E2E."

Nima uchun?

  • Unit testlar tez (millisekund) va arzon
  • E2E testlar sekin (minut) va qimmat
  • Ko'p arzon test = tez feedback = pul tejash

Anti-pattern: Ice Cream Cone โ€” ko'p E2E, kam Unit. Bu yomon โ€” tez natija yo'q.

Q3 Regression Testing nima? Qachon bajariladi? +

Javob: "Regression Testing โ€” dasturga yangi o'zgarish kiritilgandan so'ng, eski funksiyalar buzilmaganligini tekshirish."

Qachon bajariladi:

  • Yangi funksiya qo'shilganda
  • Bug tuzatilgandan so'ng
  • Har release'dan oldin
  • Konfiguratsiya o'zgarganda

Pro javob: "Katta loyihalarda Regression Testing avtomatlashtirilishi kerak โ€” chunki u har safar takrorlanadi. Manual qilish ko'p vaqt oladi."

Q4 Smoke Testing va Regression Testing farqi? +

Javob:

  • Smoke Testing โ€” "ishlayaptimi umuman?". Eng asosiy funksiyalar (login, bosh sahifa). 15-30 daqiqa.
  • Regression Testing โ€” "barcha eski funksiyalar ishlayaptimi?". Chuqur, batafsil. Soatlar yoki kunlar.

Ketma-ketlik: "Build kelsa, avval Smoke qilamiz. Agar smoke o'tsa โ€” keyin Regressionga o'tamiz. Smoke Fail bo'lsa โ€” Regression'ga o'tmaymiz, build'ni qaytaramiz."

Q5 Unit Testing bilan Integration Testing farqi? +

Javob:

  • Unit Testing โ€” bitta komponent (masalan, bir funksiya) alohida test qilinadi. Boshqalardan ajratilgan.
  • Integration Testing โ€” 2 yoki undan ko'p komponent birga ishlayaptimi tekshiriladi.

Misol:

  • Unit: add(2, 3) = 5 โ€” bitta funksiya
  • Integration: Login formasidan yuborilgan ma'lumot โ†’ server โ†’ database'ga yetib borayaptimi โ€” 3 ta komponent birga
Q6 Siz qaysi test darajasida ko'proq ishlaysiz? +

Javob shabloni: "Men asosan System Testingda ishlayman โ€” bu QA'ning asosiy sohasi. Butun tizimni end-to-end sinab ko'raman."

Qo'shimcha:

  • Integration Testingda ham qatnashaman โ€” API testing uchun (Postman)
  • Acceptance Testingda PO bilan birga ishlayman
  • Unit Testing bilan to'g'ridan-to'g'ri ishlamayman โ€” bu dasturchilarning sohasi

Pro javob: "Lekin Unit test natijalarini ko'rib boraman โ€” agar unit test'larda muammo bo'lsa, bu kelgusida System darajasida ham chiqadi."

Q7 Acceptance Testing'da QA qanday vazifa bajaradi? +

Javob: "Acceptance Testing'ni asosan Product Owner yoki mijoz bajaradi. Lekin QA:"

  • UAT muhitini tayyorlashda yordam beradi
  • Test ma'lumotlarini tayyorlaydi
  • PO'ga test senariylar tushuntiradi
  • UAT paytida topilgan bug'larni qabul qilib, developer'larga yuboradi
  • Tuzatilgan bug'larni qayta tekshiradi

Muhim: "UAT โ€” QA'ning qaror qabul qilish sohasi emas. QA biznes emas, texnik mutaxassis."

3 ta asosiy fikr

Bu darsdan eslab qolish kerak bo'lgan eng muhim g'oyalar

01
4 ta test darajasi
Component โ†’ Integration โ†’ System โ†’ Acceptance. Har biri boshqa maqsad va ishchi.
02
Test Piramidasi โ€” balans
Ko'p Unit (pastda), kam E2E (yuqorida). Ice Cream Cone โ€” anti-pattern.
03
Regression โ€” eski ham ishlashi kerak
Har yangilanishdan keyin eski funksiyalarni tekshirish. Automation uchun ideal.
๐Ÿ† Darsni muvaffaqiyatli tugatdingiz!