smaple.tr
sürekli test

Sürekli Test ve CI/CD Entegrasyonu: DevOps Kalite Rehberi [2026]

Mehmet Kurtipek
June 7, 2026
10 min read
sürekli test
ci/cd test
test pipeline
kalite kapısı
devops test

CI/CD Başlaması, Kalite Kontrolü Sonlandırırsa?

DevOps hareketi, yazılım dağıtım hızını attırdı. Günde 5-10 sürüm çıkaran kuruluşlar, yıl önce ayda bir sürüm çıkarıyordu. Ancak bu hız, kalite kontrol atlanırsa, hızlı hata dağıtımı anlamına gelir.

Gerçek durum: CI/CD pipeline'ında test yoksa veya zayıfsa, her sürüm canlı ortama potansiyel hata taşır. Aylık sürüm 95% güvenle çıkabilirse, günde 10 sürüm %40 güvenle çıkar.

Çözüm: Continuous Testing. Her git push'ta, otomatik testler koşmalı, sonuçlar anında raporlanmalı, hata bulunan kod merge edilmemeli.

Test Pipeline Tasarımı

Test pipeline, hızlı ve güvenli olmalıdır. Hızlı çünkü geliştirici feedback beklemek istemez. Güvenli çünkü hatalı kodu üretim ortamına sokmamak gerekir.

Aşama 1: Build (Derleme) - 1-2 Dakika

Kod derlenir. Syntax hatası var mı? Bağımlılıklar yüklü mü? Bu aşama başarısız olursa, aşağıdaki testler koşmaz.

Aşama 2: Unit Tests (Birim Testler) - 5-10 Dakika

Geliştiriciyle beraber yazılan testler koşur. Fonksiyonlar, metodlar doğru çalışıyor mu?

Bu aşamada geçiş oranı %90+. Başarısız olursa, kod reviewer'a bu hata gösterilir.

Aşama 3: Code Quality (Kod Kalitesi) - 2-3 Dakika

SonarQube, Checkstyle, ESLint gibi araçlar, kod stiline ve mantık hatalarına bakar.

  • "Yorum yazılmamış fonksiyon var"
  • "Dead code (kullanılmayan kod) var"
  • "SQL injection riski var"

Kalite eşiği belirlenirse (örn: %80 code coverage, 0 critical issue), bu aşama başarısız olabilir.

Aşama 4: Integration Tests (Entegrasyon Testleri) - 10-20 Dakika

API testleri, veritabanı testleri koşur. Birim testlerin kaçırdığı hataların çoğu burada bulunur.

Aşama 5: E2E Tests (End-to-End Testler) - 20-40 Dakika

Tarayıcıda giriş yap, ödeme yap, rapor oluştur gibi tam senaryolar test edilir. En yavaş aşamadır.

Bu aşama başarısız olursa, manuel inceleme gerekebilir (flaky test mi, gerçek sorun mu?).

Aşama 6: Performance Tests (Performans Testleri) - 30-60 Dakika

Gecede veya hafta sonları koşabilen, zaman alıcı testler. Load test, stres test.

Aşama 7: Security Tests (Güvenlik Testleri) - 30-60 Dakika

Açık kaynakça kütüphaneler (Snyk, Dependabot), SQL injection, XSS kontrolleri. SAST (Static Application Security Testing) araçları.

Toplam pipeline süresi: 70-120 dakika (2-3 saat)

Kalite Kapısı (Quality Gate) Konsepti

Git push'ta, test pipeline koşar. Tüm testler yeşil olması gerekir. Eğer başarısız olursa, kod merge edilmez. Bu, kalite kapısıdır.

Kalite kapısı tanımı:

  • Tüm unit testler geçmeli (%99 geçiş oranı hedefi)
  • Code coverage %80+
  • 0 critical security issue
  • API testleri %100
  • E2E testler (critical path) %95+

Başarısız testler:

  1. Geliştirici notification alır
  2. Sorunun ne olduğunu anlamaya çalışır
  3. Kodu düzeltir, yeniden push'eder
  4. Pipeline yeniden koşur

Bu döngü, "build-test-fix" olarak adlandırılır ve DevOps'un kalbi.

Paralel Test Çalıştırma

Testleri sırayla çalıştırmak, 2 saate mal olabilir. Paralel çalıştırmak 30 dakikaya düşürebilir.

Nasıl?

Makine parallelleştirmesi: 10 sunucuyu paralel olarak 10 farklı test grubunu çalıştırsın. Her biri 12 dakika koşar, toplam 12 dakika (sıra yerine). Örneğin, unit testler üç parallelde, entegrasyon testleri üç parallelde, E2E testler üç parallelde koşabilir.

Jenkins, GitLab CI, GitHub Actions bu özellikleri sunar. Pipeline'da parallel keyword'ü kullanarak testleri ayrı joblar'da çalıştırabilirsin.

Test splitter: 100 E2E test senaryosu, 5 paralel makinede koşsun. Her makine 20 test koşar.

Dikkat: Testler bağımsız olmalı. Başarısızlık sıraya bağlı olmamak.

Test Raporlama ve Görselleştirme

Pipeline tamamlandığında, sonuçlar rapor edilir:

  • Kaç test koştu, kaç geçti, kaç başarısız oldu?
  • Ortalama yanıt süresi ne?
  • Code coverage %'si
  • Performance metrikler

Good tools:

  • Jenkins: X-Ray eklentisi ve HTML raporları oluşturabilir
  • GitLab: Entegre test raporlama ve görselleştirme
  • GitHub: Test artifact'ları ve deployment geçmişi
  • Splunk, Datadog: Gerçek zamanlı monitoring ve alerting

Raporlar, stakeholder'lara sunulmalı:

  • Yönetim: "Kalite %95 başarı oranında"
  • CTO: "Performance 2% iyileşti"
  • Geliştirici: "Login testi başarısız, satır 234"

Yazılım test stratejisinin genel öğreniş ve best practices için, Yazılım Test ve Kalite Güvence rehberi adlı kapsamlı kaynağımıza başvurun.

Flaky Test Problemi

Test rasgele başarısız oluyor. İşletim sistemi zamanlaması, ağ gecikmesi, veritabanı bağlantı havuzu - nedenler kompleks.

Flaky testler, CI/CD pipeline'ın en büyük sorunu:

  1. Geliştirici kodu değiştirmedi, ama test başarısız oldu. Daha yazık.
  2. "Eh, belki retry ederse geçer" diyerek kod merge ediliyor.
  3. Production'da gerçek hata patlıyor.

Çözüm:

  1. Test retry: Başarısız test hemen tekrar koş. İkinci denemede geçerse, sorun flaky'dir.
  2. Sorun tanılama: Neyin flaky olduğunu buluncaya kadar test kodunu incele.
  3. Beklemeleri düzelt: Async operation için explicit wait yazılmalı.
  4. Test ortamı: Veritabanı sıfırlanmıyor mu? Her test temiz durumda başlamalı.

Flaky test oranı %5'ten fazlaysa, test altyapısında ciddi sorun vardır.

Shift-Left ve Shift-Right Testing

Shift-Left: Testi Erken Başlat

Geleneksel: Kod tamamlandı -> Test -> Production.

Shift-Left: Tasarım aşaması -> Birim testleri -> Entegrasyon -> Production.

Avantaj: Hata erken bulunur, düzeltilmesi ucuza mal olur.

Shift-Right: Production'da Monitör Et

Hata tamamı test aşamasında bulunmamaya bilir. Production'da real users, real data, real issues.

Monitoring ve observability araçları (DataDog, New Relic, Splunk) production'da testleri simüle eder:

  • Her 5 dakikada critical API'ları test et (synthetic monitoring)
  • Errors, latency, availability takip et
  • Eğer metriklerin eşiği aştıysa, alert gönder

Shift-Right, DevOps'un ikinci ayağı. Shift-Left sadece geliştirme hızını artırır, Shift-Right kesinlikle güvenilirliği artırır.

Continuous Testing Sürecine Entegrali Örnekler

GitHub Actions

GitHub Actions'ta CI/CD pipeline kurulumu, olaylar (push, pull request) tanımlayarak başlar. Ardından işler tanımlanır: checkout, gerekli araçları kur (Java, Node.js), kodu derle, birim testleri çalıştır, doğrulama yapıl ve sonuçları sanat olarak sakla. Bu sayede her işlem otomatik olarak test edilir.

GitLab CI

GitLab CI'da benzer şekilde, pipeline aşamaları tanımlanır: derleme, test, dağıtım. Test aşamasında birim testler çalıştırılır, test sonuçları (JUnit biçimi) raporlanır ve kod kapsamı metriği hesaplanır. Bu metrik, çekme isteği'nde görüntülenerek kapsam eğilimini takip etmeyi sağlar.

Kaliteli CI/CD Pipeline için Checklist

  • Unit test coverage %80+
  • E2E testler critical path'lar kapsıyor mu?
  • API testler tüm endpoint'leri kapsıyor mu?
  • Code quality threshold belirlenmiş mi?
  • Security scanning entegre edilmiş mi?
  • Test raporları erişilebilir mi?
  • Başarısız test bildirimi aktif mi?
  • Flaky test takibi yapılıyor mu?
  • Test ortamı production'a benzer mi?
  • Performance baseline'ı tanımlanmış mı?

CI/CD Pipeline Altyapısı Maliyeti

CI/CD pipeline'ı kurmanın maliyeti, değerlendirme gerektiren bir yatırımdır:

Senaryo 1: Startup (10 geliştirici, 20 daily commit)

GitHub Actions (Cloud-based):

  • Lisans: GitHub Pro (10 kişi): 2.100 USD/yıl
  • Runner minutes: 20 daily commit x 30 min/pipeline = 600 min/ay = 200 USD/ay = 2.400 USD/yıl
  • Third-party tool'lar: SonarQube (3.000 USD), Snyk (500 USD)
  • Yıllık Toplam: 8.000 USD
  • Setup süresi: 1 hafta

Jenkins (Self-hosted):

  • Sunucu: 2 vCPU, 8 GB RAM, 100 GB disk = 100 USD/ay = 1.200 USD/yıl
  • Jenkins admin (10% zaman): 10.000 USD/yıl
  • Plugins, upgrades: 2.000 USD/yıl
  • Yıllık Toplam: 13.200 USD
  • Setup süresi: 3-4 hafta

Senaryo 2: Kurumsal (100 geliştirici, 500 daily commit)

GitLab Enterprise:

  • Lisans: 101-200 kişi: 25.000 USD/yıl
  • Runner'lar: Kendi'niz host (self-hosted), sunucu: 3.000 USD/yıl
  • Administration: DevOps mühendisi (1 full-time): 80.000 USD/yıl
  • Yıllık Toplam: 108.000 USD

Jenkins Enterprise (kurumsal):

  • Sunucular: 4 x 100 USD/ay = 4.800 USD/yıl
  • Jenkins Enterprise Support: 10.000 USD/yıl
  • Admin (1.5 kişi): 120.000 USD/yıl
  • Araçlar ve integrasyonlar: 20.000 USD/yıl
  • Yıllık Toplam: 154.800 USD

Test Pipeline'ın İş Değeri

CI/CD yapılı test, şöyle değer sunar:

Metrik Öncesi Sonrası Tasarruf
Build-to-Production Süresi 3-4 hafta 1-2 gün %90 hız
Release başarı oranı 75% 99% %24 iyileşme
Hotfix süresi 48 saat 2 saat 96% azalış
Geliştirici feedback time 24 saat 10 dakika %98 hız
Production downtime 50 saat/yıl 2 saat/yıl 96% azalış

Test Pipeline Optimizasyonu

1. Test Süresi Azaltma

Pipeline şimdi 2 saat koşuyor. Bu, geliştirici feedback çok yavaş.

Optimizasyon:

  • Parallelleştirme: 10 makine, 6 parça halinde = 20 dakika
  • Fast-fail: Unit test hemen başlat, başarısız olursa durdur
  • Test subset: Quick smoke test, critical path'lar
  • Full regression: Gece otomatik koş

Hedef: 15-20 dakika içinde developer feedback.

2. Flaky Test Azaltma

Flaky test, güven azaltır. Pipeline'da 1 flaky test = ekip confidence %30 düşer.

Stratejiler:

  • Retry: Başarısız test, otomatik 2 kez daha koş
  • Quarantine: Flaky test'ler temporary disable, separate tracking
  • Root cause: Neden flaky'dir? Async wait mi, timing issue mi?
  • Monitor trend: Dashboard'da flaky test ratio'su takip et

Hedef: Flaky rate < %1.

3. Kod Kalitesi Gate'leri

Tüm commit'ler, kalite eşiği geçmelidir. Kod kalitesi kontrolü, pipeline'ın kritik bir parçasıdır. Unit test başarı oranı %99 üzerinde olmalı. Kod kapsama alanı %80'inin üzerinde tutulmalı. SonarQube ile kod kalitesi, A+ rating almalı. Güvenlik açıkları kontrol edilmelidir (0 critical, 0 high vulnerability). Performans, önceki baseline'dan %10'dan fazla yavaş olmamalıdır.

Eğer bu kriterlerin herhangi biri başarısız olursa, kod merge edilmez. Geliştirici, hatalar hakkında hemen bilgilendirilir ve düzeltme yapması istenir.

4. Test Data Management

Test data kurulması, pipeline'ın %30'unu alabilir.

Optimizasyon:

  • Mock service'ler: Gerçek database yerine in-memory mock
  • Database snapshot'ı: Önceden prepared state, her test reset
  • Parallel data schema: Her test parallel worker'ın kendi database'i
  • Test data generator: Fake data otomatik oluştur

Hedef: Test data kurulumu < 2 dakika.

Continuous Testing Best Practices

1. Test Kategorilendirmesi

Testler, hızlarına ve kapsamlarına göre kategorilere ayrılmalıdır. Hızlı testler (@fast) - birim testler, 1 saniyeden az - her push'ta çalıştırılmalı. Orta hızlı testler (@medium) - entegrasyon testleri, 1-30 saniye - her commit'te çalıştırılmalı. Yavaş testler (@slow) - end-to-end senaryolar, 30 saniyeden fazla - gece veya haftalık olarak çalıştırılmalı. Kritik path testleri (@smoke), tüm pipeline'larda hızlı çalışmalı. Performans testleri (@performance) - yük testleri - haftalık, maliyeti yüksek oldukları için. Güvenlik testleri (@security) - penetrasyon testleri - aylık çalıştırılmalı.

Her test kategorisinin, CI/CD'de kendi aşaması (stage) olmalı. Bu şekilde, hızlı feedback ve güvenilir kalite kontrol sağlanır.

2. Shift-Right: Production Monitoring

Tüm test'ler green oldu, hala production'da fail olabilir. Real users, real data, real conditions.

Synthetic Monitoring:

  • Her 5 dakikada critical endpoint'i test et
  • Performance baseline takip et
  • Error rate takip et
  • Alert: metric eşiği aştığında (otomatik)

Tools: Datadog, New Relic, Splunk, Prometheus.

CI/CD Başarısızlığında Rollback

Deployment başarısız oldu. Ne yapmalı?

Strategy 1: Immediate Rollback

  • Yeni versiyon deploy'landı, hata yakalandı
  • Otomatik rollback: Önceki versiyon restore
  • Avantaj: Hızlı recovery
  • Dezavantaj: Database schema change varsa, rollback sorun

Strategy 2: Canary Deployment

  • Yeni versiyon, %10 user'a gider
  • Metrik'leri 5 dakika monitor et
  • Sorun yoksa, %100'e çık
  • Sorun varsa, rollback

Tools: Spinnaker, Argo CD, GitOps.

Strategy 3: Feature Flag

  • Yeni feature deploy edildi ama disabled
  • Staging'de tamamen test edildi
  • Production'da kademeli enable et
  • Sorun olursa, feature flag kapatıp iki roll'a geri dön

Tools: LaunchDarkly, Split.io, Unleash.

Test Raporlama ve Dashboard'lar

Kimler, hangi metrikleri görmek istemiş?

Geliştirici: "Bu test niye başarısız? Satır kaç?"

  • Detailed failure logs, stack trace
  • Failed test code snippet
  • Assertion detaylı message

QA Manager: "Test coverage ne? Hata bulma rate?"

  • Kod kapsam oranı trendi
  • Hata tespit oranı
  • Test çalıştırma süresi trendi

CTO: "Build frequency, release lead time, failure rate?"

  • DORA metrikleri (DevOps Research & Assessment)
  • Dağıtım sıklığı
  • Değişiklik teslim süresi
  • Değişiklik başarısızlık oranı
  • Ortalama kurtarma süresi

Dashboard tool'ları: Grafana, Jenkins Blue Ocean, GitLab built-in.

Yazılım Test Stratejisinin Genel Bağlamında CI/CD

Yazılım test stratejisinin genel öğrenişi ve best practices için, Yazılım Test ve Kalite Güvence rehberi adlı kapsamlı kaynağımıza başvurun.

Smart Maple CI/CD Test Entegrasyonu

Yazılım geliştirme ve dağıtım hızını kaybetmeden kaliteyi sağlamak, CI/CD test stratejisinin doğru tasarımıyla başlar. Smart Maple, GitHub Actions, GitLab CI, Jenkins ve diğer CI/CD platformlarında test pipeline tasarımı, kalite kapısı kurma, paralel test çalıştırma ve flaky test yönetimi hizmetleri sunur. Continuous testing yaklaşımıyla, hatasız yazılımı hızla pazara çıkarmanıza yardımcı oluruz. DevOps'ta kalite sağlamak için smart-maple.com adresini ziyaret edin ve entegrasyon hizmetlerimiz hakkında bilgi alın.

Related Articles

August 10, 2026

MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma

Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı

Read More
August 9, 2026

LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]

LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek

Read More
August 8, 2026

Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI

Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri

Read More