Yazılım Test Mühendisliği Dersleri: Bölüm 6
Test Bitirimi ve Ürün Teslimi: Regresyon Döngüleri, UAT, Code Freeze ve Teslim Süreci
Bir yazılım sürümünün üretime çıkması, tek bir “test tamamlandı” onayından çok daha fazlasını gerektirir. Bu rehberde regresyon test döngülerini, kullanıcı kabul testini (UAT), kod dondurma (Code Freeze) uygulamasını ve bir sürümün güvenle nasıl teslim edildiğini adım adım inceliyoruz.
Bu Sayfada
i Test Bitirimi ve Ürün Teslimine Giriş
Bir sprint veya sürüm döngüsünün sonunda “yazılım hazır mı?” sorusuna güvenle cevap verebilmek için belirli, tekrarlanabilir bir dizi adımdan geçilir. Buna test bitirimi (test closure) ve ürün teslim süreci (release process) denir. Amaç, geliştirme sırasında ortaya çıkabilecek regresyonları yakalamak, gerçek kullanıcı beklentilerini doğrulamak ve değişikliklerin kontrollü bir şekilde durdurulup istikrarlı bir sürümün paketlenmesini sağlamaktır.
Genel Akış: Kod Tamamlanmasından Teslime
1 Regresyon Test Döngüleri
Regresyon testi, yazılıma yapılan yeni bir değişikliğin (özellik, hata düzeltmesi veya konfigürasyon güncellemesi) daha önce doğru çalışan mevcut işlevleri bozmadığını doğrulamak amacıyla yapılan testtir. Sürüm yaklaştıkça regresyon testleri genellikle birkaç döngü (cycle) halinde tekrarlanır.
🔁 Full Regression
Tüm test paketinin baştan sona koşulmasıdır. En kapsamlı ama en zaman alan yöntemdir.
💨 Smoke Test
Yeni bir build’in temel işlevlerinin çalışıp çalışmadığını hızlıca kontrol eden yüzeysel testtir (“build test edilmeye değer mi?”).
✅ Sanity Test
Küçük bir değişiklik veya hata düzeltmesi sonrası, ilgili işlevin mantıklı çalıştığını doğrulayan dar kapsamlı testtir.
🎯 Selective Regression
Sadece değişiklikten etkilenen modülleri ve onlarla ilişkili alanları hedefleyen, risk bazlı seçilmiş test alt kümesidir.
Regresyon Döngüleri Nasıl İlerler?
| Döngü | Kapsam | Amaç |
|---|---|---|
| Regresyon Döngüsü 1 | Değişen modüller + kritik akışlar | Büyük kırılmaları erken yakalamak |
| Regresyon Döngüsü 2 | Döngü 1’de bulunan hataların düzeltmeleri + genişletilmiş kapsam | Düzeltmelerin yeni sorun yaratmadığını doğrulamak |
| Final Regresyon | Tam kapsam (Full Regression) | Sürümün genel istikrarını son kez onaylamak |
2 UAT — Kullanıcı Kabul Testi
UAT (User Acceptance Testing / Kullanıcı Kabul Testi), yazılımın teknik olarak doğru çalışmasının ötesinde, gerçek iş ihtiyaçlarını ve kullanıcı beklentilerini karşılayıp karşılamadığını doğrulayan son test aşamasıdır. Genellikle test mühendisleri değil, iş birimi, ürün sahibi veya son kullanıcı temsilcileri tarafından yürütülür.
Alpha Testing
- Geliştirme ortamında, şirket içinde yapılır
- İç kullanıcılar / QA / iş birimi tarafından test edilir
- Amaç: Yayına çıkmadan önce iç doğrulama
- Gerçek kullanıcıya kapalıdır
Beta Testing
- Üretime yakın ortamda, sınırlı gerçek kullanıcı grubuyla yapılır
- Gerçek son kullanıcılar tarafından test edilir
- Amaç: Gerçek dünya koşullarında geri bildirim toplamak
- Genellikle sınırlı bir kitleye açık yayın öncesi son adımdır
Tipik UAT Süreci
- UAT senaryolarının hazırlanması: Kabul kriterlerine dayalı, iş odaklı test senaryoları yazılır.
- Test ortamının hazırlanması: Üretime yakın veriler ve konfigürasyonla bir UAT ortamı kurulur.
- Senaryoların yürütülmesi: İş birimi/kullanıcılar kendi iş akışlarını gerçek verilerle dener.
- Geri bildirim ve hata kaydı: Bulunan sorunlar önceliklendirilerek geliştirme ekibine iletilir.
- Resmi kabul (Sign-off): İş birimi, yazılımı yazılı olarak onaylar.
3 Code Freeze (Kod Dondurma)
Code Freeze, bir sürüm tarihine yaklaşırken kod tabanına yapılacak değişikliklerin kısıtlandığı veya tamamen durdurulduğu dönemdir. Amaç, test edilen yazılımın sürüm anına kadar “hareketli bir hedef” olmaktan çıkmasını, yani test sonuçlarının geçerliliğini korumasını sağlamaktır.
Soft Freeze (Yumuşak Dondurma)
- Yalnızca kritik/yüksek öncelikli hata düzeltmeleri kabul edilir
- Yeni özellik geliştirmesi durur ama küçük iyileştirmelere istisnai olarak izin verilebilir
- Genellikle regresyon test döngüsünün başlangıcında uygulanır
Hard Freeze (Sert Dondurma)
- Kod tabanına hiçbir değişiklik kabul edilmez
- Sadece yayın engelleyici (release-blocker), kritik güvenlik hataları için istisna tanınabilir
- Genellikle final regresyon ve UAT öncesinde, sürüme çok yakın devreye alınır
4 Teslim Süreci ve Go / No-Go Kararı
Regresyon testleri ve UAT tamamlandıktan sonra, sürümün üretime alınıp alınmayacağına karar vermek için bir Go/No-Go toplantısı düzenlenir. Bu toplantıya test, geliştirme, ürün ve operasyon (DevOps) temsilcileri katılır.
Tipik Çıkış Kriterleri (Exit Criteria)
- ✓ Planlanan tüm test senaryoları yürütüldü ve sonuçlar raporlandı
- ✓ Açık kritik (critical) veya engelleyici (blocker) hata kalmadı
- ✓ Final regresyon testi başarıyla tamamlandı
- ✓ UAT, iş birimi tarafından resmi olarak onaylandı (sign-off)
- ✓ Performans ve güvenlik testleri kabul edilebilir sonuç verdi
- ✓ Geri alma (rollback) planı hazır ve test edildi
GO
Tüm çıkış kriterleri karşılandı, riskler kabul edilebilir düzeyde. Sürüm planlanan tarihte üretime alınır.
NO-GO
Kritik bir sorun veya karşılanmamış bir kriter var. Sürüm ertelenir veya kapsamı daraltılır (bazı özellikler sonraki sürüme bırakılır).
Teslim Sonrası: Release ve İzleme
Go kararı verildikten sonra süreç bitmez. Yayın sonrası aşama da test bitiriminin bir parçasıdır:
- Deployment: Sürüm, üretim ortamına planlı bir pencere içinde alınır (genellikle düşük trafik saatlerinde).
- Post-release smoke test: Üretimde temel işlevlerin çalıştığı hızlıca doğrulanır.
- Hipercare / Yakın izleme: İlk 24-72 saat, hata oranları ve sistem metrikleri yakından izlenir.
- Test Kapanış Raporu (Test Closure Report): Test kapsamı, bulunan/çözülen hata sayısı, bilinen açık sorunlar ve öğrenilen dersler belgelenir.
✓ Sonuç ve Öneriler
Test bitirimi ve ürün teslimi, tek bir onay adımı değil; birbirini besleyen dört aşamanın uyumlu bir bütünüdür: Regresyon testleri teknik istikrarı, UAT iş değerinin doğruluğunu, Code Freeze test sonuçlarının güvenilirliğini ve Go/No-Go kararı ise nesnel, kriterlere dayalı bir yayın kararını garanti eder.
Bu disiplinlerden herhangi biri atlanırsa — örneğin freeze uygulanmadan test edilirse ya da UAT’siz doğrudan yayına çıkılırsa — risk üretim ortamına, dolayısıyla doğrudan son kullanıcıya taşınmış olur.
