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.