Test Tasarım Teknikleri: QA Mülakatları İçin Kapsamlı Rehber
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

🎯 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
- Test Tasarımı Nedir?
- Eşdeğerlik Bölümleme
- Sınır Değer Analizi
- Karar Tablosu Testi
- Durum Geçiş Testi
- Çiftli Test
- Hata Tahmin
- Kullanım Senaryosu Testi
- Keşifsel Test
- Mülakat Soruları ve Cevapları
- 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ıf | Aralık | Beklenen Sonuç | Örnek |
|---|---|---|---|
| Geçersiz (çok genç) | 0-17 | Hata | 10 |
| Geçerli | 18-65 | Başarı | 30 |
| Geçersiz (çok yaşlı) | 66+ | Hata | 70 |
| Geçersiz (negatif) | < 0 | Hata | -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ıf | Açıklama | Örnek | Beklenen |
|---|---|---|---|
| Geçerli email | Doğru format | user@example.com | ✅ Geçerli |
| @ yok | @ sembolü yok | userexample.com | ❌ Geçersiz |
| Domain yok | Domain yok | user@ | ❌ Geçersiz |
| İsim yok | Kullanı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ğeri | Tip | Beklenen |
|---|---|---|
| 17 | Minimumun hemen altı | ❌ Geçersiz |
| 18 | Minimum (sınır) | ✅ Geçerli |
| 19 | Minimumun hemen üstü | ✅ Geçerli |
| 64 | Maksimumun hemen altı | ✅ Geçerli |
| 65 | Maksimum (sınır) | ✅ Geçerli |
| 66 | Maksimumun 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:
| Karakter | Değer | Beklenen |
|---|---|---|
| 7 | ”1234567” | ❌ Çok kısa |
| 8 | ”12345678” | ✅ Geçerli |
| 9 | ”123456789” | ✅ Geçerli |
| 19 | 19 karakter | ✅ Geçerli |
| 20 | 20 karakter | ✅ Geçerli |
| 21 | 21 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şul | Kural 1 | Kural 2 | Kural 3 | Kural 4 |
|---|---|---|---|---|
| Sipariş > $100 | Evet | Evet | Hayır | Hayır |
| Premium üye | Evet | Hayır | Evet | Hayı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şul | K1 | K2 | K3 | K4 | K5 |
|---|---|---|---|---|---|
| Giriş boş | H | H | H | E | H |
| Şifre boş | H | H | H | H | E |
| Giriş geçerli | E | E | H | - | - |
| Şifre geçerli | E | H | - | - | - |
| 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:
- 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 Durum | Olay | Sonraki Durum | Eylem |
|---|---|---|---|
| Sepet | Sipariş Ver | Ödeme Bekliyor | Sipariş Oluştur |
| Ödeme Bekliyor | Öde | Ödendi | Ödeme İşle |
| Ödeme Bekliyor | İptal | İptal Edildi | Sipariş İptal |
| Ödendi | Gönder | Gönderildi | Takip Güncelle |
| Gönderildi | Teslim Et | Teslim Edildi | Teslimat 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 | İS | Tarayıcı | Dil |
|---|---|---|---|
| 1 | Windows | Chrome | Türkçe |
| 2 | Windows | Firefox | İngilizce |
| 3 | Windows | Safari | Almanca |
| 4 | macOS | Chrome | İngilizce |
| 5 | macOS | Firefox | Almanca |
| 6 | macOS | Edge | Türkçe |
| 7 | Linux | Chrome | Almanca |
| 8 | Linux | Safari | Türkçe |
| 9 | Linux | Edge | İ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:
| Kategori | Test Değerleri |
|---|---|
| Boş | "", null, undefined |
| Boşluk | ” ”, “\t”, “\n” |
| Sayılar | 0, -1, MAX_INT, ondalıklar |
| Stringler | Çok uzun, özel karakterler, unicode |
| Tarihler | 29 Şubat, 31 Aralık, zaman dilimleri |
| Dosyalar | Boş, devasa, yanlış tip |
| Ağ | 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:
| Harf | Alan | Sorular |
|---|---|---|
| S | Yapı (Structure) | Tüm parçalar neler? |
| F | Fonksiyon (Function) | Ne yapıyor? |
| D | Veri (Data) | Hangi verileri kullanıyor? |
| P | Platform (Platform) | Nerede çalışıyor? |
| O | Operasyonlar (Operations) | Kim nasıl kullanıyor? |
| T | Zaman (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:
- Her alan için eşdeğerlik sınıfları oluşturun
- Sınır değerlerini belirleyin
- 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ı:
- Kullanıcı adı “ab” (2 karakter) → Hata
- Kullanıcı adı “abc” (3 karakter) → Geçerli
- Kullanıcı adı “user123” (7 karakter) → Geçerli
- 20 karakterli kullanıcı adı → Geçerli
- 21 karakterli kullanıcı adı → Hata
- Kullanıcı adı “user@name” → Hata (özel karakter)
- Şifre “1234567” (7 karakter) → Hata
- Şifre “12345678” (8 karakter) → Geçerli
- Şifre “abcdefgh” (rakam yok) → Hata
- Yaş = 12 → Hata
- Yaş = 13 → Geçerli
- Yaş = 120 → Geçerli
- 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:
- Karar tablosu oluşturun
- Her kural için test senaryoları yazın
Çözümü görmek için tıklayın
Karar Tablosu:
| Koşul | K1 | K2 | K3 | K4 | K5 |
|---|---|---|---|---|---|
| Sipariş > $200 | E | E | H | H | H |
| Sipariş $100-200 | H | H | E | E | H |
| Sipariş < $100 | H | H | H | H | E |
| Sadık müşteri | E | H | E | H | - |
| İndirim | %20 | %10 | %10 | %5 | %0 |
Test Senaryoları:
- Sipariş $250, Sadık → %20 = $200
- Sipariş $250, Normal → %10 = $225
- Sipariş $150, Sadık → %10 = $135
- Sipariş $150, Normal → %5 = $142.50
- 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:
- Durum geçiş diyagramı çizin
- Geçiş tablosu oluşturun
- 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ı:
- Durduruldu → Oynat → Oynatılıyor ✅
- Oynatılıyor → Duraklat → Duraklatıldı ✅
- Oynatılıyor → Durdur → Durduruldu ✅
- Duraklatıldı → Oynat → Oynatılıyor ✅
- Durduruldu → Duraklat → Hata ❌ (geçersiz geçiş)
- Tamponlanıyor → Duraklat → Hata ❌ (önce tamponlamalı)
🎯 Ana Çıkarımlar
Teknik Hızlı Referans
| Teknik | Ne Zaman Kullanılır | Ana Fayda |
|---|---|---|
| Eşdeğerlik Bölümleme | Aralıklı giriş alanları | Test senaryolarını azaltır |
| Sınır Değer Analizi | Limit testi | Sınır hatalarını yakalar |
| Karar Tablosu | Karmaşık iş kuralları | Tüm kombinasyonları kapsar |
| Durum Geçişleri | İş akışları, süreçler | Durum değişikliklerini test eder |
| Çiftli | Çok parametre | Verimli kapsam |
| Hata Tahmin | Herhangi bir test | Uç durumları yakalar |
| Kullanım Senaryosu | Kullanıcı yolları | Gerçek senaryolar |
| Keşifsel | Yeni özellikler | Bilinmeyeni keşfeder |
Mülakat İpuçları
- Her zaman örnek verin - Sadece tanımlamayın, gösterin
- Düşünce sürecinizi açıklayın - Yaklaşımınızı anlatın
- Teknikleri birleştirin - Ne zaman hangisini kullanacağınızı bilin
- Pratik olun - Gerçek senaryolarla bağlantı kurun
- 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