6.3. Adım Adım Metodoloji: Seans Bazlı Test Yönetimi (SBTM) ve Hata Tahmini

Keşifçi testin “başıboş bir kurcalama” değil, son derece disiplinli bir mühendislik faaliyeti olduğunu görmüştük. Peki saatlerce rastgele butonlara basıp kaybolmayı nasıl engelleriz? Yöneticimize “Bugün ne test ettin?” sorusunun cevabını nasıl belgeleriz?

İşte bu sorunun çözümü, test otoritelerinin geliştirdiği Seans Bazlı Test Yönetimi (Session-Based Test Management – SBTM) disiplinidir.

SBTM, keşifçi testi kronometreli seanslara ve resmi görev belgelerine bağlayarak ölçülebilir, takip edilebilir ve kurumsal bir çerçeveye oturtur.

6.3.1. Seans Bazlı Test Yönetiminin (SBTM) 4 Temel Adımı

SBTM süreci birbirini izleyen 4 aşamadan oluşur:

SBTM Aşaması Süre / Zaman Sınırı Yapılan Ana Faaliyet Çıktı / Resmi Doküman
1. Görev Belgesi (Charter) Seans Öncesi (5-10 dk) İncelenecek ekran, hedef risk ve sınırların (çizgilerin) netleşmesi Test Görev Belgesi (Charter)
2. Odaklanmış Seans (Time-Box) 60 – 90 Dakika Dış dünyadan soyutlanarak keşif yapma, saldırı senaryolarını işletme Ham Keşif Notları, Ekran Logları
3. Seans Raporu (Notes) Seans Esnasında Denenen girdiler, şüpheli takılmalar ve bulunan açıkların kaydı Seans Kayıt Formu (Session Sheet)
4. Değerlendirme (Debriefing) Seans Sonrası (10-15 dk) Test Lideri ile masaya oturup bulguları ve yeni riskleri tartışma Jira Hata Kartları, Yeni Regresyon Senaryoları

1. Görev Belgesi (Test Charter) Nedir?

Bir dedektife verilen resmi arama izni gibidir. Nereye bakacağını söyler ama her çekmeceyi hangi sırayla açacağına karışmaz.

İyi bir Charter şu 3 soruya net yanıt verir:

  • Neyi Keşfedeceksin? (Sistem/Modül)

  • Hangi Araç ve Taktiklerle? (Saldırı yöntemleri)

  • Hangi Riski Avlayacaksın? (Hedeflenen kusur)

📋 Gerçek Bir Test Charter Örneği:

Charter Kodu: CH-CART-04

Hedef Modül: Sepet ve Kupon Kodu Alanı

Görev: Sepet tutarı güncellenirken veya kupon uygulanırken sistemin yarış durumlarını (Race Condition) ve sınır aşım hatalarını keşfet.

Süre: 60 Dakika (Time-Box)

Kapsam Dışı: Kredi kartı 3D Secure onay ekranları (bu seansa dahil edilmeyecek).

2. Odaklanmış Seans (Time-Box Kuralı)

Seans başladığında kronometre basar. Bu 60-90 dakika boyunca test uzmanı:

  • E-postalarını kapatır, Slack bildirimlerini sessize alır.

  • Sadece ve sadece Charter’da yazan hedefe odaklanır.

  • Altın Kural: Bir hata bulduğunda hemen seansı bırakıp dakikalarca Jira’da uzun bilet yazmakla vakit kaybetmez! Hatayı hızlıca not defterine/seans formuna kanıtıyla iliştirir ve keşfe devam eder.

3. Değerlendirme (Debriefing) Masası

Seans bittiğinde test uzmanı ile Test Lideri 10 dakika yan yana gelir. Test lideri şu 3 soruyu sorar:

  1. Charter’da belirlediğimiz hedefe ulaştın mı?

  2. Hangi sıra dışı sorunları ve riskleri yakaladın?

  3. Sistemde daha derinlemesine incelenmesi gereken yeni bir karanlık nokta fark ettin mi?

Bu toplantı sonunda bulunan açıklar Jira’da resmi biletlere dönüştürülür.

6.3.2. Hata Tahmini (Error Guessing) Taktikleri

Keşif seansında testçinin elindeki en büyük cephane Hata Tahmini (Error Guessing) tekniğidir. Bu teknik; geçmiş tecrübelere, yazılımcıların sık yaptığı gafletlere ve sistemlerin zayıf karınlarına odaklanan zihinsel tuzak kurma sanatıdır.

Sektörde en çok açık yakalayan iki temel hata tahmin cephanesini öğrenelim:

1. Sıra Dışı Veri Girişi Taktikleri (Data Attacks)

  • Görünmez Karakterler: Metin kutusuna harf yazmak yerine yalnızca Space (Boşluk) tuşuna basıp kaydetmeyi denemek (Sistem boşluğu dolu metin sanıyor mu?).

  • Hiçlik ve Tanımsızlık (Null / Undefined): Arama kutusuna veya formlara doğrudan null, nil, undefined, NaN yazıp aratmak. (Yazılımın veritabanı motoru bu kelimeleri gerçek veri mi sanıyor, yoksa sistem çöküyor mu?).

  • Emoji ve Özel Karakter Bombardımanı: İsim alanına veya adres satırına 🚀 🔥 💥 gibi emojiler veya <script> etiketleri yapıştırmak (Sistem karakter kodlamasını [UTF-8] doğru yönetiyor mu?).

  • Metin Alanı Taşmaları: 100 karakterlik kutuya internetten 5 sayfalık bir makale kopyalayıp yapıştırmak (Paste saldırısı).

2. Kullanıcı Davranışı Taktikleri (Behavioral Attacks)

  • Sabırsız Çift Tıklama (Double Click): “Ödemeyi Tamamla” veya “Siparişi Onayla” butonuna farenin sol tuşuyla art arda çılgınca 3-4 kez basmak (Sistem mükerrer para çekecek mi?).

  • Tarayıcının Geri/İleri Tuşunu Zorlamak: 3D Secure banka onay sayfasındayken tarayıcının Geri tuşuna basıp sepet sayfasına dönmek, sonra tekrar İleri demek.

  • Çoklu Sekme Çelişkisi: Aynı tarayıcıda iki ayrı sekme açmak. 1. Sekmede sepetten ürünü silmek, 2. Sekmede aynı anda “Öde” butonuna basmak.

4. “Bir de Şöyle Düşün” (Kutu İçeriği)

💡 Bir de Şöyle Düşün: Yangın Söndürme Tüpü ve Kronometre

Bir iş merkezinin yangın güvenliğini denetleyen bir müfettiş olduğunu hayal et:

  • Time-Box Olmadan (Disiplinsiz): Binaya girersin, saatlerce amaçsızca çay içip koridorlarda dolaşırsın. Akşam olduğunda neyi denetlediğini sen bile hatırlamazsın.

  • SBTM Yaklaşımı (Time-Box & Charter): Elinde görev belgesi vardır: “Önümüzdeki tam 45 dakika boyunca yalnızca 3. katın yangın tüplerinin basınç göstergelerini ve tahliye kapılarının kilitlerini denetleyeceğim.”

Telefonunu kapatır, 45 dakika boyunca o kata kilitlenirsin. Süre bitince elindeki net tutanakla başmühendisin masasına oturursun. Seans disiplini; dikkati dağıtmadan, az zamanda devasa kusurlar yakalatır.

5. Mini Alıştırma

Senaryo: Çalıştığın bankacılık uygulamasında “Kredi Kartı Başvuru Formu” modülü için 60 dakikalık bir Keşifçi Test seansı planlayacaksın.

Soru: Yukarıda öğrendiğin formatı kullanarak bu seans için tek bir test görev belgesi (Charter) taslağı oluştur (Hedef modül, test taktiği, odaklanılacak risk ve süre bileşenlerini içermelidir).

Örnek Test Görevi (Charter):

  • Charter Kodu: CH-LOAN-01

  • Hedef Modül: Bireysel Kredi Kartı Başvuru Ekranı (Gelir Bilgisi & İletişim Adımı).

  • Süre (Time-box): 60 Dakika.

  • Uygulanacak Taktik: Hata Tahmini (Sıra dışı veri girişi: Eksi aylık gelir girme, harf kutusuna emoji yapıştırma, adreste script etiketleri deneme).

  • Hedeflenen Risk: Sistemin mantıksız gelir beyanlarını ve geçersiz karakterleri doğrulayamayarak onay sürecine aktarması veya formun çökmesi (Crash).