Junior
Oq quti testining mohiyati nima?
sobes.tech AI
AIdan javob
Oqil bo‘yoq (White-box testing) dasturiy ta'minotni sinash usulidir, u ichki tuzilishi, dizayni va kodning mantiqini tekshiradi. Sinovchi manba kodiga kirish huquqiga ega bo‘lib, unga asoslangan holda sinov holatlarini ishlab chiqadi.
Asosiy tamoyillar:
- Kodni qamrab olish: Sinov holatlari kodning turli elementlarini (operatorlar, shoxlar, yo‘llar) maksimal darajada qamrab olish uchun ishlab chiqiladi.
- Ichki tuzilishni bilish: Dastur qanday ishlashini tushunishni talab qiladi.
- Aniqlash: mantiqdagi xatoliklar, noto‘g‘ri bajarilish yo‘llari, sikllar va shartli operatorlar bilan bog‘liq muammolar.
- Avtomatlashtirish: Ko‘pincha birlik sinovlari, integratsiya sinovlari va kod darajasidagi xavfsizlik sinovlarida qo‘llaniladi.
Qamrovlash turlari:
- Bayonotlarni qamrab olish (Statement Coverage): Har bir bayonotni kamida bir marta bajarish.
- Shoxlarni qamrab olish (Branch Coverage): Har bir shartni (if, else, switch) haqiqat va yolg‘on holatida bajarish.
- Yo‘llarni qamrab olish (Path Coverage): Dastur bo‘ylab barcha mumkin bo‘lgan yo‘llarni bajarish. (Eng to‘liq, ammo ko‘pincha amaliy emas).
Python misolida shoxlarni qamrab olish:
# Misol funksiyasi
def calculate_discount(price, is_member):
if price > 100 and is_member: # Shox 1 (haqiqat)
discount = price * 0.1 # Shox 2 (Shox 1 'haqiqat' bo‘lsa bajariladi)
else: # Shox 3 (yolg‘on)
discount = 0 # Shox 4 (Shox 1 'yolg‘on' bo‘lsa bajariladi)
return price - discount
# Shoxlarni qamrab olish uchun test holatlari:
# 1. price > 100 va is_member == True (Shox 1 haqiqat, Shox 2)
# 2. price <= 100 yoki is_member == False (Shox 1 yolg‘on, Shox 3, Shox 4)
Afzalliklari:
- Dastlabki bosqichda xatolarni aniqlash.
- Muhim kod qismlari sinovdan o‘tganligini kafolatlaydi.
- Kod qanday ishlashini tushunishga va uning dizaynini yaxshilashga yordam beradi.
Kamchiliklari:
- Kodingiz haqida chuqur bilim talab qiladi.
- Katta va murakkab tizimlar uchun vaqt va mehnat talab qilishi mumkin.
- Dastur ish faoliyatini foydalanuvchi nuqtai nazaridan sinovdan o‘tkazmaydi (bu qora quti sinovining vazifasi).
Asosiy ma'no — "qanday" ishlashini tekshirish, faqat "nima" qilayotganini emas.