← Ana Səhifəyə qayıt
// tələbələr üçün

Manual QA Lab

Real interfeyslər test edin. Bug tapın. Test case yazın. Praktiki bacarıq qazanın.

🎓 ABB Tech Academy — Tələbələr üçün

Praktiki QA Məşq Mühiti

Real dünya ssenariləri üzərində sınanmış məşq platforması. Bug tapın, test case yazın, checklist hazırlayın.

🐛
Bug Hunt
12 bug · Bank UIAsan
📝
Test Case Writing
8 ssenariOrta
Checklist Practice
Form validasiyaAsan
🔍
Exploratory Testing
Broken UIÇətin
📐
Boundary Value
Min/Max dəyərlərOrta
🗂️
Equivalence Part.
Qrup testləriOrta
🔁
Regression Testing
15 test caseÇətin
🔌
API Manual Test
Postman iləÇətin

🏦 Buggy Bank Demo

BUG-LAB

Aşağıdakı formda 5 bug gizlənib. Tapıb test case yazın!

https://demo.anarabbas.az/bank-login
Ad
Soyad
Email
Şifrə min 3 simvol
Hesab Nömrəsi

🛒 Broken E-ticarət Formu

UI-LAB

Bu formda 4 UX bug var. Tapın və bug report yazın!

https://demo.anarabbas.az/checkout
Ad Soyad
Kart Nömrəsi
Məbləğ (bug: mənfi)
Son İstifadə Tarixi

💰 Kredit Kalkulyatoru — Bug Hunt

10 BUG

Bu kalkulyatorda 10 bug gizlənib — müxtəlif çətinlik səviyyələrində. Slider-ləri hərəkət etdirin, dəyərləri dəyişin, kənar halları yoxlayın.

https://demo.anarabbas.az/kredit-kalkulyator
Kredit məbləği ₼5,000
₼500₼50,000
Müddət 12 ay
3 ay84 ay
İllik faiz dərəcəsi (%)
Aylıq ödəniş
₼0
Ümumi ödəniş
₼0
Ümumi faiz
₼0

🏛️ Bank Köçürməsi Formu

HARD

Bu formda 6 məntiqi bug var. Diqqətli test edin — səthən görünmür!

https://demo.anarabbas.az/transfer
Göndərən hesab
Alıcı IBAN
Məbləğ (₼)
Köçürmə tarixi
Təyinat

🎯 10 Çətin Bug — Bank Sistemi

HARD LEVEL

Real bank sistemlərindən götürülmüş çətin ssenarilər. Hər birinin bug növü, tapılma yolutest case yazılması tələb olunur.

🔐

BUG-01: JWT Token Süresi

Critical · Security

Token 30 dəqiqədə bitir, lakin backend yoxlamır. Köhnə token ilə hər hansı API endpoint-ə sorğu göndər — 200 OK qaytarır.

Necə tapılır:
1. Login → token al
2. 35 dəq gözlə
3. GET /api/profile — cavab?
✗ 200 OK qaytarır (bug!)
💸

BUG-02: Race Condition — Ödəniş

Critical · Logic

Balans ₼100 olduqda eyni anda 2 tab-da ₼80 köçürmə göndər. Hər ikisi uğurlu keçir → balans mənfi olur.

Necə tapılır:
2 brauzer tab ac → eyni anda submit
✗ ₼100 − ₼80 − ₼80 = −₼60
🔢

BUG-03: Faiz Düsturu Yanlışdır

High · Calculation

Kredit kalkulyatoru aylıq ödənişi sadə faizlə hesablayır (P×r×n/n), düzgün amortization düsturunu deyil.

₼10,000 / 12 ay / 18% üçün:
Düzgün: ₼916.70/ay
Bug: ₼983.33/ay göstərir
📅

BUG-04: Keçmiş Tarix Seçimi

High · Validation

Köçürmə tarixi sahəsindən 2020-ci il seçilə bilir. Backend keçmiş tarixli köçürməni icra edir.

Necə tapılır:
Tarix picker → 01.01.2020 seç → submit
✗ Köçürmə uğurla icra olunur
🏦

BUG-05: Öz Hesabına Köçürmə

High · Logic

İstifadəçi alıcı IBAN-ı kimi öz hesab nömrəsini daxil edə bilir. Sistem eyni hesaba köçürməni icra edir.

Necə tapılır:
Göndərən = Alıcı IBAN → submit
✗ "Özünüzə köçürmə etdiniz" xəta yoxdur
💰

BUG-06: Sıfır Məbləğli Köçürmə

Medium · Validation

Məbləğ sahəsinə 0 daxil edildikdə forma göndərilir. Backend 0 AZN köçürməni qeydə alır, komissiya tutulur.

Necə tapılır:
Məbləğ: 0 → submit
✗ "0 AZN köçürmə uğurlu" + komissiya ₼0.30
🔍

BUG-07: IBAN Format Yoxlanmır

Medium · Format

IBAN sahəsinə "test123" daxil etmək mümkündür. Frontend yalnız uzunluğu yoxlayır (28 simvol), AZ__ NABZ formatını deyil.

Necə tapılır:
IBAN: "AAAAAAAAAAAAAAAAAAAAAAAAAAAA" (28 hrf)
✗ Forma validasiyadan keçir
📊

BUG-08: Slider Max Dəyərində 0 Göstərir

Medium · UI

Kredit məbləği slider-ini ₼50,000 maksimuma çəkdikdə aylıq ödəniş sahəsində "₼0" göstərilir. Integer overflow problemi.

Necə tapılır:
Məbləğ slider → ₼50,000
Müddət → 84 ay → Nəticəyə bax
✗ Aylıq ödəniş: ₼0.00
🌐

BUG-09: XSS — Axtarış Sahəsi

Security · XSS

Əməliyyat tarixçəsinin axtarış sahəsinə script teqi daxil edilir və icra olunur. Output sanitizasiya edilmir.

Test payload:
<img src=x onerror=alert(1)>
✗ Alert çalışır — XSS uğurlu!
🔄

BUG-10: Pagination Son Səhifə Lopu

Low · Logic

Əməliyyat tarixçəsinin son səhifəsindən "Növbəti" düyməsinə basıldıqda eyni səhifə yenidən yüklənir — sonsuz loop.

Necə tapılır:
Tarixçə → son səhifəyə get
"Növbəti →" düyməsinə bas
✗ Eyni URL yüklənir, page++ yoxdur

📋 Bug Tapma Cədvəli — Özünüzü Yoxlayın

0/10 bug tapıldı

🧪 Black Box Test Texnikaları

6 texnika

Black box testingdə daxili kodu bilmədən yalnız giriş/çıxış əsasında test hazırlanır. Aşağıdakı texnikalar QA müsahibələrinin əsasını təşkil edir.

⚖️

Equivalence Partitioning

Ekvivalentlik bölümü

Giriş məlumatlarını bərabər davranışlı qruplara (partition) bölmək. Hər qrupdan yalnız 1 test case yazılır — bu, test sayını azaldır.

Ssenaı: Yaş sahəsi — 18-65 arası qəbul edir
🔴 Invalid: <18 (məs: 5)
🟢 Valid: 18-65 (məs: 30)
🔴 Invalid: >65 (məs: 80)
📐

Boundary Value Analysis

Hədd dəyəri analizi

Sərhəd nöqtələrini test etmə. Bugların çoxu minimum/maksimum dəyərlərdə olur. Hər hədd üçün: min−1, min, min+1 / max−1, max, max+1.

Ssenaı: Şifrə uzunluğu — 8-20 simvol
✗ 7 simvol  |  ✓ 8 simvol  |  ✓ 9 simvol
✓ 19 simvol  |  ✓ 20 simvol  |  ✗ 21 simvol
📋

Decision Table Testing

Qərar cədvəli testi

Bir neçə şərtin kombinasiyalarını cədvəl şəklində test etmə. Mürəkkəb biznes qaydaları üçün idealdır — heç bir kombinasiya qaçırılmır.

Ssenaı: Bank login
İstifadəçi ✓ + Şifrə ✓ → Giriş ✓
İstifadəçi ✓ + Şifrə ✗ → Xəta mesajı
İstifadəçi ✗ + Şifrə ✓ → Xəta mesajı
İstifadəçi ✗ + Şifrə ✗ → Xəta mesajı
🔄

State Transition Testing

Vəziyyət keçid testi

Sistemin müxtəlif vəziyyətlər arasında keçidlərini test etmə. ATM, sifariş statusu, istifadəçi hesabı kimi axınlar üçün.

Ssenaı: Sifariş statusu
Gözləyir → Təsdiqləndi → Göndərildi → Çatdırıldı
Gözləyir → Ləğv edildi (valid)
Çatdırıldı → Ləğv edildi (invalid ✗)
🧩

Use Case Testing

İstifadə ssenarisinin testi

İstifadəçinin sistemi necə istifadə etdiyini ssenarilər üzrə test etmə. Əsas axın (happy path) + alternativ axınlar + xəta axınları.

Use Case: Ödəniş et
✅ Əsas: kart → doğrulama → uğurlu
↪ Alternativ: balans yetərsiz → xəta
↪ Xəta: şəbəkə kəsildi → timeout
🔮

Error Guessing

Xəta tahmin etmə

Təcrübə əsasında ən çox bug-ın tapıldığı yerləri intuisiya ilə test etmə. Exploratory testing-in əsasıdır. Formal texnika deyil, bacarıqdır.

Tipik xəta nöqtələri:
• Boş sahə göndərmə (null/empty)
• SQL injection: '; DROP TABLE--
• Çox uzun string (10000+ simvol)
• Xüsusi simvollar: < > " ' / \

🐛 Bug Report Nümunəsi

Şablon

Professional bug report-un standart strukturu. Jira, TestRail, Mantis — hamısında bu sahələr eynidir.

BUG-1042

Login formu boş şifrə ilə daxil olmağa icazə verir

🔴 Critical P1 — Urgent
Mühit
Production  ·  Chrome 124  ·  Windows 11  ·  v2.4.1
Addımlar
  1. Login səhifəsini açın: demo.anarabbas.az/login
  2. Email sahəsinə test@abb.az daxil edin
  3. Şifrə sahəsini boş buraxın
  4. "Daxil ol" düyməsini klikləyin
Gözlənilən
"Şifrə daxil edin" xəta mesajı göstərilməli, giriş bloklanmalıdır.
Faktiki
Sistem boş şifrə ilə istifadəçini dashboard-a keçirir. Autentifikasiya yan keçilir.
Təkrarlana bilir
✅ Həmişə — 5/5 cəhd uğurlu oldu
Əlavə
Postman ilə birbaşa POST /api/login {"email":"test@abb.az","password":""} göndərildikdə də 200 OK qaytarır. Backend validasiyası yoxdur.
BUG-1043

Kart nömrəsi sahəsi 30+ simvol qəbul edir, validasiya yoxdur

🟡 Medium P2 — Normal
Mühit
Staging  ·  Firefox 125  ·  macOS 14  ·  v2.4.1
Addımlar
  1. Checkout səhifəsinə keçin
  2. Kart nömrəsi sahəsinə 50 simvollu mətn yapışdırın
  3. "Ödəniş et" klikləyin
Gözlənilən
Sahə maksimum 16 rəqəm qəbul etməli, format XX XX XX XX olmalıdır.
Faktiki
50 simvollu daxiletmə qəbul edilir, format yoxlanılmır. Ödəniş API-ya etibarsız məlumat gedir.
Təkrarlana bilir
✅ Həmişə
BUG-1044

"Şifrəni unut" linki mobil cihazda kliklenə bilmir (touch target kiçikdir)

🟢 Low P3 — Minor
Mühit
Production  ·  Safari Mobile  ·  iPhone 14 (iOS 17)  ·  v2.4.1
Addımlar
  1. iPhone-da login səhifəsini açın
  2. "Şifrəni unutdum?" linkini barmaqla klikləməyə çalışın
Gözlənilən
Link asanlıqla kliklenə bilməli (WCAG: min 44×44 px touch target).
Faktiki
Link yalnız 18px hündürlüyündədir. Dəqiq kliklənmə çox çətindir, istifadəçi login düyməsinə basır.
Tövsiyə
min-height: 44px; padding: 12px; əlavə edilsin. Apple HIG standartına görə minimum 44pt touch target tələb olunur.

📝 Test Case Nümunələri

3 modul

Həqiqi bank sistemləri üçün yazılmış test case nümunələri. Login, Ödəniş, Profil modulları üzrə.

IDTest AdıÖn şərtAddımlarGözlənilən NəticəStatus
TC-LOG-001 Düzgün etimadnamə ilə giriş İstifadəçi qeydiyyatlıdır 1. Login səhifəsini aç
2. Email: test@abb.az
3. Şifrə: Test@1234
4. "Daxil ol" klik
Dashboard açılır, welcome mesajı göstərilir PASS ✓
TC-LOG-002 Yanlış şifrə ilə giriş cəhdi İstifadəçi qeydiyyatlıdır 1. Email: test@abb.az
2. Şifrə: wrongPass
3. "Daxil ol" klik
"Şifrə yanlışdır" xəta mesajı, hesab kilidlənmir FAIL ✗
TC-LOG-003 Boş email ilə form göndərimi 1. Email sahəsini boş burax
2. Şifrə: Test@1234
3. "Daxil ol" klik
Email sahəsinin altında "Bu sahə məcburidir" xəta PASS ✓
TC-LOG-004 5 uğursuz cəhddən sonra hesab kilidi İstifadəçi mövcuddur 1. Yanlış şifrə ilə 5 dəfə giriş cəhdi et
2. 6-cı cəhddə düzgün şifrə daxil et
"Hesabınız 15 dəqiqəlik kilidləndi" mesajı N/TC
TC-LOG-005 SQL injection cəhdi 1. Email: ' OR '1'='1
2. Şifrə: herhangi
3. Submit
Giriş bloklanır, xəta mesajı. 500 error yoxdur PASS ✓
IDTest AdıÖn şərtAddımlarGözlənilən NəticəStatus
TC-PAY-001 Uğurlu ödəniş — Visa kart Hesabda ≥ ₼100 balans var 1. Məbləğ: ₼50
2. Kart: 4111 1111 1111 1111
3. CVV: 123, Tarix: 12/26
4. "Ödəniş et" klik
Ödəniş təsdiqi, email bildirişi, balans azalır PASS ✓
TC-PAY-002 Balans yetərsiz olduqda ödəniş Hesabda ₼10 balans var 1. Məbləğ: ₼100 daxil et
2. Ödəniş et klik
"Balansınız yetərsizdir" xəta, ödəniş baş vermir PASS ✓
TC-PAY-003 Mənfi məbləğ ilə ödəniş cəhdi 1. Məbləğ sahəsinə -50 daxil et
2. Submit
Validasiya xətası — mənfi dəyər qəbul edilmir FAIL ✗
TC-PAY-004 Etibarsız kart tarixi 1. Kart tarixi: 01/20 (keçmiş)
2. Ödəniş et
"Kartın müddəti bitib" xəta mesajı N/TC
TC-PAY-005 Eyni əməliyyatı iki dəfə göndərmə Ödəniş gözləmə vəziyyətindədir 1. Ödəniş et klik
2. Cavabı gözləmədən yenidən klik
Yalnız 1 ödəniş icra edilir (idempotency) FAIL ✗
IDTest AdıÖn şərtAddımlarGözlənilən NəticəStatus
TC-PRF-001 Ad-soyad yeniləmə İstifadəçi daxil olub 1. Profil → Redaktə
2. Ad: "Nigar", Soyad: "Əliyeva"
3. Yadda saxla
Dəyişiklik yadda saxlanır, nav-da yeni ad görünür PASS ✓
TC-PRF-002 Şifrə dəyişdirmə — köhnə şifrə yanlış İstifadəçi daxil olub 1. Şifrəni dəyiş
2. Köhnə şifrə: wrong123
3. Yadda saxla
"Köhnə şifrə yanlışdır" xəta, şifrə dəyişmir PASS ✓
TC-PRF-003 Profil şəkli — 5MB-dan böyük fayl İstifadəçi daxil olub 1. Profil şəkli → Yüklə
2. 8MB JPEG seçin
"Fayl ölçüsü 5MB-dan çox ola bilməz" xəta N/TC
TC-PRF-004 Ad sahəsini boş yadda saxlama İstifadəçi profil redaktə ekranındadır 1. Ad sahəsini sil
2. Yadda saxla klik
"Ad sahəsi məcburidir" xəta mesajı FAIL ✗
TC-PRF-005 Email format validasiyası İstifadəçi daxil olub 1. Email: "abc@" daxil et
2. Yadda saxla
"Email formatı yanlışdır" validasiya xətası PASS ✓