Test Tasarım Teknikleri: QA Mülakatları İçin Kapsamlı Rehber

Pratik örneklerle tüm test tasarım tekniklerinde ustalaşın. Eşdeğerlik sınıflarından durum geçişlerine - mülakat başarısı için ihtiyacınız olan her şey


Test Tasarım Teknikleri

🎯 Bu Makale Neden?

Neredeyse her QA mülakatında şunu duyacaksınız:

“Hangi test tasarım tekniklerini biliyorsunuz? Bir örnek verin.”

Birçok aday teknikleri sayabilir ancak gerçek örneklerle zorlanır. Bu makale size şunları öğretecek:

  • ✅ Tüm temel test tasarım teknikleri
  • ✅ Her biri için gerçek dünya örnekleri
  • ✅ Hangi tekniği ne zaman kullanmalı
  • ✅ Cevaplarla birlikte tipik mülakat soruları
  • ✅ Pratik alıştırmalar

Bu makalenin sonunda, mülakatta herhangi bir test tasarım sorusunu güvenle cevaplayabileceksiniz.


📋 İçindekiler

  1. Test Tasarımı Nedir?
  2. Eşdeğerlik Bölümleme
  3. Sınır Değer Analizi
  4. Karar Tablosu Testi
  5. Durum Geçiş Testi
  6. Çiftli Test
  7. Hata Tahmin
  8. Kullanım Senaryosu Testi
  9. Keşifsel Test
  10. Mülakat Soruları ve Cevapları
  11. Pratik Alıştırmalar

🎨 Test Tasarımı Nedir?

Problem

Basit bir giriş formu test ettiğinizi düşünün:

  • Kullanıcı adı (1-50 karakter)
  • Şifre (8-20 karakter)
  • “Beni Hatırla” onay kutusu

Kaç test senaryosuna ihtiyacınız var?

TÜM olası kombinasyonları test ederseniz:

  • Kullanıcı adı: milyarlarca kombinasyon
  • Şifre: daha da fazla
  • Onay kutusu: 2 durum

Sonuç: Sonsuz test, imkansız!

Çözüm: Test Tasarım Teknikleri

Test tasarım teknikleri şunları sağlar:

  • ✅ Test senaryolarını yönetilebilir sayıya düşürme
  • ✅ Test kapsamını maksimize etme
  • ✅ Hataları verimli bulma
  • ✅ Zaman ve kaynak tasarrufu

Black-Box vs White-Box

Black-Box Test (bu makalenin odağı):

  • İç kodu bilmeden test etme
  • Gereksinimlere ve spesifikasyonlara dayalı
  • Teknikler: EP, BVA, Karar Tabloları, vb.

White-Box Test:

  • Kod bilgisiyle test etme
  • Kod yapısına dayalı
  • Teknikler: Statement Coverage, Branch Coverage, vb.

📦 Eşdeğerlik Bölümleme (Equivalence Partitioning)

Nedir?

Girdi verilerini, gruptaki tüm değerlerin aynı şekilde davranması gereken gruplara (sınıflara) bölme.

Ana Fikir: Sınıftaki bir değer çalışıyorsa, o sınıftaki tüm değerler çalışmalıdır.

Gerçek Örnek: Yaş Doğrulama

Gereksinim: Kullanıcı kayıt için 18-65 yaş arasında olmalıdır.

EP Olmadan: Yaşları test et 1, 2, 3, 4… 100 = 100 test senaryosu

EP İle: Sınıflara böl:

SınıfAralıkBeklenen SonuçÖrnek
Geçersiz (çok genç)0-17Hata10
Geçerli18-65Başarı30
Geçersiz (çok yaşlı)66+Hata70
Geçersiz (negatif)< 0Hata-5

Sonuç: Sadece 4 test senaryosu gerekli!

Test Senaryoları

Test 1: Yaş = 10
  Girdi: yaş = 10
  Beklenen: Hata "En az 18 yaşında olmalısınız"
  Sınıf: Geçersiz (çok genç)

Test 2: Yaş = 30
  Girdi: yaş = 30
  Beklenen: Kayıt başarılı
  Sınıf: Geçerli

Test 3: Yaş = 70
  Girdi: yaş = 70
  Beklenen: Hata "Maksimum yaş 65"
  Sınıf: Geçersiz (çok yaşlı)

Test 4: Yaş = -5
  Girdi: yaş = -5
  Beklenen: Hata "Geçersiz yaş"
  Sınıf: Geçersiz (negatif)

Başka Bir Örnek: Email Doğrulama

Gereksinim: Geçerli email formatı gerekli

Sınıflar:

SınıfAçıklamaÖrnekBeklenen
Geçerli emailDoğru formatuser@example.com✅ Geçerli
@ yok@ sembolü yokuserexample.com❌ Geçersiz
Domain yokDomain yokuser@❌ Geçersiz
İsim yokKullanıcı adı yok@example.com❌ Geçersiz
Çift @İki @ sembolüuser@@example.com❌ Geçersiz
BoşGirdi yok""❌ Geçersiz

EP Ne Zaman Kullanılır?

  • ✅ Aralıklı giriş alanları
  • ✅ Açılır listeler
  • ✅ Geçerli/geçersiz kategorileri olan her girdi
  • ✅ Test senaryolarını azaltma gerektiğinde

🎯 Sınır Değer Analizi (Boundary Value Analysis)

Nedir?

Eşdeğerlik bölümlerinin kenarlarında (sınırlarında) test etme. Hatalar sınırlarda saklanmayı sever!

Ana Fikir: Minimum, maksimum ve hemen içeride/dışarıda olan değerleri test edin.

Hata Bölgesi

       Geçersiz |     Geçerli     |   Geçersiz
    ←-----------|-----------------|-------------→
                18               65
                ↑                ↑
             SINIR            SINIR
              
    Çoğu hata BURADA sınırlardadır!

Gerçek Örnek: Yaş Doğrulama (devam)

Gereksinim: Kullanıcı 18-65 yaş arasında olmalıdır

BVA Test Değerleri:

Test DeğeriTipBeklenen
17Minimumun hemen altı❌ Geçersiz
18Minimum (sınır)✅ Geçerli
19Minimumun hemen üstü✅ Geçerli
64Maksimumun hemen altı✅ Geçerli
65Maksimum (sınır)✅ Geçerli
66Maksimumun hemen üstü❌ Geçersiz

Test Senaryoları

Test 1: Yaş = 17 (sınır - 1)
  Girdi: yaş = 17
  Beklenen: Hata "En az 18 yaşında olmalısınız"
  
Test 2: Yaş = 18 (alt sınır)
  Girdi: yaş = 18
  Beklenen: Başarı
  
Test 3: Yaş = 19 (sınır + 1)
  Girdi: yaş = 19
  Beklenen: Başarı
  
Test 4: Yaş = 64 (sınır - 1)
  Girdi: yaş = 64
  Beklenen: Başarı
  
Test 5: Yaş = 65 (üst sınır)
  Girdi: yaş = 65
  Beklenen: Başarı
  
Test 6: Yaş = 66 (sınır + 1)
  Girdi: yaş = 66
  Beklenen: Hata "Maksimum yaş 65"

Başka Bir Örnek: Şifre Uzunluğu

Gereksinim: Şifre 8-20 karakter olmalıdır

BVA Test Değerleri:

KarakterDeğerBeklenen
7”1234567”❌ Çok kısa
8”12345678”✅ Geçerli
9”123456789”✅ Geçerli
1919 karakter✅ Geçerli
2020 karakter✅ Geçerli
2121 karakter❌ Çok uzun

EP + BVA Birlikte

En İyi Uygulama: Her zaman EP ve BVA’yı birleştirin!

Adım 1: Sınıfları tanımlayın (EP)
  - Geçersiz: < 8 karakter
  - Geçerli: 8-20 karakter
  - Geçersiz: > 20 karakter

Adım 2: Sınırları test edin (BVA)
  - 7 karakter (sınır - 1)
  - 8 karakter (alt sınır)
  - 9 karakter (sınır + 1)
  - 19 karakter (sınır - 1)
  - 20 karakter (üst sınır)
  - 21 karakter (sınır + 1)

Adım 3: Her sınıftan bir değer test edin (EP)
  - 5 karakter (geçersiz sınıf)
  - 15 karakter (geçerli sınıf)
  - 25 karakter (geçersiz sınıf)

📊 Karar Tablosu Testi (Decision Table Testing)

Nedir?

Koşul kombinasyonlarını ve karşılık gelen eylemleri test etme. Karmaşık iş mantığı için mükemmel!

Ana Fikir: Koşulları ve eylemleri bir tabloda düzenleyerek tüm kombinasyonların test edilmesini sağlayın.

Gerçek Örnek: Kargo Ücreti Hesaplayıcı

İş Kuralları:

  • Sipariş > $100 VE premium üye → Ücretsiz kargo
  • Sipariş > $100 VE normal üye → $5 kargo
  • Sipariş ≤ $100 VE premium üye → $5 kargo
  • Sipariş ≤ $100 VE normal üye → $10 kargo

Karar Tablosu:

KoşulKural 1Kural 2Kural 3Kural 4
Sipariş > $100EvetEvetHayırHayır
Premium üyeEvetHayırEvetHayır
Eylem
Ücretsiz kargo
$5 kargo
$10 kargo

Karar Tablosundan Test Senaryoları

Test 1: Kural 1
  Koşullar:
    - Sipariş tutarı: $150 (> $100)
    - Üyelik tipi: Premium
  Beklenen: Ücretsiz kargo ($0)

Test 2: Kural 2
  Koşullar:
    - Sipariş tutarı: $150 (> $100)
    - Üyelik tipi: Normal
  Beklenen: $5 kargo

Test 3: Kural 3
  Koşullar:
    - Sipariş tutarı: $50 (≤ $100)
    - Üyelik tipi: Premium
  Beklenen: $5 kargo

Test 4: Kural 4
  Koşullar:
    - Sipariş tutarı: $50 (≤ $100)
    - Üyelik tipi: Normal
  Beklenen: $10 kargo

Başka Bir Örnek: Giriş Sistemi

İş Kuralları:

  • Geçerli giriş VE geçerli şifre → Başarılı giriş
  • Geçerli giriş VE geçersiz şifre → “Yanlış şifre”
  • Geçersiz giriş VE herhangi şifre → “Kullanıcı bulunamadı”
  • Boş giriş VEYA boş şifre → “Tüm alanları doldurun”

Karar Tablosu:

KoşulK1K2K3K4K5
Giriş boşHHHEH
Şifre boşHHHHE
Giriş geçerliEEH--
Şifre geçerliEH---
Eylem
Başarılı giriş
Yanlış şifre
Kullanıcı bulunamadı
Tüm alanları doldurun

Karar Tabloları Ne Zaman Kullanılır?

  • ✅ Birden çok koşul sonucu etkiliyor
  • ✅ Karmaşık iş kuralları
  • ✅ Farklı kombinasyonlar farklı sonuçlar veriyor
  • ✅ Ödeme sistemleri, indirimler, erişim hakları

🔄 Durum Geçiş Testi (State Transition Testing)

Nedir?

Olaylara/eylemlere dayalı olarak farklı durumlar arasında geçişte sistem davranışını test etme.

Ana Fikir: Durumları, geçişlere neden olan olayları ve eylemleri belirleyin.

Gerçek Örnek: Online Sipariş Durumu

Durumlar:

  1. Sepet → 2. Ödeme Bekliyor → 3. Ödendi → 4. Gönderildi → 5. Teslim Edildi

Durum Geçiş Diyagramı:

      [Sepet]
         |
         | (Sipariş Ver)

  [Ödeme Bekliyor]
         |
         | (Öde)         | (İptal)
         ↓               ↓
    [Ödendi]        [İptal Edildi]
         |
         | (Gönder)

   [Gönderildi]
         |
         | (Teslim Et)

 [Teslim Edildi]

Durum Geçiş Tablosu:

Mevcut DurumOlaySonraki DurumEylem
SepetSipariş VerÖdeme BekliyorSipariş Oluştur
Ödeme BekliyorÖdeÖdendiÖdeme İşle
Ödeme Bekliyorİptalİptal EdildiSipariş İptal
ÖdendiGönderGönderildiTakip Güncelle
GönderildiTeslim EtTeslim EdildiTeslimat Onayla

Test Senaryoları

Test 1: Mutlu Yol - Tam Sipariş
  Durumlar: Sepet → Bekliyor → Ödendi → Gönderildi → Teslim Edildi
  Adımlar:
    1. Sepete ürün ekle
    2. Sipariş ver → Durum: Ödeme Bekliyor
    3. Ödeme yap → Durum: Ödendi
    4. Admin gönderir → Durum: Gönderildi
    5. Teslimat onaylandı → Durum: Teslim Edildi

Test 2: Sipariş İptali
  Durumlar: Sepet → Bekliyor → İptal Edildi
  Adımlar:
    1. Sepete ürün ekle
    2. Sipariş ver → Durum: Ödeme Bekliyor
    3. İptal et → Durum: İptal Edildi

Test 3: Geçersiz Geçiş
  Mevcut Durum: Teslim Edildi
  Eylem: İptal etmeye çalış
  Beklenen: Hata "Teslim edilmiş sipariş iptal edilemez"

Başka Bir Örnek: ATM PIN Doğrulama

Durumlar:

  • Açık (kart girildi, 3 deneme)
  • Kilitli (çok fazla yanlış PIN)

Durum Diyagramı:

                    [Kart Girildi]
                          |
                    3 deneme kaldı
                          |
     Yanlış PIN           |         Doğru PIN
     ←-------------[Deneme 1]-------------→ [Açık]
           |              ↓
           |        2 deneme kaldı
           |              |
           | Yanlış PIN   |         Doğru PIN
           ←-------[Deneme 2]-------------→ [Açık]
           |              ↓
           |        1 deneme kaldı
           |              |
           | Yanlış PIN   |         Doğru PIN
           ←-------[Deneme 3]-------------→ [Açık]

                      [Kilitli]
                     Kart alındı

ATM Test Senaryoları

Test 1: İlk denemede doğru PIN
  Başlangıç: Kart girildi, 3 deneme
  Eylem: Doğru PIN gir
  Beklenen: Hesap açıldı

Test 2: İkinci denemede doğru PIN
  Başlangıç: Kart girildi, 3 deneme
  Eylem: Yanlış PIN → Doğru PIN
  Beklenen: Hesap açıldı, uyarı gösterildi

Test 3: 3 yanlış denemeden sonra kart kilitleniyor
  Başlangıç: Kart girildi, 3 deneme
  Eylem: Yanlış PIN × 3
  Beklenen: Kart kilitlendi ve alındı

🔗 Çiftli Test (Pairwise Testing)

Nedir?

Giriş parametrelerinin tüm olası çiftlerini test etme. Çoğu hatanın iki parametrenin etkileşiminden kaynaklandığına dayanır.

Ana Fikir: Tüm kombinasyonları test etmek yerine, her çifti en az bir kez test edin.

Problem

Tarayıcı Uyumluluk Testi:

  • İS: Windows, macOS, Linux (3 seçenek)
  • Tarayıcı: Chrome, Firefox, Safari, Edge (4 seçenek)
  • Dil: Türkçe, İngilizce, Almanca (3 seçenek)

Tüm kombinasyonlar: 3 × 4 × 3 = 36 test senaryosu

Çiftli Çözüm

Çiftli daha az testle tüm çiftleri kapsar:

TestİSTarayıcıDil
1WindowsChromeTürkçe
2WindowsFirefoxİngilizce
3WindowsSafariAlmanca
4macOSChromeİngilizce
5macOSFirefoxAlmanca
6macOSEdgeTürkçe
7LinuxChromeAlmanca
8LinuxSafariTürkçe
9LinuxEdgeİngilizce

Sonuç: 36 yerine sadece 9 test senaryosu!

Kapsam Doğrulama

Tüm çiftlerin kapsandığını doğrulayalım:

İS + Tarayıcı Çiftleri:

  • Windows + Chrome ✅ (Test 1)
  • Windows + Firefox ✅ (Test 2)
  • Windows + Safari ✅ (Test 3)
  • macOS + Chrome ✅ (Test 4)
  • … (hepsi kapsandı)

İS + Dil Çiftleri:

  • Windows + Türkçe ✅ (Test 1)
  • Windows + İngilizce ✅ (Test 2)
  • … (hepsi kapsandı)

Çiftli Araçları

  • PICT (Microsoft) - Ücretsiz command-line aracı
  • AllPairs - Online oluşturucu
  • Hexawise - Ticari araç

Çiftli Ne Zaman Kullanılır?

  • ✅ Çok sayıda giriş parametresi
  • ✅ Konfigürasyon testi
  • ✅ Uyumluluk testi
  • ✅ Tam kapsam çok pahalı olduğunda

🔮 Hata Tahmin (Error Guessing)

Nedir?

Hataların nerede saklanabileceğini tahmin etmek için deneyim ve sezgiyi kullanma. Resmi bir teknik değil, ama çok etkili!

Ana Fikir: Bir testçi gibi düşünün - hataları nerede BEKLERSİNİZ?

Yaygın Sorunlu Alanlar

1. Boş/Null Değerler

- Boş string ""
- Null değer
- Sadece boşluklar "   "
- Sadece özel karakterler "!@#$%"

2. Sınır Değerleri (aşırı)

- 0
- Negatif sayılar (-1)
- Çok büyük sayılar (999999999)
- Maksimum integer (2147483647)
- Ondalık hassasiyeti (0.00001)

3. Özel Karakterler

- Tırnaklar: ' " ` 
- HTML: < > & 
- SQL: ; -- ' OR 1=1
- Unicode: 中文 العربية 🎉
- Escape: \n \t \r

4. Tarih/Saat Uç Durumları

- Artık yıl (29 Şubat)
- Ay sınırları (31 Ocak + 1 gün)
- Zaman dilimleri
- Yaz saati uygulaması
- Y2K, 2038 sorunları

5. Dosya Yükleme Sorunları

- Boş dosya (0 byte)
- Çok büyük dosya (1GB+)
- Yanlış uzantı
- Çalıştırılabilir dosyalar (.exe, .bat)
- Çift uzantılar (image.jpg.exe)

Örnek: Arama Fonksiyonu Testi

Ne test ederdiniz?

Bariz testler:
- Geçerli arama sorgusu → Sonuçlar bulundu
- Eşleşme yok → "Sonuç bulunamadı"

Hata tahmin testleri:
- Boş arama → Nasıl işlenir?
- Sadece boşluklar → "   " 
- Çok uzun sorgu → 1000+ karakter
- Özel karakterler → <script>alert('xss')</script>
- SQL injection → ' OR '1'='1
- Unicode → 日本語 العربية
- Sadece sayılar → 12345
- Tek karakter → "a"

Hata Tahmin Kontrol Listesi

Her zaman bunları test edin:

KategoriTest Değerleri
Boş"", null, undefined
Boşluk” ”, “\t”, “\n”
Sayılar0, -1, MAX_INT, ondalıklar
StringlerÇok uzun, özel karakterler, unicode
Tarihler29 Şubat, 31 Aralık, zaman dilimleri
DosyalarBoş, devasa, yanlış tip
Yavaş, zaman aşımı, çevrimdışı

📖 Kullanım Senaryosu Testi (Use Case Testing)

Nedir?

Baştan sona tam kullanıcı senaryolarını test etme. Sistemin gerçek kullanımına dayalı.

Ana Fikir: Bireysel özellikler yerine gerçekçi kullanıcı yollarını test edin.

Kullanım Senaryosu Yapısı

Kullanım Senaryosu: [İsim]
Aktör: [Eylemi kim gerçekleştiriyor]
Ön Koşullar: [Başlamadan önce ne doğru olmalı]
Ana Akış: [Adım adım mutlu yol]
Alternatif Akışlar: [Varyasyonlar]
Son Koşullar: [Sonra ne doğru]

Örnek: Online Mağaza Satın Alma

Kullanım Senaryosu: Satın Alma

Aktör: Kayıtlı müşteri

Ön Koşullar:
- Kullanıcı giriş yapmış
- Sepette ürünler var
- Kullanıcının ödeme yöntemi var

Ana Akış (Mutlu Yol):
1. Kullanıcı sepeti görüntüler
2. Kullanıcı "Ödeme" tıklar
3. Sistem kargo seçeneklerini gösterir
4. Kullanıcı kargo yöntemi seçer
5. Sistem ödeme seçeneklerini gösterir
6. Kullanıcı ödeme bilgilerini girer
7. Kullanıcı "Sipariş Ver" tıklar
8. Sistem ödemeyi işler
9. Sistem sipariş onayı gösterir
10. Sistem onay emaili gönderir

Alternatif Akışlar:
A1. Boş sepet (adım 1'de):
    - Sistem "Sepetiniz boş" gösterir
    - Akış biter

A2. Ödeme reddedildi (adım 8'de):
    - Sistem "Ödeme reddedildi" gösterir
    - Adım 6'ya dön

A3. Stokta yok (adım 7'de):
    - Sistem "Ürün mevcut değil" gösterir
    - Adım 1'e dön

Son Koşullar:
- Sipariş sistemde oluşturuldu
- Ödeme işlendi
- Onay emaili gönderildi
- Stok güncellendi

Kullanım Senaryosundan Test Senaryoları

Test 1: Mutlu Yol
  Ön Koşullar: Giriş yapılmış, sepette ürünler
  Adımlar: Ana akışı takip edin 1-10
  Beklenen: Sipariş onaylandı, email alındı

Test 2: Boş Sepet
  Ön Koşullar: Giriş yapılmış, sepet boş
  Adımlar: Ödeme'ye tıkla
  Beklenen: "Sepetiniz boş"

Test 3: Ödeme Reddedildi
  Ön Koşullar: Giriş yapılmış, sepette ürünler
  Adımlar: Geçersiz kart kullan
  Beklenen: "Ödeme reddedildi", ödeme sayfasında kal

Test 4: Stokta Yok
  Ön Koşullar: Stokta son ürün
  Adımlar: Başka kullanıcı önce satın alır, sonra sipariş ver
  Beklenen: "Ürün mevcut değil"

🔍 Keşifsel Test (Exploratory Testing)

Nedir?

Eşzamanlı öğrenme, test tasarımı ve yürütme. Önceden tanımlanmış test senaryoları yok - keşfeder ve bulursunuz!

Ana Fikir: Betik testlerin kaçırdığı hataları bulmak için yaratıcılık ve merak kullanın.

Yapı: Oturum Bazlı Test

Zaman kutulu oturumlar:

  • Süre: 45-90 dakika
  • Net misyon (charter)
  • Bulguların not alınması
  • Oturum sonrası tartışma

Örnek Oturum Charter

Charter: Şifre sıfırlama işlevselliğini keşfet

Odak Alanları:
- Mutlu yol sıfırlama
- Hata işleme
- Güvenlik hususları
- Uç durumlar

Süre: 60 dakika

Cevaplanacak Sorular:
- Geçersiz email ile ne olur?
- Sıfırlama linki iki kez kullanılabilir mi?
- Link süresi doluyor mu?
- Aynı şifreye sıfırlanabilir mi?

Oturum Notları Şablonu

Oturum Raporu
=============
Testçi: [İsim]
Tarih: [Tarih]
Süre: 60 dakika
Charter: Şifre sıfırlamayı keşfet

BULGULAR:
---------
Hata #1: Sıfırlama linki süresi dolmuyor
  Önem: Yüksek
  Adımlar: Bir haftalık linki kullan
  Beklenen: "Link süresi doldu"
  Gerçek: Şifre başarıyla değiştirildi

Hata #2: Zayıf şifre uyarısı yok
  Önem: Orta
  Adımlar: "123456" olarak sıfırla
  Beklenen: Zayıf şifre uyarısı
  Gerçek: Şifre uyarı olmadan kabul edildi

SORULAR:
--------
- Sıfırlama istekleri için limit var mı?
- Email mevcut değilse ne olur?

KAPSAMADIK:
-----------
- Birden çok sıfırlama isteği
- Mobil responsive test

Keşifsel Test Sezgileri

SFDPOT Sezgisi:

HarfAlanSorular
SYapı (Structure)Tüm parçalar neler?
FFonksiyon (Function)Ne yapıyor?
DVeri (Data)Hangi verileri kullanıyor?
PPlatform (Platform)Nerede çalışıyor?
OOperasyonlar (Operations)Kim nasıl kullanıyor?
TZaman (Time)Zamanlama sorunları neler?

❓ Mülakat Soruları ve Cevapları

Soru 1: “Eşdeğerlik bölümleme nedir?”

İyi Cevap:

“Eşdeğerlik bölümleme, giriş verilerini aynı şekilde davranması gereken gruplara ayırdığımız bir test tasarım tekniğidir. Her olası değeri test etmek yerine, her sınıftan bir değer test ederiz. Örneğin, 18-65 yaş gereksinimiyle yaş alanı test ederken: ‘çok genç’ (0-17), ‘geçerli’ (18-65) ve ‘çok yaşlı’ (66+) için sınıflar oluştururuz. Her yaşı test etmek yerine sadece 3 test gerekir.”

Soru 2: “BVA EP’den nasıl farklı?”

İyi Cevap:

“EP giriş verilerini sınıflara ayırıp her birinden bir değer test ederken, BVA özellikle sınıflar arasındaki sınırlara odaklanır. Hatalar genellikle sınırlarda saklanır - tam minimum, maksimum ve hemen öncesi/sonrası değerler. 18-65 yaş gereksinimi için, BVA şunları test eder: 17, 18, 19, 64, 65, 66 - tam sınır değerleri.”

Soru 3: “Karar tablosunu ne zaman kullanırsınız?”

İyi Cevap:

“Karar tablosu en iyi şekilde birden çok koşulun farklı sonuçlar oluşturduğu durumlarda kullanılır. Örneğin, maliyetin sipariş tutarına VE üyelik tipine bağlı olduğu bir kargo hesaplayıcı. Tüm koşul kombinasyonları ve beklenen sonuçlarla bir tablo oluşturur. Bu hiçbir kombinasyonu kaçırmamasını sağlar ve test senaryolarını çok net yapar.”

Soru 4: “Durum geçiş testi örneği verin”

İyi Cevap:

“Harika bir örnek ATM PIN doğrulamasıdır. Durumlar: 3 denemeyle ‘Aktif’, sonra 2 deneme, sonra 1 deneme, nihayetinde ‘Kilitli’. Olaylar ‘doğru PIN’ veya ‘yanlış PIN’. Test ederdim: ilk denemede doğru, bir yanlıştan sonra doğru, iki yanlıştan sonra doğru, ve kilitlemeye yol açan üç yanlış PIN. Ayrıca kart değiştirmeden Kilitli’den Aktif’e geçemeyeceğini doğrulardım.”

Soru 5: “Black-box ve white-box test arasındaki fark nedir?”

İyi Cevap:

“Black-box test, iç kodu bilmeden sistemi test ettiğim anlamına gelir - gereksinimlere dayalı girişlere ve çıkışlara odaklanırım. Teknikler EP, BVA, karar tablolarını içerir. White-box test, kodu görüp kod yapısına dayalı testler tasarladığım anlamına gelir - tüm dalları, ifadeleri, yolları test ederim. QA olarak çoğunlukla black-box teknikleri kullanırım, ama ikisini de anlamak geliştiricilerle iletişim kurmamı sağlar.”

Soru 6: “Hangi tekniği kullanacağınıza nasıl karar veriyorsunuz?”

İyi Cevap:

“Test edilmekte olan özelliğe göre seçerim:

  • Basit giriş alanları → EP + BVA
  • Karmaşık iş kuralları → Karar Tabloları
  • İş akışları/süreçler → Durum Geçişleri
  • Çok konfigürasyon seçeneği → Çiftli
  • Öğrendiğim yeni özellikler → Keşifsel

Sık sık birden çok tekniği birleştiririm. Giriş formu için geçerli/geçersiz girişler için EP, şifre uzunluk sınırları için BVA, özel karakterler ve SQL injection için hata tahmin kullanırdım.”


📝 Pratik Alıştırmalar

Alıştırma 1: Kayıt Formu

Gereksinimler:

  • Kullanıcı adı: 3-20 karakter, sadece harfler ve rakamlar
  • Şifre: 8-16 karakter, en az bir rakam içermeli
  • Yaş: 13-120 yıl
  • Email: geçerli email formatı

Göreviniz:

  1. Her alan için eşdeğerlik sınıfları oluşturun
  2. Sınır değerlerini belirleyin
  3. En az 10 test senaryosu yazın
Çözümü görmek için tıklayın

Kullanıcı Adı Sınıfları:

  • Geçersiz: < 3 karakter
  • Geçerli: 3-20 karakter, alfanümerik
  • Geçersiz: > 20 karakter
  • Geçersiz: özel karakter içerir

Sınır Değerleri:

  • 2 karakter (geçersiz)
  • 3 karakter (geçerli minimum)
  • 20 karakter (geçerli maksimum)
  • 21 karakter (geçersiz)

Örnek Test Senaryoları:

  1. Kullanıcı adı “ab” (2 karakter) → Hata
  2. Kullanıcı adı “abc” (3 karakter) → Geçerli
  3. Kullanıcı adı “user123” (7 karakter) → Geçerli
  4. 20 karakterli kullanıcı adı → Geçerli
  5. 21 karakterli kullanıcı adı → Hata
  6. Kullanıcı adı “user@name” → Hata (özel karakter)
  7. Şifre “1234567” (7 karakter) → Hata
  8. Şifre “12345678” (8 karakter) → Geçerli
  9. Şifre “abcdefgh” (rakam yok) → Hata
  10. Yaş = 12 → Hata
  11. Yaş = 13 → Geçerli
  12. Yaş = 120 → Geçerli
  13. Yaş = 121 → Hata

Alıştırma 2: İndirim Sistemi

İş Kuralları:

  • Siparişler > $200 VE sadık müşteri → %20 indirim
  • Siparişler > $200 VE üye değil → %10 indirim
  • Siparişler $100-200 VE sadık müşteri → %10 indirim
  • Siparişler $100-200 VE üye değil → %5 indirim
  • Siparişler < $100 → İndirim yok

Göreviniz:

  1. Karar tablosu oluşturun
  2. Her kural için test senaryoları yazın
Çözümü görmek için tıklayın

Karar Tablosu:

KoşulK1K2K3K4K5
Sipariş > $200EEHHH
Sipariş $100-200HHEEH
Sipariş < $100HHHHE
Sadık müşteriEHEH-
İndirim%20%10%10%5%0

Test Senaryoları:

  1. Sipariş $250, Sadık → %20 = $200
  2. Sipariş $250, Normal → %10 = $225
  3. Sipariş $150, Sadık → %10 = $135
  4. Sipariş $150, Normal → %5 = $142.50
  5. Sipariş $50, herhangi → $50 (indirim yok)

Alıştırma 3: Video Streaming Durumları

Gereksinimler: Video oynatıcının durumları: Durduruldu, Oynatılıyor, Duraklatıldı, Tamponlanıyor

Eylemler:

  • Oynat, Duraklat, Durdur, Ara

Göreviniz:

  1. Durum geçiş diyagramı çizin
  2. Geçiş tablosu oluşturun
  3. Geçerli ve geçersiz geçişler için test senaryoları yazın
Çözümü görmek için tıklayın

Geçiş Diyagramı:

[Durduruldu] --Oynat--> [Oynatılıyor]
[Oynatılıyor] --Duraklat--> [Duraklatıldı]
[Oynatılıyor] --Durdur--> [Durduruldu]
[Oynatılıyor] --TamponGerekli--> [Tamponlanıyor]
[Duraklatıldı] --Oynat--> [Oynatılıyor]
[Duraklatıldı] --Durdur--> [Durduruldu]
[Tamponlanıyor] --TamponTamamlandı--> [Oynatılıyor]

Test Senaryoları:

  1. Durduruldu → Oynat → Oynatılıyor ✅
  2. Oynatılıyor → Duraklat → Duraklatıldı ✅
  3. Oynatılıyor → Durdur → Durduruldu ✅
  4. Duraklatıldı → Oynat → Oynatılıyor ✅
  5. Durduruldu → Duraklat → Hata ❌ (geçersiz geçiş)
  6. Tamponlanıyor → Duraklat → Hata ❌ (önce tamponlamalı)

🎯 Ana Çıkarımlar

Teknik Hızlı Referans

TeknikNe Zaman KullanılırAna Fayda
Eşdeğerlik BölümlemeAralıklı giriş alanlarıTest senaryolarını azaltır
Sınır Değer AnaliziLimit testiSınır hatalarını yakalar
Karar TablosuKarmaşık iş kurallarıTüm kombinasyonları kapsar
Durum Geçişleriİş akışları, süreçlerDurum değişikliklerini test eder
ÇiftliÇok parametreVerimli kapsam
Hata TahminHerhangi bir testUç durumları yakalar
Kullanım SenaryosuKullanıcı yollarıGerçek senaryolar
KeşifselYeni özelliklerBilinmeyeni keşfeder

Mülakat İpuçları

  1. Her zaman örnek verin - Sadece tanımlamayın, gösterin
  2. Düşünce sürecinizi açıklayın - Yaklaşımınızı anlatın
  3. Teknikleri birleştirin - Ne zaman hangisini kullanacağınızı bilin
  4. Pratik olun - Gerçek senaryolarla bağlantı kurun
  5. Sorular sorun - Testleri tasarlamadan önce gereksinimleri netleştirin

Pratik için Kaynaklar

  • Software Testing Help - Ücretsiz eğitimler
  • Ministry of Testing - Topluluk ve kaynaklar
  • ISTQB Foundation - Sertifikasyon hazırlığı
  • Test Automation University - Ücretsiz kurslar

📍 Sonraki Adımlar

Test tasarım tekniklerini artık anladığınıza göre, QA yolculuğunuza devam edin:

  • Makale 1: QA Mülakat Hazırlık Temelleri
  • Makale 2: İleri Konular ve Pratik
  • Makale 3: QA Mühendisleri için DSA
  • Makale 4: Test Otomasyon Frameworkleri
  • Makale 5: QA Mühendisleri için CI/CD

Bu makale yardımcı oldu mu? 👏

Sorularınız mı var? Yorumlarda yazın!


Yazar: AAnnayev — Senior SDET

Etiketler: #QA #Testing #TestDesign #Interview #ManualTesting #Techniques