1. Öğrenci Gözüyle Teşhis
-
“Rollback”, “Timeout” ve “3D Secure” Jargon Şoku: Sıfırdan başlayan biri için Rollback (geri alma), Timeout (zaman aşımı) ve 3D Secure kavramları açıklanmadan verildiğinde korkutucu gelebilir. “Rollback, bir market kasasında ikinci üründen vazgeçince ilk okutulan ürünün fişten derhal silinmesi ve paranın cepten hiç çıkmaması gibidir” şeklinde bir analojiyle somutlaştırılmalıdır.
-
Test Seviyelerinin Belirsizliği: Tablodaki
?işaretlerini doldururken öğrenci “Bu Sistem Testi mi, Entegrasyon Testi mi?” ikilemine düşecektir. Çünkü iki farklı banka/ödeme altyapısı (harici servis) birbirine bağlanmaktadır. Burada harici sistem entegrasyonu (Integration Testing) ile uçtan uca kullanıcı deneyimi (System Testing) arasındaki çizgi berraklaştırılmalıdır. -
Senaryo Yazım Formatı Boşluğu: Görevde “adım adım anlatan bir test senaryosu adımı yaz” denmiş; ancak yeni başlayan bir öğrenciye önkoşul, test adımı ve beklenen sonuç (Preconditions, Steps, Expected Result) formatı hatırlatılmazsa düz metin bir paragraf yazıp geçer. Format iskeleti baştan verilmelidir.
2. Standartlar & Teknik Doğrulama
-
ISTQB CTFL v4.0 & ISO/IEC/IEEE 29119-3 (Test Dokümantasyonu):
-
Test Senaryosu (Test Case) Anatomisi: Bir test senaryosu; benzersiz tanımlayıcı (ID), izlenebilirlik referansı (Traceability), önkoşullar (Preconditions), test girdileri/adımları (Execution Steps) ve beklenen sonuçtan (Expected Result) oluşur. Bu yapı korunmalıdır.
-
Test Seviyeleri Ayrımı:
-
REQ-SPLIT-02(Rollback / İade mekanizması): Birinci kart ile ikinci kartın banka sanal POS servisleri arasındaki atomik işlem (transaction) iletişimini test ettiği için birincil olarak Entegrasyon Testi (Integration Testing), tüm akış arayüzden işletildiğinde ise Sistem Testi (System Testing) kapsamındadır. Standart yaklaşımda uçtan uca iş akışı senaryosu olarak Sistem Testi veya Sistem Entegrasyon Testi (SIT) olarak etiketlenmesi en doğrudur. -
REQ-SPLIT-03(60 saniyelik zaman aşımı): Bu bir servis yanıt süresi ve oturum yönetimi kuralıdır; hem Entegrasyon Testi hem de Fonksiyonel Olmayan / Güvenilirlik Sistem Testi kapsamına girer.
-
-
-
Giriş ve Çıkış Kriterleri (Entry & Exit Criteria):
-
ISTQB standardına göre Giriş Kriterleri (ör. test ortamının hazır olması, Duman Testi’nin geçmesi), Çıkış Kriterleri ise testin ne zaman durdurulacağını belirleyen eşiklerdir (ör. açık Blocker/Critical hata kalmaması, belirlenen test kapsamı oranına ulaşılması).
-
3. Revize Edilmiş Metin
BÖLÜM 2: SDLC ve STLC Dansı — V-Model Üzerinden Kalite Yolculuğu
2.5. Bölüm Sonu Uygulama Görevi (Hands-on Challenge)
Bölüm 2 boyunca bir yazılımın mutfağındaki iki dev çarkı inceledin: İnşa eden SDLC ve o inşanın her adımını provayla garantiye alan STLC. V-Model üzerinde testin kodlamadan çok önce, ta analiz masasında başladığını gördün.
Şimdi bu bilgileri sahaya dökme vakti. Önünde gerçek bir finansal teknoloji krizini engelleyecek çok kritik bir görev var.
Görev Senaryosu: “Parçalı Kredi Kartı ile Ödeme”
Çalıştığın e-ticaret platformunda kullanıcıların sepet tutarını iki farklı kredi kartına bölerek ödemesini sağlayan “Parçalı Ödeme” özelliği geliştiriliyor (Örneğin: 10.000 TL’lik bir televizyonun 6.000 TL’si A kartından, 4.000 TL’si B kartından çekilecek).
Aşağıdaki Gereksinim İzlenebilirlik Matrisini (RTM) incele. Eksik bırakılan alanları tamamlaman, senaryoları kurgulaman ve projenin ilk gününde sorulması gereken kritik soruları üretmen bekleniyor.
+----------------------------------------------------------------------------------------------------+
| GEREKSİNİM İZLENEBİLİRLİK MATRİSİ (RTM) |
+------------------+-----------------------------------------------+------------------+--------------+
| Gereksinim Kodu | Gereksinim Açıklaması | Test Kodu | Test Seviyesi|
+------------------+-----------------------------------------------+------------------+--------------+
| REQ-SPLIT-01 | Toplam sepet tutarı iki karta paylaştırıl- | TC-SPLIT-001 | Sistem Testi |
| | dığında, parçaların toplamı tam olarak sepet | | |
| | tutarına eşit olmalıdır. | | |
+------------------+-----------------------------------------------+------------------+--------------+
| REQ-SPLIT-02 | Birinci karttan çekim yapılıp ikinci kart | [ ? ] | [ ? ] |
| | yetersiz bakiye nedeniyle reddedilirse, ilk | | |
| | karttan çekilen tutar derhal iade edilmelidir.| | |
+------------------+-----------------------------------------------+------------------+--------------+
| REQ-SPLIT-03 | İki kart arasındaki onay süresi zaman aşımı | [ ? ] | [ ? ] |
| | (timeout) maksimum 60 saniyedir. | | |
+------------------+-----------------------------------------------+------------------+--------------+
Senden İstenenler
-
RTM Tablosunu Tamamla: Soru işaretli alanlara uygun Test Senaryo Kodlarını ve ilgili Test Seviyelerini (Birim, Entegrasyon, Sistem, Kabul) yerleştir.
-
Kritik Hata Senaryosunu Yaz (REQ-SPLIT-02): İlk karttan para çekilip ikinci kart reddedildiğinde sistemin para tutarlılığını nasıl koruyacağını standart bir test senaryosu formatında kaleme al.
-
Shift-Left Soruları Üret (Faz 1 – Gereksinim Analizi): Henüz tek satır kod yazılmadan analiz toplantısında Ürün Yöneticisine yönelteceğin en az 2 kritik teknik senaryo sorusu hazırla.
-
Kalite Kapılarını Belirle: Bu özelliğin test koşumuna başlayabilmesi için 1 Giriş Kriteri (Entry Criteria) ve canlıya güvenle çıkabilmesi için 1 Çıkış Kriteri (Exit Criteria) tanımla.
🔍 Görev Çözüm Kılavuzu ve Referans Çizelgesi
Kendi analizini yaptıktan sonra aşağıdaki profesyonel çözüm standardı ile çalışmanı karşılaştır:
1. Tamamlanmış RTM Tablosu
| Gereksinim Kodu | Gereksinim Açıklaması | Bağlı Test Senaryo Kodu | Test Seviyesi |
| REQ-SPLIT-01 | Parçaların toplamı sepet tutarına eşit olmalıdır. | TC-SPLIT-001 | Sistem Testi |
| REQ-SPLIT-02 | 2. kart reddedilirse 1. kart tutarı derhal iade (rollback) edilmelidir. | TC-SPLIT-002 | Sistem Entegrasyon Testi (Ödeme servisleri ve banka entegrasyonu) |
| REQ-SPLIT-03 | Onay süresi zaman aşımı (timeout) maksimum 60 saniyedir. | TC-SPLIT-003 | Sistem Testi (Zaman aşımı & Oturum yönetimi) |
2. Standart Test Senaryosu Örneği (TC-SPLIT-002)
-
Test Senaryo Kodu: TC-SPLIT-002
-
İlişkili Gereksinim: REQ-SPLIT-02
-
Test Başlığı: İkinci kartın yetersiz bakiye alması durumunda ilk kart çekiminin otomatik iadesi (Rollback)
-
Önkoşullar (Preconditions):
-
Kullanıcının sepetinde 1.000 TL tutarında ürün bulunmalıdır.
-
Kart 1: Limiti müsait, geçerli bir kredi kartı (Çekilecek tutar: 600 TL).
-
Kart 2: Limiti 0 TL olan, yetersiz bakiyeli kredi kartı (Çekilecek tutar: 400 TL).
-
-
Test Adımları (Execution Steps):
-
Ödeme ekranında “Parçalı Ödeme” seçeneğini işaretle.
-
Kart 1 bilgilerini gir ve tutarı 600 TL olarak belirle.
-
Kart 2 bilgilerini gir ve tutarı 400 TL olarak belirle.
-
“Siparişi Onayla” butonuna tıkla.
-
Kart 1 için SMS/3D Secure onayını başarıyla tamamla.
-
Kart 2 için bankadan dönen “Yetersiz Bakiye” yanıtını bekle.
-
-
Beklenen Sonuç (Expected Result):
-
Ekranda kullanıcıya anlaşılır bir hata mesajı gösterilmelidir: “İkinci kartınızda yetersiz bakiye nedeniyle işlem tamamlanamadı.”
-
Kart 1’den çekilen 600 TL anında iptal/iade (Rollback) edilmelidir. Kullanıcının ekstresine borç yansımamalıdır.
-
Sipariş durumu veritabanında “İptal Edildi / Başarısız” olarak işaretlenmeli, sipariş fişi oluşturulmamalıdır.
-
3. Shift-Left Soruları (Gereksinim Analiz Masasında Sorulacaklar)
-
Soru 1 (Ağ / Kullanıcı Kopması): “Kullanıcı 1. kartın SMS şifresini onayladıktan sonra telefonunun şarjı biterse veya interneti kesilirse sistem 2. karta geçiş yapamadan askıda mı kalacak? 1. kartın parası havuzda ne kadar süre rezerve tutulup otomatik iade edilecek?”
-
Soru 2 (Kısmi İade / İptal Mantığı): “Müşteri 3 gün sonra siparişteki iki üründen sadece birini iade etmek isterse, iade tutarı hangi karta geri yatırılacak? İlk çekilen karta mı, eşit olarak ikisine mi?”
4. Kalite Kapıları (Entry & Exit Criteria)
-
Giriş Kriteri (Entry Criteria – Teste Başlama Şartı):
Geliştirme ekibinin parçalı ödeme paketini test ortamına yüklemiş olması ve tek kartla normal ödemenin sorunsuz çalıştığını kanıtlayan Duman Testi’nin (Smoke Test) %100 başarılı olması.
-
Çıkış Kriteri (Exit Criteria – Canlıya Çıkış Şartı):
Parçalı ödeme test senaryolarının tamamının koşulmuş olması; para kaybına veya askıda işleme yol açabilecek hiçbir Kritik/Bloke Edici (Blocker/Critical) kusurun açık bulunmaması.
4. “Bir de Şöyle Düşün” (Kutu İçeriği)
💡 Bir de Şöyle Düşün: Bakkaldaki Bozuk Para ve Rollback
Mahalle bakkalından 100 TL’lik erzak aldığını düşün:
Cebinden 50 TL nakit çıkarıp tezgâha koydun (1. Kart çekimi başarılı).
Kalan 50 TL için cüzdanına baktın ama başka paran olmadığını fark ettin (2. Kart yetersiz bakiye).
Bakkalın “Kalan 50 liran yokmuş, ben tezgâhtaki ilk 50 lirayı aldım, erzakları da vermiyorum” demesi ne kadar saçmaysa; yazılımın da 2. kart reddedildiğinde 1. karttan çektiği parayı içeride tutması o kadar büyük bir skandaldır.
İşlem bütünüyle tamamlanamıyorsa, bakkal tezgâhtaki 50 lirayı derhal sana geri uzatmalıdır. Yazılım mimarisinde buna Rollback (İşlemi Başa Sarma) denir. Ya hepsi gerçekleşir ya da hiçbiri gerçekleşmez.
5. Mini Alıştırma
Mülakat Sorusu: Bir bankacılık mülakatında sana şu soru yöneltiliyor:
“Test ortamında Duman Testi (Smoke Test) başarısız olduysa ne yaparsın?”
-
A) Kalan senaryoları test etmeye devam ederim, belki diğer modüller çalışıyordur.
-
B) Test koşumunu derhal durdururum; çünkü Giriş Kriteri (Entry Criteria) sağlanmamıştır. Sürümü geliştiriciye iade eder, ortam ayağa kalkana kadar fonksiyonel test koşarak vakit kaybetmem.
Doğru Yanıt: B Seçeneği.
Duman Testi, sistemin en temel can damarlarının (giriş yapma, ana sayfa, temel veri akışı) ayakta olduğunu doğrular. Duman testi çökmüş bir ortamda detaylı test koşmak; yüzlerce sahte hata açılmasına, ekiplerin birbirine girmesine ve saatlerin çöpe gitmesine neden olur. Giriş kriteri sağlanmadan test kapısı açılmaz.