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öv | Nəyi yoxlayır | Nə vaxt işə düşür |
|---|---|---|
| Smoke | Build ü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 |
| Sanity | Konkret 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ımlarla | Bug "Fixed" statusuna keçəndə |
| Regression | Də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 |
| Integration | Modullar və xarici sistemlər arasında data mübadiləsini | Modullar hazır olduqca (məs. poliso servisi ↔ ödəniş şlüzü) |
| UAT (acceptance) | Məhsulun real biznes ehtiyacına cavab verdiyini | Release-dən əvvəl, biznes/müştəri tərəfindən |
| Non-functional növ | Cavab verdiyi sual | Manual QA-nın praktiki yoxlaması |
|---|---|---|
| Performance | Nə 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ış |
| Security | Data 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ı |
| Compatibility | Fərqli brauzer/cihaz/OS-də eyni işləyirmi? | Chrome/Safari/Firefox, iOS/Android, kiçik ekran, köhnə OS versiyası |
| Localisation / i18n | Dil, 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 / recovery | Nasazlı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.