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. Oshpaz savollar beradi: "Pishirikmi, qayla'mi? Achchiqmi?". Ingredientlar ro'yxatini tuzadi. ยท Design: Aniq retsept yozadi: "1 kg guruch, 0.5 kg go'sht, 30 daqiqa pishirish". Endi tayyorlashga tushadi. Test'lar ham xuddi shunday โ€” avval tushunish, keyin yaratish.

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?

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!