Sobes.tech
Junior

Ağ qutu testinin mahiyyəti nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Ağ-qutb testi (White-box testing) proqram təminatının daxili quruluşunu, dizaynını və kodun məntiqini yoxlayan bir test metodudur. Test edən şəxs mənbə koduna daxil ola bilər və ona əsaslanaraq test halları hazırlayır.

Əsas prinsiplər:

  • Kodun əhatə dairəsi: Test halları müxtəlif kod elementlərinin (operatorlar, şaxələr, yollar) maksimum əhatəsini təmin etmək üçün hazırlanır.
  • Daxili quruluşun bilinməsi: Proqramın daxili işləməsini anlamağı tələb edir.
  • Aşkarlama: məntiqdəki səhvlər, düzgün olmayan icra yolları, döngülər və şərti operatorlarla bağlı problemlər.
  • Avtomatlaşdırma: Tez-tez vahid testlərdə, inteqrasiya testlərində və kod səviyyəsində təhlükəsizlik testlərində istifadə olunur.

Əhatə növləri:

  • Bəyanatların əhatəsi (Statement Coverage): Proqramdakı hər bəyanatı ən azı bir dəfə icra etmək.
  • Şaxələrin əhatəsi (Branch Coverage): Hər bir şərti (if, else, switch) həm true, həm də false kimi icra etmək.
  • Yolların əhatəsi (Path Coverage): Proqram boyunca mümkün olan bütün yolları icra etmək. (Ən tam, lakin çox vaxt praktiki deyil).

Python-də şaxə əhatəsinin nümunəsi:

# Nümunə funksiyası
def calculate_discount(price, is_member):
    if price > 100 and is_member: # Şaxə 1 (doğru)
        discount = price * 0.1  # Şaxə 2 (Şaxə 1 'doğru' olarsa icra olunur)
    else: # Şaxə 3 (yanlış)
        discount = 0            # Şaxə 4 (Şaxə 1 'yanlış' olarsa icra olunur)
    return price - discount

# Şaxələri əhatə etmək üçün test halları:
# 1. price > 100 və is_member == True (Şaxə 1 doğru, Şaxə 2)
# 2. price <= 100 və ya is_member == False (Şaxə 1 yanlış, Şaxə 3, Şaxə 4)

Üstünlüklər:

  • Xətaların erkən aşkarlanması.
  • Əhəmiyyətli kod hissələrinin test olunduğundan əminlik.
  • Kodun necə işlədiyini anlamağa və dizaynını yaxşılaşdırmağa kömək edir.

Çətinliklər:

  • Koda dərindən bilik tələb edir.
  • Böyük və mürəkkəb sistemlər üçün vaxt və əmək tələb edə bilər.
  • Proqramın son istifadəçi baxımından işləməsini test etmir (bu, qara qutu testlərinin vəzifəsidir).

Əsas məqsəd "nə" etdiyindən çox "necə" işlədiyini yoxlamaqdır.