Bug qayerdan kelib chiqadi, uning hayot sikli qanday va qaysi buglar birinchi navbatda tuzatiladi? Amaliy misollar bilan o'rganamiz.
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.
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:
Testlashning eng keng tarqalgan ikki turi: qo'lda testlash va avtomatlashtirilgan testlash. Ikkalasi ham muhim, har birining o'z o'rni bor.
Bu โ testor kompyuter oldiga o'tirib, dasturni qo'lda, o'zi sinab ko'radigan testlash. Tugmalarni bosadi, formani to'ldiradi, natijalarni ko'radi.
Bu โ testor maxsus dasturlar (kodlar) yozadi, ular avtomatik ravishda sinab ko'radi. Odam aralashmasdan minglab testlar daqiqalar ichida bajariladi.
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.
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.
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.
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 โ 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) โ 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 โ 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.
Dasturchi yozgan xato (Error) โ Bu xato kodda saqlanib qoladi (Defect) โ Foydalanuvchi dasturni ishlatganda muammo yuz beradi (Failure).
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.
Har bir bug topilganidan to tuzatilguniga qadar bir necha bosqichdan o'tadi. Bu jarayon Bug Life Cycle deyiladi. Uni bilish โ kundalik ishda muhim.
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.
Quyidagi bosqichlarni to'g'ri tartibda sudrab joylashtiring. Birinchi โ oxirgigacha.
Bu ikki atamani aralashtirib yuborish โ intervyularda eng ko'p xato. Har bir bug ikki xil o'lchov bilan baholanadi: texnik jiddiylik va biznes ustuvorligi.
Click'da to'lov qilish mumkin emas โ hamma foydalanuvchi uchun. Texnik jihatdan ham, biznes uchun ham xavfli. Darhol tuzatish.
Admin panelning juda kam ishlatiladigan qismi umuman ochilmayapti. Texnik jihatdan jiddiy (qism ishlamayapti), lekin biznesga deyarli ta'sir qilmaydi โ keyin tuzatiladi.
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.
Sozlamalardagi matnda kichkina imlo xatosi. Na texnik xavf, na biznes muammo โ vaqt bo'lganda tuzatiladi.
Quyidagi 4 ta real bug'ni ko'ring. Har birini to'g'ri kombinatsiyaga sudrab olib boring.
Chap tomondagi atamani bosing, keyin o'ng tomondan mos ta'rifni tanlang.
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.
Javob: "Manual testing โ testor qo'lda, o'zi dasturni sinab ko'radigan testlash. Automation testing โ maxsus kod yozib, testlarni avtomatik bajarish."
Qachon qaysi biri?
Muhim: Ikkalasi bir-birini to'ldiradi. 100% automation ham, 100% manual ham โ ikkalasi noto'g'ri. Balans muhim.
Javob: "Bu uchta atama bir zanjirning bo'g'inlari:"
Misol: "Dasturchi + o'rniga - yozdi (Error) โ kod endi noto'g'ri hisoblaydi (Defect) โ foydalanuvchi summani noto'g'ri ko'radi (Failure)."
Javob: "Severity โ texnik jihatdan bug qanchalik yomon. Priority โ biznes uchun qanchalik tez tuzatish kerak."
Misol:
Kim aniqlaydi? Severity โ testor/texnik, Priority โ Product Owner/Manager.
Javob: "Standart bug hayot sikli 6 ta asosiy bosqichdan iborat:"
Qo'shimcha statuslar: Rejected (rad etildi), Deferred (kechiktirildi), Duplicate (takror), Reopened (qayta ochildi).
Javob: "Men avval dasturchi bilan muloqotga kirishaman โ u nima deb o'ylayotganini tushunishga harakat qilaman. Balki men talablarni noto'g'ri tushungandirman."
Keyingi qadamlar:
Asosiy fikr: "Dasturchi bilan kurashmaslik kerak. Hamkorlik โ sifatli mahsulot uchun. Ba'zida men xato bo'laman, ba'zida u โ bu normal."
Javob: "Severity va Priority bo'yicha saralayman. Oldinga โ eng xavflilari."
Tartib:
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."
Nazariyani o'rgandingiz. Endi TestShopga kiring va real buglarni toping. 10 ta qasddan qo'yilgan bug sizni kutmoqda.
Onlayn-do'kon simulyatsiyasi. Real sayt ko'rinishida, lekin ichida 10 ta bug yashiringan. Sizning vazifangiz โ ularni topish.
๐ TestShop'ga o'tishBu 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).
Bu darsdan eslab qolishingiz kerak bo'lgan eng muhim g'oyalar