0%
8-dars

Testlashning 7 ta prinsipi

50 yillik QA tajribasidan tug'ilgan 7 ta fundamental qoida β€” ularsiz siz professional testor bo'lolmaysiz. Har biri real misol bilan.

60 daqiqa
Fundamental mavzu
Intervyuga tayyorlov

Nega bizga prinsiplar kerak?

Tasavvur qiling, siz yangi testor bo'lib ishga keldingiz. Sizga dasturiy mahsulot berildi va "tekshir" deyishdi. Qayerdan boshlaysiz? Qanday qilib hamma narsani sinab ko'rasiz? Qancha test yetarli?

Aynan shu savollarga javob berish uchun 7 ta prinsip yaratilgan. Ular sizga to'g'ri fikrlash usulini beradi β€” "qayerdan boshlasam?" muammosini yechadi.

ISTQB eslatma

Bu prinsiplar ISTQB CTFL sertifikat imtihonida so'raladi. Intervyularda ham tez-tez so'ralgan mavzulardan biri. Yodlash emas, tushunish muhim.

01
Testlash buglarning borligini ko'rsatadi, yo'qligini emas
Testing shows the presence, not the absence of defects

Siz 100 ta test o'tkazdingiz va hammasi muvaffaqiyatli o'tdi. Bu bug yo'q degani emas β€” balki siz sinagan joylarda bug yo'q degani. Qolgan yo'llarda bug bo'lishi mumkin.

Real misol β€” Click to'lov tizimi

Click jamoasi 1000 ta test o'tkazdi, hammasi muvaffaqiyatli. Keyin foydalanuvchi iPhone Safari'dan 999,999 so'm miqdorida to'lov qilmoqchi bo'ldi β€” tizim ishlamay qoldi. Bu aniq kombinatsiya sinalmagan edi.

Amaliy xulosa

Hech qachon "bu mahsulotda bug yo'q" demang. To'g'risi: "men sinagan joylarda bug topmadim". Bu kichkina farq β€” lekin professional testor tili.

02
To'liq testlash imkonsiz
Exhaustive testing is impossible

Barcha mumkin bo'lgan kombinatsiyalarni sinab ko'rish imkonsiz. Oddiy login formasi uchun ham minglab, hatto millionlab variantlar mavjud.

Real misol β€” Uzum qidiruv

Uzum Market qidiruv maydoniga foydalanuvchi nima yozishi mumkin? "iPhone", "Π°ΠΉΡ„ΠΎΠ½", bo'sh joylar, emoji, 10,000 belgili matn, SQL injection urinishlari... Hammasini sinab ko'rish imkonsiz.

Amaliy xulosa

"Hamma narsa"ni sinash o'rniga eng muhim joylarni tanlab sinang. Buni qanday qilishni 14-19 darslarda (test texnikalari) o'rganamiz.

03
Erta testlash β€” vaqt va pulni tejaydi
Early testing saves time and money

Bug qanchalik kech topilsa, shuncha qimmat bo'ladi. Talablarni o'qiyotganda topilgan muammo β€” 1 daqiqada tuzatiladi. Production'da topilsa β€” haftalab vaqt va millionlab zarar.

Real misol β€” Bank mobil ilova

Talablar hujjatida yozilgan: "Foydalanuvchi pul o'tkaza oladi".

Agar testor shu paytda so'rasa: "Maksimal summa qancha? Limit bormi?" β€” muammo 10 daqiqada hal bo'ladi. Agar production'da foydalanuvchi 100 million so'm o'tkazma qilishga urinsa va tizim qulasa β€” kompaniyaga millionlab zarar.

Amaliy xulosa

Testorlik faqat tugmani bosish emas. Talablarni o'qiyotganda savol berish β€” allaqachon testlash. Bu Shift Left yondashuvi (7-darsda ko'rgan edik).

04
Buglar klasterlarda to'planadi
Defects cluster together

Buglar tasodifiy tarqalmaydi. Ular ma'lum "xavfli" joylarda to'planadi. Bu 80/20 qoidasi β€” 80% buglar 20% modullarda bo'ladi.

Real misol β€” onlayn-do'kon

Bir O'zbek onlayn-do'konida 10 ta modul bor edi. 1000 ta bugning 720 tasi faqat ikkitasida: to'lov va yetkazib berish. Sababi β€” bu modullar tashqi tizimlarga (bank, taxi API) bog'langan va murakkab.

Amaliy xulosa

Agar bir joyda bug ko'p topilayotgan bo'lsa β€” yana qidiring. Bu yerda hali ko'p bug bor. Yangi dasturchi kodi va murakkab integratsiyalarga alohida e'tibor bering.

05
Testlar eskiradi
Tests wear out β€” Pesticide Paradox

Bir xil testlarni qayta-qayta ishlatsangiz β€” ular yangi buglarni topmaydi. Dehqonchilikda bir xil pestitsidni qo'llash zararkunandalarga moslashish imkonini berishi kabi.

Real misol β€” 2 yillik testlar

Bir IT kompaniyada 2 yil davomida 500 ta bir xil test ishlatilardi. Hammasi yashil. Lekin foydalanuvchilar shikoyat qilardi: "Ilova sekin", "Kechqurun yopiladi". Testlar funksional narsalarni tekshirardi, lekin tezlik va barqarorlikni emas.

Amaliy xulosa

Test case'laringizni "tirik hujjat" deb biling. Har 3-6 oyda tahlil qiling: haligacha kerakli narsalarni tekshiryaptimi? Yangi senariylar qo'shing.

06
Testlash kontekstga bog'liq
Testing is context dependent

Bank ilovasini va o'yinni bir xil usulda test qilib bo'lmaydi. Har loyihaning o'z yondashuvi kerak.

Real misol β€” uch xil mahsulot

Payme β€” har tranzaksiya 3 xil tekshiruvdan o'tadi, hujjatlash to'liq. Mobil o'yin β€” tez release, exploratory testing ko'p. Tibbiy qurilma β€” 100% talablarga muvofiqlik, sertifikatlash shart.

Amaliy xulosa

"Eng yaxshi usul" yo'q. Sizning loyihangiz uchun nima yaxshi ekanini tushuning. Internetda o'qigan narsalarni ko'r-ko'rona qo'llamang.

07
Bug yo'qligi β€” yanglish xulosa
Absence-of-defects fallacy

Siz barcha bug'larni tuzatdingiz, testlar o'tdi β€” lekin bu dastur foydalanuvchiga kerak ekanini bildirmaydi. Mukammal ishlaydigan, lekin kerak bo'lmagan mahsulot β€” bekor urinish.

Real misol β€” davlat tizimi

Bir davlat idorasi yangi elektron tizim yaratdi. Barcha talablar bajarildi, 0 ta critical bug, yuklamaga bardoshli. Lekin xodimlar foydalanmadi β€” interfeys noqulay, ish jarayoniga mos kelmaydi edi.

Amaliy xulosa

"Talablarga muvofiqmi?" dan tashqari, "foydalanuvchiga kerakmi?" deb ham so'rang. Faqat texnik sifat emas β€” real foydalanuvchi tajribasi ham muhim.

🎯 Amaliy topshiriq

Vaziyatlarni prinsiplar bilan bog'lang

Chap tomondagi vaziyatni bosing, keyin o'ng tomondan mos prinsipni tanlang. Jami 5 ta juft.

Vaziyat

Menejer: "500 ta testdan hammasi o'tdi, bu mahsulot mukammal"
"Har yangi funksiyada xuddi shu modulda bug chiqadi"
"Biz 2 yildan beri bir xil test case'larni ishlatamiz"
"Bank ilovasini o'yin kabi tez test qildim"
"Dastur mukammal ishlaydi, lekin foydalanuvchilar ishlatmayapti"

Prinsip

6 Β· Kontekstga bog'liq
1 Β· Testlar bug borligini ko'rsatadi
7 Β· Bug yo'qligi β€” yanglish xulosa
4 Β· Buglar klasterlarda
5 Β· Testlar eskiradi
0 / 5 juft topildi

Intervyu savollari

Bu savollar O'zbekistondagi IT kompaniyalarda (Click, Uzum, EPAM, Exadel) QA testor lavozimiga intervyularda tez-tez so'raladi. Har biriga javob tayyorlang β€” suhbat paytida ishonchli gapirasiz.

πŸ’‘ Har savol ustiga bosing β€” tayyor javob va maslahatni ko'rasiz.

Q1 Testlashning qanday prinsiplarini bilasiz? +

Javob shabloni: "Testlashning 7 ta fundamental prinsipi mavjud. Ular ISTQB tomonidan belgilangan va barcha QA testorlar ular haqida bilishi kerak. Bular: [sanab bering]..."

Maslahat: Hamma 7 tasini yod ayting. Keyin intervyu oluvchi so'raydi: "Qaysi biri eng muhim?" β€” bu yerda o'z fikringizni aytish mumkin. Ko'pchilik "Early testing" va "Exhaustive testing impossible" ni tanlaydi.

Q2 "Testing shows presence, not absence of defects" nimani anglatadi? +

Javob: "Biz testlar orqali bug'lar borligini isbotlashimiz mumkin, lekin ularning yo'qligini isbotlay olmaymiz. Hatto 1000 ta test muvaffaqiyatli o'tsa ham, biz sinalmagan senariylarda bug bo'lishi mumkin."

Qo'shimcha: Misol keltiring β€” "Masalan, Click'da 1000 ta test o'tgan, lekin iPhone Safari'da aniq kombinatsiya sinalmagani uchun bug chiqqan."

Q3 Nega to'liq testlash imkonsiz? +

Javob: "Barcha mumkin bo'lgan input kombinatsiyalarini sinab ko'rish matematik jihatdan imkonsiz. Oddiy login formasi uchun ham millionlab variantlar bor. Shuning uchun biz risk-based va test texnikalaridan foydalanamiz β€” eng muhim stsenariylarni tanlab sinaymiz."

Professional qo'shimcha: "Misol uchun, Equivalence Partitioning va Boundary Value Analysis texnikalari yordamida biz 1000 ta testni 10 tagacha kamaytirishimiz mumkin β€” va shu bilan ham 90% bug'larni topamiz."

Q4 "Early testing" nima va u nega muhim? +

Javob: "Early testing β€” bu testlash faoliyatini SDLC ning erta bosqichlarida boshlash. Bu Shift Left yondashuvining asosidir."

Asoslash: "Bug'ni erta topish qancha arzon. Talablar hujjatida topilgan bug β€” bir necha daqiqada tuzatiladi. Production'da topilgan bug β€” minglab dollar va reputatsiya yo'qotish."

Amaliy misol: "Men testor sifatida faqat dastur tayyor bo'lgandan keyin kutmay, talablarni o'qish bosqichida ham ishtirok etaman va savollar beraman."

Q5 "Defects cluster together" degani nima? +

Javob: "Bug'lar tasodifiy tarqalmaydi. Ular 'xavfli' joylarda to'planadi β€” odatda 80% bug'lar 20% modullarda bo'ladi (Pareto prinsipi)."

Qayerda xavfli joylar?

  • Yangi funksiyalar
  • Tashqi API bilan integratsiya (to'lov, taxi, xarita)
  • Murakkab biznes logika
  • Tez-tez o'zgartirilgan modullar

Xulosa: "Agar men bir modulda ko'p bug topsam, o'sha yerda yana qidirma davom etaman β€” bu yerda hali ko'p bo'lishi mumkin."

Q6 "Pesticide paradox" deb nima aytiladi? +

Javob: "Agar bir xil testlarni qayta-qayta ishlatsangiz, ular yangi bug'larni topmaydi. Dehqonchilikda bir xil pestitsid zararkunandalarga moslashish imkonini berishi kabi."

Yechim: "Test case'larni muntazam yangilab turish, yangi senariylar qo'shish, boshqa texnikalardan foydalanish."

Muhim eslatma: "Lekin regression testing uchun bir xil testlar β€” bu maqsadli va foydali. Chunki regression testning maqsadi β€” eski funksionallik ishlashda davom etayotganini tasdiqlash."

Q7 "Absence of defects fallacy" qanday tushunasiz? +

Javob: "Bug'larning yo'qligi mahsulot muvaffaqiyatini kafolatlamaydi. Mukammal ishlaydigan, lekin foydalanuvchiga kerak bo'lmagan mahsulot β€” muvaffaqiyatsizlikdir."

Verification vs Validation:

  • Verification β€” "Dastur to'g'ri ishlayaptimi?" (talablarga muvofiqmi?)
  • Validation β€” "Dastur to'g'ri narsa'mi?" (foydalanuvchiga kerakmi?)

Xulosa: "Testor faqat texnik buglarni emas, foydalanuvchi tajribasini ham kuzatishi kerak."

7 prinsipni TestShop'da toping

Prinsiplar β€” bu nazariya emas, amaliy fikrlash tarzi. TestShop'da ularning har birini o'z ko'zingiz bilan ko'rishingiz mumkin.

πŸ›’

TestShop β€” Prinsiplarni amaliyotda

Bu saytda 10 ta bug bor. Ularni topish uchun 7 prinsipdan foydalaning.

πŸš€ TestShop'ga o'tish

Prinsiplar TestShop'da qanday qo'llaniladi?

01
Testlash bug borligini ko'rsatadi
Agar siz 10 bug'ning 7 tasini topsangiz β€” bu sayt mukammal degani emas. Yana 3 ta bor! Har doim shunday fikrlash kerak.
02
To'liq testlash imkonsiz
Register formasida qancha kombinatsiya bor? (Ism Γ— Email Γ— Parol Γ— Sana Γ— Telefon). Hammasini sinab ko'rish imkonsiz β€” tanlab testlash kerak.
03
Erta testlash vaqt tejaydi
Agar TestShop production'ga chiqqan bo'lsa va faqat shunda bug topilsa β€” mijozlar ketib qoladi. Testorlar oldindan topishi kerak edi.
04
Buglar klasterlarda
Qaysi sahifada ko'p bug bor? Register formasida 3 ta, Login'da 3 ta, Bosh sahifada 4 ta. Bosh sahifa β€” eng xavfli joy!
06
Kontekstga bog'liq
TestShop β€” oddiy onlayn-do'kon. Agar bu bank ilova bo'lganda β€” testing 10x qatiqroq bo'lardi. Kontekst barcha narsani belgilaydi.

Sizning amaliy vazifangiz:

  1. Barcha 10 bug'ni toping β€” Bug Hunt sahifasidagi progress bar 100% bo'lsin
  2. Har bug uchun aniqlang: qaysi prinsipni eslatadi? Masalan, rasm yuklanmagani β€” Prinsip 1 (bug bor ekani)
  3. Klasterlarni aniqlang: qaysi sahifada ko'p bug? Nega?
  4. Kontekst haqida fikrlang: agar bu bank ilova bo'lganda β€” qaysi buglar Critical bo'lar edi?
πŸ’‘ Pro maslahat

Intervyuda "prinsiplarni amaliyotda qo'llaganingizni aytib bering" deb so'rashadi. Shu TestShop tajribangizni aytsangiz β€” intervyu oluvchi e'tirof qiladi. Chunki siz nazariya emas, amaliy tajriba haqida gapirasiz.

3 ta asosiy fikr

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

01
Prinsiplar β€” qoida emas, maslahat
Ular sizga to'g'ri fikrlash tarzini beradi. Yodlab qolmang β€” har birining ma'nosini tushuning.
02
Kontekst hamma narsa
"Eng yaxshi usul" yo'q. Sizning loyihangizga nima yaxshi ekanini tushuning va moslashing.
03
Real ishda qo'llang
Bu prinsiplar akademik nazariya emas. Har kuni ishda ular asosida qaror qabul qilasiz.
πŸ† Darsni muvaffaqiyatli tugatdingiz!