0%
2-dars

Testlash nima va bug turlari

Bug qayerdan kelib chiqadi, uning hayot sikli qanday va qaysi buglar birinchi navbatda tuzatiladi? Amaliy misollar bilan o'rganamiz.

75 daqiqa
Asosiy tushunchalar
6 ta interaktiv topshiriq

Oldingi darsdan bog'lanish

1-darsda siz "QA va testor kim" ekanini bilib oldingiz. Endi keyingi qadam โ€” testor aniq nima qiladi? Qanday ishlar u, nima topadi, va topgan muammolarni qanday atraydi?

Bu darsda biz chuqurroq kirib boramiz: testlashning turlari, bug qayerdan kelib chiqishi, uning hayot sikli va โ€” eng muhimi โ€” qaysi buglarni birinchi tuzatish kerakligini qanday aniqlash kerak.

Testlash nima?

Asosiy atama

Testing (testlash) โ€” dasturiy mahsulotni sinab ko'rish orqali uning sifatini baholash jarayoni.

Oddiy qilib: dastur foydalanuvchiga yetib borishdan oldin biz uni har tomonlama sinaymiz โ€” to'g'ri ishlayaptimi, chiroyli ko'rinyaptimi, tez ishlayaptimi va hokazo.

Ko'pchilik testlashni faqat "xatolarni topish" deb o'ylaydi. Aslida u kengroq tushuncha:

๐Ÿ’ก Hayotiy misol
Yangi mashina sotib olish
Siz yangi mashina sotib olmoqchisiz. Sotuvchi mashinani ko'rsatadi โ€” chiroyli, yangi. Lekin siz test drive qilmay, yo'nalishda sinamay sotib olmaysiz. Tekshirasiz: dvigatel to'g'ri ishlayaptimi, tormoz yaxshimi, konditsioner sovuq beradimi. Xuddi shu ish โ€” testlash. Faqat mashina o'rniga โ€” dastur, sayt, ilova.

Testlashning 2 ta asosiy turi

Testlashning eng keng tarqalgan ikki turi: qo'lda testlash va avtomatlashtirilgan testlash. Ikkalasi ham muhim, har birining o'z o'rni bor.

Manual Testing (qo'lda testlash)

Bu โ€” testor kompyuter oldiga o'tirib, dasturni qo'lda, o'zi sinab ko'radigan testlash. Tugmalarni bosadi, formani to'ldiradi, natijalarni ko'radi.

Automation Testing (avtomatlashtirilgan testlash)

Bu โ€” testor maxsus dasturlar (kodlar) yozadi, ular avtomatik ravishda sinab ko'radi. Odam aralashmasdan minglab testlar daqiqalar ichida bajariladi.

Yangi atamalar

Selenium, Playwright, Cypress โ€” avtomatlashtirilgan testlar yozish uchun eng mashhur asboblar. Bular "robotlar" kabi โ€” dastur o'zi tugmalarni bosadi, matn kiritadi, natijani tekshiradi.

Hozir ularni bilish shart emas โ€” 28-darsda batafsil o'rganamiz.

Farqi nimada?

Manual Testing

  • โœ“ Tez boshlanadi
  • โœ“ Kam xarajat
  • โœ“ Foydalanuvchi nuqtai nazaridan
  • โœ“ Chiroy va qulaylik ko'rinadi
  • โœ— Sekin
  • โœ— Inson xatosi bo'lishi mumkin
  • โœ— Qayta-qayta zerikarli

Automation Testing

  • โœ“ Juda tez (daqiqalarda minglab test)
  • โœ“ Qayta-qayta ishlatish mumkin
  • โœ“ Xatosiz (agar kod to'g'ri)
  • โœ“ Kechasi ham ishlay oladi
  • โœ— Boshlang'ich xarajat katta
  • โœ— Dasturlash bilim kerak
  • โœ— Hamma narsani avtomatlashtirib bo'lmaydi
Amaliy xulosa

Yangi boshlovchi sifatida avval manual testingni yaxshi o'rganing. Keyin tajriba orttirib, automation'ga o'tishingiz mumkin. Kompaniyalarda 70-80% testlar baribir qo'lda bajariladi โ€” manual testor har doim kerak bo'ladi.

Real misol โ€” qachon nima ishlatiladi?

Manual: yangi funksiya chiqqanda ("birinchi marta ko'rib chiqish"), dizayn va UX tekshirish, foydalanuvchi tajribasi.
Automation: har release'dan oldingi regression testlar (eski funksiyalar ishlayaptimi?), ko'p foydalanuvchi yuklamasi, 24/7 monitoring.

โšก Tezkor tekshiruv
Sizning jamoangiz yangi login sahifasi yaratdi. Qaysi turdagi testlash mos keladi?

Bug bilan bog'liq atamalar

Testing dunyosida "bug" ga yaqin bir nechta atama bor. Ko'pchilik ularni aralashtirib yuboradi. Keling, bu farqlarni aniq tushunib olaylik โ€” intervyularda ham ko'p so'raladi.

Error (xato)

Error โ€” inson qilgan xato. Dasturchi yoki biznes analitik noto'g'ri fikrlagan yoki noto'g'ri yozgan.

Misol: dasturchi x + y o'rniga x - y deb yozdi.

Defect / Bug (dastur ichidagi xatolik)

Defect (Bug) โ€” Error natijasida kodda paydo bo'lgan muammo. Aynan shu dastur ichida mavjud.

Misol: yuqorida dasturchi minus yozgani uchun, endi dastur qo'shish o'rniga ayirib beryapti.

Failure (ishlamay qolish)

Failure โ€” Defect natijasida foydalanuvchi ko'rgan muammo. Ya'ni defect ishga tushganda โ€” failure bo'ladi.

Misol: foydalanuvchi 100 + 50 deb hisobladi, dastur 50 ko'rsatdi. Bu failure.

Zanjir: Error โ†’ Defect โ†’ Failure

Dasturchi yozgan xato (Error) โ†’ Bu xato kodda saqlanib qoladi (Defect) โ†’ Foydalanuvchi dasturni ishlatganda muammo yuz beradi (Failure).

Intervyu savoli

Error, Defect va Failure o'rtasidagi farqni tushuntiring โ€” bu intervyularda tez-tez so'raladi. Asosiy g'oya: inson xato qiladi โ†’ bu kodga o'tadi โ†’ foydalanuvchi ko'radi.

Bug hayot sikli

Har bir bug topilganidan to tuzatilguniga qadar bir necha bosqichdan o'tadi. Bu jarayon Bug Life Cycle deyiladi. Uni bilish โ€” kundalik ishda muhim.

New
Yangi topildi
โ†’
Assigned
Biriktirildi
โ†’
Open
Ish jarayonida
โ†’
Fixed
Tuzatildi
โ†’
Retest
Qayta sinov
โ†’
Closed
Yopildi

Har bosqich nimani anglatadi?

Yana bir qancha statuslar

Rejected (rad etildi) โ€” dasturchi bugni "bu bug emas, shunday bo'lishi kerak" deb tushuntirdi.

Deferred (kechiktirildi) โ€” bug mavjud, lekin hozir tuzatilmaydi (muhim emas yoki vaqt yo'q).

Duplicate (takrorlangan) โ€” bu bug allaqachon boshqa tomondan qo'shilgan.

Reopened (qayta ochildi) โ€” dasturchi "tuzatdim" dedi, lekin testor sinadi โ€” bug hali ham bor.

๐ŸŽฏ Amaliy topshiriq

Bug hayot siklini to'g'ri tartibga qo'ying

Quyidagi bosqichlarni to'g'ri tartibda sudrab joylashtiring. Birinchi โ†’ oxirgigacha.

1
2
3
4
5
6
Fixed
New
Closed
Open
Retest
Assigned
0 / 6 to'g'ri

Severity vs Priority

Bu ikki atamani aralashtirib yuborish โ€” intervyularda eng ko'p xato. Har bir bug ikki xil o'lchov bilan baholanadi: texnik jiddiylik va biznes ustuvorligi.

Severity

Texnik jiddiylik โ€” bug dasturga qanchalik zarar yetkazadi?
Critical
Tizim umuman ishlamaydi
Major
Muhim funksiya buzilgan
Minor
Kichik muammo, ish ketaveradi
Trivial
Kosmetik muammo (rang, shrift)

Priority

Biznes ustuvorligi โ€” qanchalik tez tuzatish kerak?
High
Darhol tuzatish kerak
Medium
Yaqin kunlarda
Low
Vaqt bo'lganda
๐Ÿ’ก Eng muhim farq
Severity โ‰  Priority
Severity โ€” texnik mutaxassis o'rnatadi ("bu bug qanchalik yomon?").
Priority โ€” biznes yoki Product Owner o'rnatadi ("bu bugni qanchalik tez tuzatish kerak?").

4 xil kombinatsiya mavjud

High Severity + High Priority

Click'da to'lov qilish mumkin emas โ€” hamma foydalanuvchi uchun. Texnik jihatdan ham, biznes uchun ham xavfli. Darhol tuzatish.

High Severity + Low Priority

Admin panelning juda kam ishlatiladigan qismi umuman ochilmayapti. Texnik jihatdan jiddiy (qism ishlamayapti), lekin biznesga deyarli ta'sir qilmaydi โ€” keyin tuzatiladi.

Low Severity + High Priority

Uzum'ning bosh sahifasidagi logo noto'g'ri ranga bo'yalgan. Texnik jihatdan kichkina (rang xatosi), lekin har bir mijoz darhol ko'radi โ€” brend uchun juda muhim. Tezda tuzatish.

Low Severity + Low Priority

Sozlamalardagi matnda kichkina imlo xatosi. Na texnik xavf, na biznes muammo โ€” vaqt bo'lganda tuzatiladi.

๐ŸŽฏ Bug Classifier

Buglarni to'g'ri turkumga ajrating

Quyidagi 4 ta real bug'ni ko'ring. Har birini to'g'ri kombinatsiyaga sudrab olib boring.

Click ilovasida to'lov tugmasi ishlamayapti
Hech kim pul o'tkaza olmayapti. Barcha mijozlarga ta'sir qilmoqda.
Uzum bosh sahifasida logo noto'g'ri ranga chiqqan
Ko'k o'rniga yashil ko'rinayapti. Dastur to'g'ri ishlayapti.
Admin panelning arxiv bo'limi ishlamayapti
Bo'lim ochilmayapti. Lekin uni faqat bitta admin oyiga bir marta ishlatadi.
Sozlamalar sahifasida "e'lon" so'zi "elon" deb yozilgan
Imlo xatosi. Kam odam sozlamalarga kiradi.
High Sev + High Pri
Bo'sh
High Sev + Low Pri
Bo'sh
Low Sev + High Pri
Bo'sh
Low Sev + Low Pri
Bo'sh
0 / 4 to'g'ri
๐ŸŽฏ Bog'lang

Atamalarni ta'riflar bilan bog'lang

Chap tomondagi atamani bosing, keyin o'ng tomondan mos ta'rifni tanlang.

Atama

Error
Defect
Failure
Severity
Priority

Ta'rif

Biznes uchun tuzatish muhimligi
Inson qilgan xato
Foydalanuvchi ko'rgan muammo
Texnik jiddiylik darajasi
Kodda mavjud xatolik
0 / 5 juft topildi

Intervyu savollari

Bu savollar O'zbekistondagi IT kompaniyalardagi QA intervyularida tez-tez so'raladi. Har biriga javobni o'z so'zingizda tayyorlang.

๐Ÿ’ก Har savol ustiga bosing โ€” tayyor javob va maslahatni ko'rasiz.

Q1 Manual testing va automation testing farqini tushuntiring. +

Javob: "Manual testing โ€” testor qo'lda, o'zi dasturni sinab ko'radigan testlash. Automation testing โ€” maxsus kod yozib, testlarni avtomatik bajarish."

Qachon qaysi biri?

  • Manual: yangi funksiyalar, UX/dizayn, exploratory testing
  • Automation: regression testlar, katta yuklama, har release'dan oldingi tekshiruvlar

Muhim: Ikkalasi bir-birini to'ldiradi. 100% automation ham, 100% manual ham โ€” ikkalasi noto'g'ri. Balans muhim.

Q2 Error, Defect va Failure orasidagi farq nima? +

Javob: "Bu uchta atama bir zanjirning bo'g'inlari:"

  • Error โ€” dasturchi qilgan xato (masalan, noto'g'ri formula yozdi)
  • Defect/Bug โ€” Error natijasida kodda mavjud muammo
  • Failure โ€” Defect ishga tushganda, foydalanuvchi ko'radigan muammo

Misol: "Dasturchi + o'rniga - yozdi (Error) โ†’ kod endi noto'g'ri hisoblaydi (Defect) โ†’ foydalanuvchi summani noto'g'ri ko'radi (Failure)."

Q3 Severity va Priority farqini tushuntiring. Misol bilan. +

Javob: "Severity โ€” texnik jihatdan bug qanchalik yomon. Priority โ€” biznes uchun qanchalik tez tuzatish kerak."

Misol:

  • Logo rangida xato: Low Severity (dastur ishlayapti), lekin High Priority (har mijoz ko'radi).
  • Admin panelning kam ishlatiladigan qismi ishlamayapti: High Severity (qism buzuq), lekin Low Priority (kam foydalaniladi).

Kim aniqlaydi? Severity โ€” testor/texnik, Priority โ€” Product Owner/Manager.

Q4 Bug hayot sikli qanday bosqichlardan iborat? +

Javob: "Standart bug hayot sikli 6 ta asosiy bosqichdan iborat:"

  • New โ€” bug topildi va tizimga qo'shildi
  • Assigned โ€” dasturchiga biriktirildi
  • Open โ€” dasturchi ishlay boshladi
  • Fixed โ€” tuzatildi, testorga qaytarildi
  • Retest โ€” testor qayta tekshirmoqda
  • Closed โ€” bug yopildi

Qo'shimcha statuslar: Rejected (rad etildi), Deferred (kechiktirildi), Duplicate (takror), Reopened (qayta ochildi).

Q5 Agar dasturchi sizga "bu bug emas" desa, nima qilasiz? +

Javob: "Men avval dasturchi bilan muloqotga kirishaman โ€” u nima deb o'ylayotganini tushunishga harakat qilaman. Balki men talablarni noto'g'ri tushungandirman."

Keyingi qadamlar:

  • Talablar hujjatini tekshiraman โ€” u yerda nima yozilgan?
  • Product Owner bilan maslahatlashaman โ€” kutilayotgan natija nima?
  • Video/screenshot bilan aniq muammoni ko'rsataman
  • Agar haqiqatan ham bug bo'lmasa โ€” rozi bo'laman va bug'ni Rejected qilaman

Asosiy fikr: "Dasturchi bilan kurashmaslik kerak. Hamkorlik โ€” sifatli mahsulot uchun. Ba'zida men xato bo'laman, ba'zida u โ€” bu normal."

Q6 Bir kunda bir nechta bug topdingiz, qaysini birinchi qo'yasiz? +

Javob: "Severity va Priority bo'yicha saralayman. Oldinga โ€” eng xavflilari."

Tartib:

  1. Critical severity + High priority โ€” darhol xabar beraman
  2. High severity + High priority
  3. Qolganlari โ€” mantiqiy tartibda

Muhim maslahat: "Agar juda jiddiy bug topsam (masalan, production'da to'lov ishlamayapti), men Jira'ga yozishdan oldin avval Slack/Telegram orqali jamoaga xabar beraman. Jira โ€” rasmiylashtirish uchun, lekin tez reaksiya uchun jonli muloqot kerak."

Endi amaliyotga o'tamiz!

Nazariyani o'rgandingiz. Endi TestShopga kiring va real buglarni toping. 10 ta qasddan qo'yilgan bug sizni kutmoqda.

๐Ÿ›’

TestShop โ€” Bug Hunt

Onlayn-do'kon simulyatsiyasi. Real sayt ko'rinishida, lekin ichida 10 ta bug yashiringan. Sizning vazifangiz โ€” ularni topish.

๐Ÿš€ TestShop'ga o'tish

Vazifangiz โ€” 3 bosqich:

1
TestShop'ga kiring va diqqat bilan ko'rib chiqing
Bosh sahifa, ro'yxatdan o'tish, login sahifalarini sinab ko'ring. Har tugmani bosing, har formani to'ldiring, noto'g'ri ma'lumotlar kiriting.
2
Har topgan bug uchun quyidagilarni aniqlang
โ€ข Severity (texnik jiddiylik): Critical, Major, Minor, Trivial
โ€ข Priority (biznes ustuvorligi): High, Medium, Low
โ€ข Turi: UI/UX, funksional, security, yoki performance
3
Bug Hunt sahifasida belgilang
TestShop'dagi Bug Hunt sahifasida progress bar bor โ€” har topgan bug'ingizni belgilang va 10/10 ga yetishga harakat qiling. Ko'rsatma kerak bo'lsa โ€” "Hint" tugmasini bosing.
๐Ÿ’ก Maslahat

Bu darsda o'rgangan Severity va Priority farqini esda tuting. Bir xil bug turli biznes kontekstida turli Priority bo'lishi mumkin. Masalan: logo rangi โ€” texnik kichkina muammo (Low Severity), lekin bosh sahifada bo'lsa โ€” biznes uchun muhim (High Priority).

3 ta asosiy fikr

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

01
Manual + Automation = kuch
Ikkalasi bir-birini to'ldiradi. Yangi boshlovchi avval manual'ni o'rganadi, keyin automation'ga o'tadi.
02
Error โ†’ Defect โ†’ Failure
Bu zanjirni tushunish โ€” professional testor tili. Intervyuda ham ko'p so'raladi.
03
Severity โ‰  Priority
Texnik jiddiylik va biznes ustuvorligi โ€” ikki xil o'lchov. Ularni aralashtirish โ€” eng tez-tez uchraydigan xato.
๐Ÿ† Darsni muvaffaqiyatli tugatdingiz!