Yazılım Test Mühendisliği Dersleri

Yazılım Test Mühendisliği Dersleri: Bölüm 6

Test Bitirimi ve Ürün Teslimi | Regresyon, UAT, Code Freeze | yazilimtestmuhendisligi.com

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.

Regresyon Testi UAT Code Freeze Go / No-Go Release Süreci

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.

Bu sürecin dört temel bileşeni vardır: Regresyon testleri (yeni değişikliklerin eski işlevleri bozmadığını doğrulamak), UAT (gerçek iş ihtiyaçlarını karşıladığını doğrulamak), Code Freeze (değişiklikleri durdurup istikrarı sağlamak) ve nihayetinde Go/No-Go kararı ile teslim.

Genel Akış: Kod Tamamlanmasından Teslime

Geliştirme Tamamlandı
Planlanan tüm hikâyeler kodlandı
Code Freeze
Yeni özellik eklenmesi durur
Regresyon Testi
Mevcut işlevler doğrulanır
UAT
İş birimi / müşteri onayı
Go / No-Go
Yayınlama kararı verilir
Release
Ürün üretime alınır

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.

Ne zaman: Büyük sürüm öncesi, mimari değişikliklerden sonra.

💨 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?”).

Ne zaman: Her yeni build alındığında, ilk kontrol olarak.

✅ 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.

Ne zaman: Küçük bir hotfix sonrası, geniş regresyona gerek kalmadan.

🎯 Selective Regression

Sadece değişiklikten etkilenen modülleri ve onlarla ilişkili alanları hedefleyen, risk bazlı seçilmiş test alt kümesidir.

Ne zaman: Zaman kısıtlı sprint’lerde, etki analizine dayalı olarak.

Regresyon Döngüleri Nasıl İlerler?

DöngüKapsamAmaç
Regresyon Döngüsü 1Değişen modüller + kritik akışlarBüyük kırılmaları erken yakalamak
Regresyon Döngüsü 2Döngü 1’de bulunan hataların düzeltmeleri + genişletilmiş kapsamDüzeltmelerin yeni sorun yaratmadığını doğrulamak
Final RegresyonTam kapsam (Full Regression)Sürümün genel istikrarını son kez onaylamak
İpucu: Regresyon test paketini otomatikleştirmek (örn. Selenium, Playwright, Cypress ile) döngü sürelerini ciddi şekilde kısaltır ve her sürümde manuel emek harcamadan tekrarlanabilir, güvenilir sonuçlar sağlar.

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

  1. UAT senaryolarının hazırlanması: Kabul kriterlerine dayalı, iş odaklı test senaryoları yazılır.
  2. Test ortamının hazırlanması: Üretime yakın veriler ve konfigürasyonla bir UAT ortamı kurulur.
  3. Senaryoların yürütülmesi: İş birimi/kullanıcılar kendi iş akışlarını gerçek verilerle dener.
  4. Geri bildirim ve hata kaydı: Bulunan sorunlar önceliklendirilerek geliştirme ekibine iletilir.
  5. Resmi kabul (Sign-off): İş birimi, yazılımı yazılı olarak onaylar.
Dikkat: UAT sırasında bulunan bir hata, genellikle gereksinimlerin en baştan yanlış/eksik anlaşıldığının (Error) bir işaretidir. Bu tür bulgular, önceki bölümde ele aldığımız INVEST kriterlerinin (özellikle “Testable” ve “Negotiable”) sprint başında daha titiz uygulanması gerektiğine dair güçlü bir sinyaldir.

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
Neden önemlidir? Code Freeze olmadan test edilen bir sürüm sürekli değişirse, “hangi build’de hangi hata test edildi?” sorusu belirsizleşir ve regresyon/UAT sonuçları güvenilirliğini kaybeder. Freeze, test ekibine sabit bir hedef üzerinde çalışma imkânı verir.

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:

  1. Deployment: Sürüm, üretim ortamına planlı bir pencere içinde alınır (genellikle düşük trafik saatlerinde).
  2. Post-release smoke test: Üretimde temel işlevlerin çalıştığı hızlıca doğrulanır.
  3. Hipercare / Yakın izleme: İlk 24-72 saat, hata oranları ve sistem metrikleri yakından izlenir.
  4. Test Kapanış Raporu (Test Closure Report): Test kapsamı, bulunan/çözülen hata sayısı, bilinen açık sorunlar ve öğrenilen dersler belgelenir.
Pratik öneri: Her sürüm için bir “Test Kapanış Raporu” hazırlamak, sadece o sürümü belgelemekle kalmaz — bir sonraki sürümün regresyon kapsamını risk bazlı önceliklendirmek için de değerli bir veri kaynağı oluşturur.

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.

Altın kural: Çıkış kriterlerini (exit criteria) sprint/sürüm başında, baskı altında değil, sakin kafayla ve tüm paydaşların onayıyla belirleyin. Go/No-Go toplantısında bu kriterlere karşı objektif olarak karar verin — “yakında bitirir” duygusal beklentisi değil, ölçülebilir veriler karar versin.
Başa Dön →

yazilimtestmuhendisligi.com — Nihat Ük

Bu içerik eğitim amaçlı hazırlanmıştır. © 2026

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir