Sobes.tech
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.