0%
12-dars

Test Analysis va Test Design

Test'ni qanday "yaratamiz"? Talabni o'qib test case'gacha β€” to'liq jarayon. Junior'dan Middle'ga o'tishdagi asosiy ko'nikma.

80 daqiqa
Test yaratish
7 ta interaktiv topshiriq

Test'lar qanday yaratiladi?

Tasavvur qiling: PO sizga yangi vazifa berdi β€” "Foydalanuvchi parolni tiklay olishi kerak". Endi siz nima qilasiz? Darhol test case yozasizmi? Yo'q.

Avval tahlil qilasiz (Analysis) β€” talabni tushunish, savollar berish, shartlarni aniqlash. Keyin dizayn qilasiz (Design) β€” aniq test case'lar, test ma'lumotlari, qadamlar.

Bu ikki bosqich β€” QA ning professional ishi. Junior asosan tayyor test case'larni bajaradi, Middle esa ularni o'zi yaratadi. Bu darsdan keyin siz Middle darajasidagi ko'nikmaga ega bo'lasiz.

πŸ’‘ Oddiy misol
Restoranda ovqat tayyorlash
Analysis: Mijoz "osh" buyurtma qildi. Ofitsiant aniqlashtiradi: "Nechta kishi uchun? Achchiq bo'lsinmi?". Buyurtma tafsilotlari yozib olinadi. Β· Design: Oshpaz aniq retsept tuzadi: "1 kg guruch, 0.5 kg go'sht, sabzi, piyoz, 30 daqiqa pishirish". Shundan keyin tayyorlashga kirishadi. Test'lar ham xuddi shunday β€” avval talabni tushunasiz, keyin aniq test case yozasiz.

Test Analysis

Asosiy atama

Test Analysis (Test tahlili) β€” talablarni o'qib, "NIMA test qilish kerak?" degan savolga javob topish bosqichi.

Oddiy qilib: Sizga berilgan vazifani chuqur tushunish va test uchun zarur narsalarni aniqlash.

Test Analysis bosqichlari

Yangi vazifa kelganda QA quyidagi 4 qadamni bajaradi:

  1. Talab/User Story'ni o'qish β€” diqqat bilan, har so'zga e'tibor
  2. Savollar tuzish β€” noaniq joylar, edge case'lar, missing scenarios
  3. Acceptance Criteria'ni tekshirish β€” yetarli'mi yoki qo'shimcha kerakmi?
  4. Test Conditions (test shartlari)ni aniqlash β€” nima testlanishi kerak?

Real misol: "Parolni tiklash" funksiyasi

PO bergan talab (asl)

"Foydalanuvchi parolni tiklay olishi kerak." β€” bu hammasi.

Sizning Test Analysis savollaringiz
  • Email orqali tiklash bo'ladimi yoki SMS orqali ham?
  • Havola necha vaqt ishlaydi (10 daqiqa, 1 soat, 1 kun)?
  • Bir marta ishlatiladimi yoki qayta-qayta?
  • Email mavjud bo'lmasa nima xabar chiqadi?
  • Necha urinishdan keyin akkount bloklanadi?
  • Eski parol va yangi parol bir xil bo'lishi mumkinmi?
  • Parol talablari (uzunlik, harf, raqam) bormi?
Sirli sir

Junior QA "Tushundim" deb darhol test case yozadi. Middle QA 10-15 ta savol beradi. Senior QA β€” bu savollarni 3 Amigos meeting'da beradi (oldindan).

Test Design

Asosiy atama

Test Design (Test dizayni) β€” Analysis bosqichidan keyin "QANDAY test qilamiz?" degan savolga javob. Aniq test case'lar va ma'lumotlarni yaratish.

Oddiy qilib: Tahlil qilingan talab asosida amaliy test case'lar yozish.

Test Design ning 3 ta asosiy komponenti

πŸ“‹
1. Test Conditions
TEST SHARTLARI
Test qilinishi kerak bo'lgan yuqori darajadagi shartlar. Bu hali aniq test case emas β€” "umuman nima testlanadi" ro'yxati.
Misol (parol tiklash):
β€’ TC-1: Email orqali parolni tiklay olish
β€’ TC-2: Noto'g'ri email kiritilganda xato
β€’ TC-3: Havola muddati tekshiruvi
β€’ TC-4: Yangi parol talablari
πŸ“
2. Test Cases
TEST HOLATLARI
Har Test Condition uchun aniq, qadam-baqadam ko'rsatma. Test case to'liq strukturalanngan bo'lishi kerak.
Test Case formati:
β€’ ID: TC-001
β€’ Title: Email orqali parol tiklash
β€’ Preconditions: Foydalanuvchi ro'yxatdan o'tgan
β€’ Steps: 1. Login β†’ 2. "Parolni unutdim" β†’ 3. Email kiritish β†’ 4. "Yuborish" bosish
β€’ Expected: Email'ga havola yuboriladi
πŸ’Ύ
3. Test Data
TEST MA'LUMOTLARI
Test bajarish uchun zarur aniq ma'lumotlar β€” email, parol, raqamlar va h.k. Bularsiz test bajarib bo'lmaydi.
Misol:
β€’ Mavjud email: test@example.com
β€’ Noto'g'ri email: noemail@example.com
β€’ Yangi parol: NewPass123!
β€’ Eski parol: OldPass456!

To'liq test case misoli (jadval ko'rinishida)

Test ID Tavsif Test Data Expected
TC-001 To'g'ri email bilan parol tiklash test@uzum.uz Email yuborildi
TC-002 Noto'g'ri email bilan urinish fake@uzum.uz "Email topilmadi"
TC-003 Bo'sh email bilan [empty] "Email kerak"
TC-004 Eski havolani ishlatish 1 soat oldingi havola "Havola eskirgan"
Muhim ketma-ketlik

Test Conditions β†’ Test Cases β†’ Test Data. Birinchi nima, keyin qanday, oxirida nima bilan. Bu ketma-ketlik buzilsa β€” sifatsiz test bo'ladi.

🎯 Amaliy mashq

O'zingiz Test Case yarating

Quyidagi maydonlarni to'ldiring va "Test Case'ni ko'rish" tugmasini bosing.

βœ… Sizning Test Case'ingiz
🎯 Tartibga qo'ying

Test Case komponentlarini joylashtiring

1-qadam: Pastdagi yozuvni bosing. 2-qadam: Mos keladigan komponent maydonini tanlang.

πŸ‘† Endi to'g'ri komponent maydonini tanlang
πŸ“Œ Test ID
Mos yozuvni qo'ying
πŸ“‹ Title (Sarlavha)
Mos yozuvni qo'ying
πŸ”§ Preconditions
Mos yozuvni qo'ying
πŸ“ Steps
Mos yozuvni qo'ying
βœ… Expected Result
Mos yozuvni qo'ying
1. Email kiritish 2. Parol kiritish 3. Kirish
TC-042
Dashboard sahifasiga o'tadi
Login muvaffaqiyatli
Foydalanuvchi ro'yxatdan o'tgan bo'lishi kerak
0 / 5 to'g'ri

Test Design Texnikalari

Endi siz komponentlarni bilasiz. Lekin yana bir savol β€” qanday tanlash, qaysi test case'larni yozish kerak? 100+ test case yozish kerak emas, eng samarali bo'lganlarini tanlash kerak.

Buning uchun Test Design Texnikalari bor. 4 ta eng asosiysini ko'ramiz (kelgusi 13-darsda batafsil).

1
Equivalence Partitioning
EKVIVALENT BO'LIMLASHTIRISH
Ma'lumotlarni guruhlarga bo'lish va har guruhdan 1 ta qiymat bilan test qilish.
Misol: yosh maydoni (18-65)

3 guruh: juda yosh (<18), to'g'ri (18-65), juda katta (>65)

15 (yosh) 30 (to'g'ri) 70 (katta)

100 ta qiymat sinash o'rniga β€” 3 ta yetadi!

2
Boundary Value Analysis
CHEGARA QIYMATLAR TAHLILI
Chegara qiymatlarni alohida sinash. Eng ko'p bug aynan chegaralarda topiladi!
Misol: parol uzunligi (8-20 belgi)

Sinash kerak: 7, 8, 20, 21 (chegara va uning yon-atrofi)

7 belgi 8 belgi 20 belgi 21 belgi

Dasturchilar tez-tez > va >= ni adashtirib qo'yishadi β€” chegara testlari bunday bugni topadi.

3
Decision Table
QAROR JADVALI
Bir nechta shartlar birlashganda har xil natijalar bo'lganda ishlatiladi. Jadval ko'rinishida.
Misol: chegirma berish

Shartlar: Sotuv summasi > 1mln + Akkount eski (1+ yil)

Summa > 1mln Akkount eski Chegirma
βœ…βœ…15%
βœ…βŒ10%
βŒβœ…5%
❌❌0%
4
State Transition
HOLAT O'TKAZISH
Tizim turli holatlardan o'tganda ishlatiladi (masalan, buyurtma holatlari).
Misol: Uzum buyurtma holatlari

Holatlar: Yangi β†’ To'langan β†’ Yetkazilmoqda β†’ Yetkazildi

Test: "Yangi" holatdan to'g'ridan-to'g'ri "Yetkazildi"ga o'tib bo'ladimi? Yo'q β€” bu noto'g'ri o'tish, bug bo'lishi kerak.

13-darsda batafsil

Bu 4 ta texnika β€” asoslari. Keyingi darsda ularning har birini batafsil amaliy misollar bilan ko'ramiz va Pairwise testing, Use Case testing kabi qo'shimchalarni ham o'rganamiz.

White Box texnikalar (qisqa eslatma)

Yuqoridagi 4 ta β€” Black Box texnikalari (10-darsda ko'rdik). White Box texnikalari ham bor, lekin ular asosan dasturchilar uchun:

Junior QA bu atamalarni bilishi kifoya. Amalda foydalanmaysiz.

🎯 Bog'lang

Texnika va misolni bog'lang

Har texnikaning eng yaxshi misolini toping.

Texnika

Equivalence Partitioning
Boundary Value Analysis
Decision Table
State Transition

Misol

Buyurtma "Yangi" β†’ "To'langan" β†’ "Yetkazildi"
Yosh: 15 (yosh), 30 (to'g'ri), 70 (katta)
Chegirma: agar VIP + summa >1mln = 15%
Parol uzunligi: 7, 8, 20, 21 belgi
0 / 4 juft topildi
🎯 Classifier

Bu Test Analysis yoki Test Design?

1-qadam: Holatni bosing. 2-qadam: Qaysi bosqichga tegishli ekanini tanlang.

πŸ‘† Endi pastdagi tugmalardan birini tanlang
PO'ga 10 ta savol berish: "Email majburiymi?", "Parol uzunligi qancha?"
Talabni chuqur tushunish va noaniq joylarni aniqlash.
TC-001 yozish: "Login muvaffaqiyatli" - qadamlar va kutilgan natija bilan
Aniq test case strukturasini yaratish.
Test Conditions ro'yxatini tuzish: nima testlanishi kerak?
Yuqori darajadagi shartlarni aniqlash, hali aniq case emas.
Boundary Value: parol 7, 8, 20, 21 belgi - aniq qiymatlar
Texnikalarni qo'llab, aniq test ma'lumotlarini tanlash.
Test Data tayyorlash: test@uzum.uz, fake@uzum.uz, [empty]
Test bajarish uchun aniq ma'lumotlar.
πŸ”
Test Analysis
πŸ“
Test Design
0 / 5 to'g'ri
🎬 Haqiqiy stsenariy
Click yangi vazifa berdi

Dushanba, 9:30. Click jamoasidan PO sizga keldi. "Yangi User Story bor: Foydalanuvchi do'stga pul yuborishi mumkin. Sprint oxirida release."

Bu hammasi β€” User Story qisqa, Acceptance Criteria ham yo'q.

Sizda 30 daqiqa bor β€” keyin 3 Amigos meeting. Nima qilasiz?

Eng professional yondashuv qaysi?
⚑ Tezkor tekshiruv
"Yosh maydoni 18-65 oralig'ida bo'lishi kerak". Eng samarali test ma'lumotlari qaysi?

Videoni ko'ring

Matnni o'qib chiqdingizmi? Endi videodarsni ko'ring β€” mavzularni chuqurroq tushunasiz va bilimingizni mustahkamlaysiz.

TestShop'da Test Analysis va Design

Endi nazariyani amaliyotda sinab ko'ramiz. TestShop uchun to'liq Test Analysis va Test Design bajarasiz.

πŸ›’

TestShop β€” Analysis & Design

Yangi feature uchun to'liq test paketini yarating.

πŸš€ TestShop'ga o'tish

Sizning 3 ta vazifangiz:

1
Test Analysis: TestShop'ga "Promo kod" qo'shilmoqchi
Kamida 10 ta savol yozing. Misollar: "Promo kod uzunligi qancha?", "Bir kod necha marta ishlatiladi?", "Muddati bormi?". Google Docs'da yozing.
2
Test Design: Login uchun 8 ta Test Case
Equivalence Partitioning va Boundary Value bilan. Format: ID | Title | Preconditions | Steps | Test Data | Expected. Google Sheets'da jadval.
3
Decision Table: Chegirma logikasi
Tasavvur qiling: TestShop'da chegirma qoidalari: VIP foydalanuvchi (10%), savatda 5+ mahsulot (5%), promo kod (15%). Qoidalar qanday birlashadi? Decision Table tuzing.
πŸ’‘ Portfolio uchun

Bu 3 ta vazifa Middle QA darajasi. Intervyuda: "Men Test Analysis qila olaman, Equivalence Partitioning va Boundary Value texnikalari bilan ishlayman, Decision Table tuzaman" β€” deb ayta olasiz. Bu Junior'lar orasida juda kam.

Intervyu savollari

Test Analysis va Design β€” Middle QA intervyusining asosiy mavzusi. 7 ta professional javob.

πŸ’‘ Har savol ustiga bosing β€” professional javobni ko'rasiz.

Q1 Test Analysis va Test Design farqi? +

Javob:

  • Test Analysis β€” "NIMA test qilamiz?" savoliga javob. Talablarni o'qib, savollar berish, Test Conditions aniqlash. Bu tahliliy ish.
  • Test Design β€” "QANDAY test qilamiz?" savoliga javob. Aniq Test Cases, Test Data yaratish, texnikalar qo'llash. Bu amaliy ish.

Misol:

  • Analysis: "Parol tiklash uchun nima testlash kerak?" β†’ 8 ta Test Condition ro'yxati
  • Design: Har Test Condition uchun TC-001, TC-002... aniq qadamlar bilan

Pro javob: "Junior QA Design'da ishlaydi (tayyor case'larni bajaradi). Middle/Senior β€” Analysis va Design ikkalasini ham qiladi."

Q2 Test Case ning komponentlari qanday? +

Javob: "Standart Test Case 6 ta asosiy komponentdan iborat:"

  • Test ID β€” TC-001, TC-002 (unikal identifikator)
  • Title β€” qisqa sarlavha (masalan, "Login muvaffaqiyatli")
  • Preconditions β€” boshlanishidan oldin bajarilishi kerak (foydalanuvchi ro'yxatdan o'tgan)
  • Steps β€” qadam-baqadam ko'rsatma (1, 2, 3...)
  • Test Data β€” aniq ma'lumotlar (email, parol, raqamlar)
  • Expected Result β€” kutilgan natija

Qo'shimcha: Priority (P1/P2/P3), Severity, Author, Status β€” bu maydonlar Jira/TestRail'da avtomatik bo'ladi.

Q3 Equivalence Partitioning nima? +

Javob: "Equivalence Partitioning β€” ma'lumotlarni guruhlarga bo'lib, har guruhdan 1 ta qiymat bilan test qilish texnikasi."

Asosiy g'oya: Bir guruhdagi ma'lumotlar bir xil natija beradi, demak hammasini sinash shart emas.

Misol: Yosh maydoni 18-65 oralig'i

  • Invalid (yosh): 0-17 β†’ bitta qiymat (masalan, 15)
  • Valid: 18-65 β†’ bitta qiymat (masalan, 30)
  • Invalid (katta): 66+ β†’ bitta qiymat (masalan, 70)

Natija: 100 ta test o'rniga 3 ta test yetadi.

Q4 Boundary Value Analysis nima va nima uchun muhim? +

Javob: "Boundary Value Analysis β€” chegara qiymatlarini alohida sinash texnikasi."

Nima uchun muhim? Statistika ko'rsatadi β€” buglarning 80% aynan chegaralarda topiladi! Dasturchilar tez-tez xato qilishadi:

  • > va >= ni adashtirish
  • < va <= ni almashtirish
  • Off-by-one xato (1 ta qiymat farq)

Misol: Parol 8-20 belgi

  • Sinash kerak: 7, 8, 20, 21 (chegara va yon-atrofi)
  • Equivalence + Boundary birga = eng samarali
Q5 Decision Table qachon ishlatiladi? +

Javob: "Decision Table bir nechta shartlar birlashganda ishlatiladi. Har shart kombinatsiyasi uchun aniq natija."

Qachon kerak?

  • Chegirma logikasi (bir nechta shartlar birga)
  • Foydalanuvchi ruxsatlari (admin/oddiy/mehmon)
  • To'lov qoidalari (valyuta + summa + foydalanuvchi turi)

Misol: Chegirma β€” VIP (ha/yo'q) + Summa >1mln (ha/yo'q) = 4 ta kombinatsiya

Afzallik: Murakkab logikani vizualizatsiya qiladi, hech bir holat o'tkazib yuborilmaydi.

Q6 Yaxshi Test Case ning xususiyatlari? +

Javob: "Yaxshi Test Case 5 ta asosiy xususiyatga ega:"

  • Aniq β€” har qadam ravshan, noaniq joy yo'q
  • Mustaqil β€” boshqa test case'ga bog'liq emas
  • Takrorlanuvchi β€” har gal bir xil natija beradi
  • O'lchanadigan β€” Pass/Fail aniq belgilanadi
  • Qisqa va aniq β€” uzun roman emas

Anti-pattern: "Loginni tekshirish" β€” bu yomon test case (juda umumiy).

To'g'ri: "TC-001: To'g'ri email va parol bilan login muvaffaqiyatli" β€” aniq.

Q7 Black Box va White Box texnikalar farqi? +

Javob:

  • Black Box texnikalar β€” kodni bilmasdan, kirish-chiqishga qarab. QA asosiy ishlaydi. Equivalence Partitioning, Boundary Value, Decision Table, State Transition.
  • White Box texnikalar β€” kodni ko'rib, har qator/shartni sinash. Dasturchilar ishlatadi. Statement Coverage, Branch Coverage, Path Coverage.

Misol:

  • Black Box: "Login formasiga to'g'ri va noto'g'ri qiymatlar kiritib sinash"
  • White Box: "Login funksiyasidagi har if/else shartni Unit testda sinash"

Junior uchun: "Men asosan Black Box texnikalarni ishlataman β€” Equivalence va Boundary Value har kundagi ishimda."

3 ta asosiy fikr

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

01
Analysis = NIMA
Talablarni tushunish, savollar berish, Test Conditions aniqlash. Tahliliy ish.
02
Design = QANDAY
Aniq Test Cases yaratish: ID, Title, Preconditions, Steps, Test Data, Expected.
03
Texnikalar = Samarali
Equivalence Partitioning, Boundary Value, Decision Table, State Transition β€” kam test, ko'p coverage.
πŸ† Darsni muvaffaqiyatli tugatdingiz!