Sparround

Test növləri: functional və non-functional

Test növü (type) sualı belədir: "məhsulun hansı keyfiyyət xüsusiyyətini yoxlayıram?"

  • Functional testing — sistem NƏ edir? Biznes qaydaları, hesablamalar, iş axınları requirement-lərə uyğundurmu.
  • Non-functional testing — sistem NECƏ edir? Sürət, təhlükəsizlik, rahatlıq, uyğunluq, dil dəstəyi.

Sığorta portalından nümunə: "KASKO qiyməti düzgün hesablanır" — functional. "Qiymət hesablanması 3 saniyədən çox çəkmir" — non-functional (performance). Hər ikisi eyni funksiyaya aiddir, amma fərqli sual verir.

Functional növNəyi yoxlayırNə vaxt işə düşür
SmokeBuild ümumiyyətlə işlək və test edilə biləndirmi (geniş, dayaz)Hər yeni build gələndə, dərin testdən əvvəl
SanityKonkret dəyişiklik/fix məntiqli işləyirmi (dar, dərin)Kiçik dəyişiklikdən və ya bug fix-dən sonra
Re-test (confirmation)Konkret bug-ın həqiqətən düzəldiyini — eyni addımlarlaBug "Fixed" statusuna keçəndə
RegressionDəyişikliyin BAŞQA işləyən sahələri sındırmadığınıRelease-dən əvvəl və əhəmiyyətli dəyişikliklərdən sonra
IntegrationModullar və xarici sistemlər arasında data mübadiləsiniModullar hazır olduqca (məs. poliso servisi ↔ ödəniş şlüzü)
UAT (acceptance)Məhsulun real biznes ehtiyacına cavab verdiyiniRelease-dən əvvəl, biznes/müştəri tərəfindən
Non-functional növCavab verdiyi sualManual QA-nın praktiki yoxlaması
PerformanceNə qədər sürətli və neçə istifadəçi altında?Səhifə/sorğu cavab müddətini ölçmək, yavaş şəbəkədə davranış
SecurityData və giriş nə dərəcədə qorunur?Başqasının poliso ID-si ilə URL-i açmaq, token-siz sorğu, XSS inputu
Usabilityİstifadəçi məqsədinə asan çatırmı?Error mesajlarının aydınlığı, addım sayı, geri qayıtma imkanı
CompatibilityFərqli brauzer/cihaz/OS-də eyni işləyirmi?Chrome/Safari/Firefox, iOS/Android, kiçik ekran, köhnə OS versiyası
Localisation / i18nDil, tarix, valyuta və format qaydaları düzgündürmü?AZ/EN keçidi, tərcüməsiz mətnlər, ə/ğ/ş hərfləri, ₼ formatı, uzun mətnin düymədən daşması
Reliability / recoveryNasazlıqdan sonra sistem özünü bərpa edirmi?Ödəniş ortasında şəbəkənin kəsilməsi, sorğunun təkrarı (double charge yoxlaması)

Ən çox qarışdırılan yer: level ≠ type.

  • Level (səviyyə) — testin sistemin hansı qatında aparıldığını bildirir: unit → integration → system → acceptance.
  • Type (növ) — testin hansı keyfiyyət xüsusiyyətinə baxdığını bildirir: functional, performance, security və s.

Bu iki ölçü bir-birinə kəsişir: system səviyyəsində həm functional, həm də security test aparmaq olar. Yəni "performance testing hansı səviyyədir?" sualı səhv qoyuluşdur — performance bir növdür və müxtəlif səviyyələrdə icra oluna bilər.

Integration sözü hər iki siyahıda görünür və məhz buna görə qarışıq yaradır: o həm bir səviyyə (modullar arası qat), həm də həmin qatda aparılan functional testin adıdır.

Interview taktikası: smoke/sanity/regression/re-test dördlüyü demək olar hər manual QA müsahibəsində soruşulur. Onları bir cümlə + bir nümunə formatında hazır saxla, məsələn: "Re-test — konkret bug-ın düzəldiyini yoxlayıram; regression — həmin fix-in poliso hesablamasını sındırmadığını yoxlayıram." İki anlayışı eyni nümunə üzərində müqayisə etmək ən güclü cavabdır.