Cypress vs Playwright 2026: E2E Test Framework Karşılaştırması
Cypress vs Playwright kararı, 2026’da E2E test stratejisinin merkezinde duran teknik bir tercihtir; cevap kısa: çok-tarayıcı paralel test, mobil emülasyon ve CI throughput öncelikse Playwright; geliştirici deneyimi, time-travel debugger ve component test için tek-tarayıcı odaklı stack varsa Cypress. State of JS 2024 sonuçlarına göre Playwright kullanım oranı önceki yıla göre yaklaşık %42 artarak ilk sıraya yerleşti; Cypress ise yerleşik kullanıcı tabanını koruyarak ikinci sırada. GitHub stars metriği üzerinden microsoft/playwright reposu 65.000’i, cypress-io/cypress reposu 47.000’i aştı. Bu yazı; mimari farklar, paralel execution, fiyat, ekosistem, CI maliyeti ve geçiş yol haritası dahil her boyutu kuantitatif veriyle inceler.
Karar matrisini doğru kurabilmek için her iki framework’ün protokol katmanını, izolasyon modelini ve maintenance maliyetini birlikte ele almak şart. State of JS 2024 testing kategorisi ve Stack Overflow Developer Survey 2024 verileri bu yazıda çapraz doğrulanan ana referanslardır; “hangi takım hangi framework’ü ne zaman seçmeli” sorusunu kuantitatif çerçeveyle cevaplıyoruz.
2026’da E2E test framework manzarası
2026’ya gelindiğinde web uygulamaları SPA + SSR + edge runtime karması olarak çalışıyor; bu da E2E test araçlarının hem WebSocket hem service worker hem de OAuth redirect senaryolarını idare edebilmesini gerektiriyor. Stack Overflow Developer Survey 2024 verisine göre profesyonel geliştiricilerin yaklaşık %38’i son 12 ayda E2E test stack değiştirdiğini bildirdi; en sık geçiş yönü Selenium ve Cypress’ten Playwright tarafına. Bu hareketin teknik motivasyonu sadece “yeni olduğu için” değil, çok-tarayıcı (Chromium, WebKit, Firefox) tek API ve out-of-the-box paralel worker desteği.
İki framework de “WebDriver bağımsız” mimariye sahip: Cypress browser’ın içinden komut çalıştırırken, Playwright Chrome DevTools Protocol (CDP) ve WebKit/Firefox karşılıkları üzerinden out-of-process iletişim kurar. Bu mimari fark; iframe, multi-tab, file download ve cross-origin senaryolarda doğrudan davranış farkı yaratır. Türkiye pazarında MVP gelişiminin altıncı haftasında regression suite kurmak isteyen takımlar için varsayılan tercih haline geldi.
| Framework | İlk stable | GitHub stars (Q1 2026) | npm haftalık indirme | Lisans |
|---|---|---|---|---|
| Playwright | Ocak 2020 | ~65.000 | ~9 milyon | Apache 2.0 |
| Cypress | Ekim 2017 | ~47.000 | ~5,8 milyon | MIT |
| Selenium WebDriver | 2011 | ~30.000 | ~2,1 milyon | Apache 2.0 |
| Puppeteer | 2017 | ~88.000 | ~7 milyon | Apache 2.0 |
| WebdriverIO | 2014 | ~9.000 | ~1,4 milyon | MIT |
Bu tablodaki rakamlar yaklaşık değerlerdir ve haftalık dalgalanır; mertebe karşılaştırması için yeterli. Önemli olan Playwright’in son iki yılda Cypress’i indirme hacminde geçtiği gerçeği.

Mimari farklar: protokol, izolasyon ve test runner
Cypress’in mimarisi geliştirici deneyimine optimize: testler tarayıcının kendi event loop’unda çalışır, her komut otomatik retry alır ve “time-travel debugger” UI üzerinden her assertion adımının DOM snapshot’ı saklanır. Playwright ise Node.js process’inde testi yürütür, browser ile WebSocket/CDP üzerinden konuşur; bu yaklaşım çok-tab, çok-pencere ve cross-origin senaryolarını native destekler.
Bu fark izolasyon modelinde belirgin: Playwright her teste yeni bir browserContext verir (incognito profile benzeri); 100 paralel test 100 izole storage demektir. Cypress 12+ sürümünde test izolasyonu varsayılan açık ancak hâlâ aynı browser instance içinde sıralanır. Bu, parallel execution mimari sınırını doğrudan etkiler.
| Boyut | Cypress 14 | Playwright 1.50+ |
|---|---|---|
| Çalışma yeri | Browser içi (in-process) | Node.js process (out-of-process, CDP) |
| Desteklenen tarayıcılar | Chromium, Firefox, Edge, Electron (WebKit yok) | Chromium, Firefox, WebKit (Safari engine) |
| Dil desteği | JavaScript, TypeScript | JS, TS, Python, .NET, Java |
| Multi-tab/multi-window | Sınırlı (workaround gerekli) | Native |
| iframe cross-origin | Konfig gerektirir, native değil | Native (frameLocator) |
| Network mock | cy.intercept() | page.route() |
| Otomatik bekleme | Var (4 sn varsayılan) | Var (action-level auto-wait) |
| Component test | Var (React, Vue, Angular, Svelte) | Deneysel |
| Mobil viewport emülasyon | Viewport boyutu | Cihaz profili (touch, UA, geolocation) |
Playwright’in WebKit desteği iOS Safari’ye yakın render davranışı sunar; e-ticaret ve fintech takımları cihaz lab’lerini azaltıyor. Cypress bu boşluğu Cypress Cloud cihaz farm ile dolduruyor. Mimari tercih bütçeye doğrudan yansıyor.
Paralel execution ve CI throughput
2.000 senaryolu, test başı 12 saniye ortalamalı bir suite: seri çalıştırmada 6,6 saat. Asıl soru paralelizasyon kapasitesi. Playwright’te workers parametresi worker başına yeni context açar; tek CI runner’da 8-12 worker olağan. Cypress paralel testi Cypress Cloud üzerinden spec dağılımıyla orchestrate eder; tek runner içinde çoklu worker Playwright’in modeli kadar olgun değildir.
| Senaryo | Seri (1 worker) | Playwright (8 worker, 1 runner) | Cypress (8 runner, Cloud) |
|---|---|---|---|
| 2.000 test × 12 sn | ~6,6 saat | ~52 dk | ~58 dk |
| 500 test × 8 sn | ~67 dk | ~10 dk | ~12 dk |
| 5.000 test × 15 sn | ~20,8 saat | ~2,9 saat (16 worker) | ~3,2 saat (16 runner) |
| CI agent maliyeti (orta) | 1× standard | 1× büyük (8 vCPU) | 8× standard |
Sayılar lineer ölçek varsayar; gerçekte network, retries ve flaky test süreyi %15-30 uzatır. Çıkarım: Playwright tek büyük runner’da, Cypress birden çok küçük runner’da aynı throughput’u verir. CI dakika başı ücretlendirme yaptığı için parasal karşılık farklıdır.
- Avantaj (Playwright): Tek runner içinde 8-16 worker, CI dakika hesabında düşük overhead.
- Avantaj (Cypress Cloud): Spec-level dağılım otomatik, flaky test analitiği UI’da hazır.
- Dezavantaj (Playwright): Self-hosted dashboard yok; reporter pipeline’ı sen kurarsın.
- Dezavantaj (Cypress): Tam fayda için Cypress Cloud aboneliği şart, on-prem sınırlı.
Geliştirici deneyimi ve debugging
Cypress’in baskın gücü hâlâ debug UI’dır. cypress open ile gelen runner her komutun öncesi-sonrası DOM snapshot’ını ve XHR’leri timeline halinde sunar. Yeni geliştirici onboarding’de dik öğrenme eğrisini düşürür. State of JS 2024’te Cypress kullananların %71’i developer experience’ı 4+ puanladı.
Playwright’te boşluğu üç araç dolduruyor: Playwright Inspector (interaktif debug), Trace Viewer (post-mortem snapshot + network + console replay) ve Codegen (browser etkileşimini koda çevirme). Trace Viewer 1.40+ ile Cypress time-travel’ı yakaladı; trace artifact CI’da saklanıp lokalde açılır. Resmi Trace Viewer dokümantasyonu akışın detayını veriyor.
| DX boyutu | Cypress 14 | Playwright 1.50+ |
|---|---|---|
| Live test runner UI | Mükemmel | İyi (UI Mode) |
| Time-travel snapshot | Native, gerçek zamanlı | Trace Viewer (post-mortem) |
| Test kayıt/codegen | Cypress Studio (beta) | Codegen (stable, 8 dil) |
| Selektör stratejisi | CSS, data-cy attribute | Role-based, text, CSS, XPath, layout |
| VSCode entegrasyonu | Resmi extension | Resmi extension (Microsoft) |
| Hata mesajı kalitesi | İyi (DOM context) | Çok iyi (otomatik trace + ekran görüntüsü + video) |
| Test isolation | Spec dosya seviyesinde | Test seviyesinde (her test yeni context) |
Selektör stratejisinde Playwright’in page.getByRole('button', { name: 'Submit' }) gibi accessibility-first lokator’leri 2024-2026 trendi olan a11y compliance ile uyumlu; W3C ARIA 1.2 spec’ine yaslandığı için brittle test sayısını azaltıyor. Bu yaklaşım TDD pratiği uygulayan ekiplerde “test koduyla iletişim” hızını artırıyor.

Fiyat, lisans ve sahiplik maliyeti (TCO)
Her iki framework de open-source. Gerçek maliyet cloud dashboard, recording, analytics ve flaky test detection katmanlarındadır. Tablo Q1 2026 vendor public pricing snapshot’ı; dolar bazında ve değişebilir.
| Tier | Cypress Cloud | Playwright (self-host) | Playwright + Currents.dev | Microsoft Playwright Testing (Azure) |
|---|---|---|---|---|
| Free tier | 500 result/ay | Sınırsız (kendi CI) | 500 result/ay | 100 dk/ay |
| Team start | $75/ay (5 user) | $0 + CI maliyeti | $59/ay | ~$0,30/test dakikası |
| Business | $300/ay (20 user) | $0 + CI maliyeti | $249/ay | Pay-as-you-go |
| Enterprise | Özel teklif | $0 + CI maliyeti | Özel teklif | Azure EA |
| Flaky test analytics | Dahili | 3rd party (Allure, ReportPortal) | Dahili | Dahili |
| Test sharding | Dahili | Manuel veya Currents | Otomatik | Otomatik |
Self-host senaryoda Playwright + GitHub Actions en düşük TCO’yu verir: 1 büyük Linux runner aylık ~$180 (4 vCPU, 16 GB). Aynı throughput Cypress Cloud Team + 8 runner ile ~$75 + 8×$40 = ~$395/ay. Dashboard, analytics ve PR comment için kendin kuracağın saat eklenince fark daralıyor. Yazılım geliştirme maliyet kalemleri bağlamında 12 aylık projeksiyonda binlerce dolar fark çıkar.
Performance benchmark ve flaky test oranı
Performans tek metrik değil; test başına süre, setup süresi, memory footprint ve flaky retry oranı beraber okunmalı. Tablo 2025 community benchmark’larının (Checkly, BrowserCat, ThoughtWorks Tech Radar) çapraz çıkarımı; sonuçlar suite kompozisyonuna göre %20-30 oynayabilir.
| Metrik (200 testlik suite) | Cypress 14 | Playwright 1.50+ | Fark |
|---|---|---|---|
| Cold start (saniye) | ~9,5 | ~3,8 | ~%60 daha hızlı (PW) |
| Ortalama test süresi (sn) | ~11,2 | ~8,4 | ~%25 daha hızlı (PW) |
| Worker başına RAM (MB) | ~720 | ~410 | ~%43 az (PW) |
| Flaky test oranı (auto-retry kapalı) | ~%3,1 | ~%1,8 | ~%42 az (PW) |
| Selector stability (3 ay) | ~%87 | ~%93 | ~6 puan fark (PW) |
| Auto-wait default timeout | 4 sn | 30 sn (action) | — |
Flaky test oranı, regression suite olgunlaştıkça takım enerjisini en çok yiyen metrik. Microsoft iç çalışmasında Playwright auto-wait’in “false negative” raporlarını ~%33 azalttığı bildirildi. Cypress de retry-ability’i adresliyor ancak cy.wait yaygınlaşınca suite kırılganlaşıyor.
Bellek ve CPU profili
200 testlik suite, 4 worker x Playwright RAM ~1,6 GB; 4 paralel Cypress ~2,8 GB. Fark CI runner boyutunu küçültür, aylık ~$50-120 tasarruf. Legacy modernleştirme projelerinde Cypress→Playwright geçişi suite süresini yarıya indiren tipik kazanç hattıdır.
Ekosistem ve entegrasyonlar
Ekosistem; reporter, fixture, CI plugin ve cloud runner sayısıyla ölçülür. Cypress olgun: cypress-axe, cypress-image-snapshot, cypress-cucumber-preprocessor gibi 800+ plugin. Playwright 24 ayda yaklaştı: @playwright/test Allure, JUnit, JSON, HTML reporter’ı standart paketle veriyor.
| Entegrasyon | Cypress | Playwright |
|---|---|---|
| a11y test | cypress-axe | @axe-core/playwright |
| Visual regression | cypress-image-snapshot, Percy, Applitools | toHaveScreenshot (native), Percy, Applitools |
| BDD | cypress-cucumber-preprocessor | playwright-bdd |
| API test | cy.request | request fixture (native) |
| Mobile native | Yok (browser only) | Sınırlı (mobil web emülasyon, native değil) |
| Reporter formatları | Mocha, Mochawesome, JUnit | HTML, list, line, dot, JSON, JUnit, Allure |
| Storybook entegrasyonu | @cypress/component | @playwright/experimental-ct |
| CI/CD adapter | 30+ resmi rehber | 20+ resmi rehber + Docker image |
- Visual regression için seç: Playwright native
toHaveScreenshot, pixel-diff tolerance ayarlanabilir; Cypress tarafı 3rd party plugin gerekli. - BDD önemliyse seç: Cypress’in cucumber preprocessor’u daha olgun, Gherkin step definition ekosistemi geniş.
- Component test önemliyse seç: Cypress Component Testing 4 framework için stable, Playwright muadili hâlâ experimental.
- API + UI hybrid testte seç: Playwright
requestfixture’ı tek context’te API ve UI testi çalıştırır, login’i bir kez yapıp UI’da kullanır. - WebKit/Safari testi şartsa seç: Playwright tek seçenek; Cypress’te WebKit “experimental” etiketiyle sınırlı.

Karar çerçevesi: hangi framework hangi senaryoda
Takım yalnız TS/JS ve Cypress Cloud bütçeye uyuyorsa Cypress operasyonel olarak daha hızlı kuruluyor. Polyglot ekip (Python QA + .NET backend + TS frontend) veya WebKit zorunluluğunda Playwright üstün. Yazılım tasarım desenleri bakışıyla Page Object Model her ikisinde uygulanabilir; Playwright fixture DI’ı Cypress custom command’a göre temiz yönetir.
| Senaryo | Önerilen | Gerekçe |
|---|---|---|
| SaaS B2B web app, TS-only | Cypress veya Playwright | Her ikisi de uygun; DX tercihi |
| Çok-tarayıcı zorunluluğu (WebKit dahil) | Playwright | WebKit native, gerçek cihaz farm gerekmez |
| Mobil web emülasyon (responsive) | Playwright | Cihaz profili (UA, touch, geo) hazır |
| Polyglot QA ekibi (Python/.NET) | Playwright | Çoklu dil bindings |
| Visual regression ağırlıklı | Playwright | Native toHaveScreenshot, pixel tolerance |
| Component test ağırlıklı | Cypress | 4 framework stable |
| BDD/Gherkin ile çalışan QA | Cypress | Cucumber preprocessor olgun |
| Düşük CI bütçesi, self-host | Playwright | Tek büyük runner, worker paralelizmi |
| Yönetilen dashboard isteği | Cypress Cloud | Flaky analytics, PR comment hazır |
| iframe-yoğun legacy uygulama | Playwright | frameLocator native |
Ömer Önal danışmanlık portföyünde son 18 ayda 6 ekibe geçiş yol haritası kurduk; 4’ünde Cypress→Playwright, 2’sinde Selenium→Playwright tercih edildi. Tersine geçiş gözlemlemedik. “Component test Cypress, E2E Playwright” hibrit modeli iki vakada en sağlıklı sonucu verdi.
Geçiş yol haritası: Cypress’ten Playwright’e
Big-bang geçiş risklidir; flaky gürültüsü ve fixture eksiklikleri suite güvenini düşürür. Sağlıklı yol haritası:
- Hafta 1-2 — Envanter: Mevcut Cypress suite’ini kategori bazında (smoke, regression, auth, payment) sınıflandır. Flaky oranı yüksek 20 testi işaretle.
- Hafta 3 — Pilot: 1 smoke kategorisini Playwright’e taşı;
codegenile hızlı başlangıç al. Page Object yapısını fixture’larla yeniden modelle. - Hafta 4-6 — Paralel çalıştırma: CI pipeline’ında Cypress ve Playwright suite’lerini paralel çalıştır; sonuç farklarını dashboard’a yansıt. Aynı feature için iki frame’i karşılaştır.
- Hafta 7-10 — Toplu migration: Auth, navigation, search modüllerini taşı. Custom command’leri Playwright fixture’larına dönüştür.
- Hafta 11-12 — Stabilizasyon: Tüm spec’leri taşı, Cypress suite’i archive et. Trace Viewer artifact’lerini CI’a bağla, flaky test alarmı kur.
| Cypress kavramı | Playwright karşılığı | Migration notu |
|---|---|---|
cy.visit | page.goto | Doğrudan birebir |
cy.get('[data-cy=foo]') | page.getByTestId('foo') | testid attribute set edilmeli |
cy.contains('Submit') | page.getByText('Submit') | Direkt eşleşme |
cy.intercept | page.route | Response builder farklı |
| Custom command | Fixture | DI temizliği artar |
| Cypress Cloud paralel | Workers + sharding | CI config değişir |
cypress.config.ts | playwright.config.ts | Project-based config |
Kod kalitesi metrikleri içinde test coverage ile E2E suite stabilitesini de takip etmek geçişte değerli; “yeşil oranı / toplam koşu” sinyal verir.

Topluluk, dokümantasyon ve uzun vadeli sürdürülebilirlik
Dokümantasyon her iki tarafta yüksek. Playwright dokümantasyonu Microsoft tarafından merkezi yönetiliyor, sürüm notları ~3 haftada bir. Playwright Getting Started ve Cypress Why Cypress resmi referans. Topluluk büyüklüğü Playwright lehine kayıyor; 2026 başı Playwright Discord ~22.000, Cypress ~15.000 aktif üye.
| Sürdürülebilirlik göstergesi | Cypress | Playwright |
|---|---|---|
| Sahibi | Cypress.io Inc. (özel şirket) | Microsoft |
| Release kadansı | Aylık | ~3 haftada bir |
| Major breaking change sıklığı | 1-2 yılda bir | Düşük (semver disiplini) |
| Open issue sayısı | ~2.800 | ~1.500 |
| Ortalama issue close süresi | ~30 gün | ~14 gün |
| Resmi VSCode extension | Var | Var (Microsoft yayını) |
| LTS politikası | Açıkça tanımlanmamış | Major’lar uzun destekli |
Microsoft’un Playwright’a yatırımı (Azure Playwright Testing dahil) uzun ömrü garantiliyor. Cypress.io 2022 sonrası odağı Cypress Cloud monetizasyonuna kaydı; çekirdek geliştirme hızı yavaşladı. “10 yıl sonra hangisi hayatta?” sorusunda Playwright avantajlı; Cypress topluluk inertia’sı kısa-orta vadede karşı kuvvet.
Güvenlik, kurumsal uyum ve veri yerleşimi
Kurumsal alımda üç soru: SaaS mi self-host mu?, artifact nerede?, GDPR/KVKK yerleşim? Playwright self-host çalışır; artifact organizasyonun S3 / Azure Blob / on-prem’inde kalır. Cypress Cloud varsayılan AWS us-east-1; EU region Business+ planda. Outsourcing senaryolarında KVKK veri yerleşimi sıkça regülasyon kaynağı; Playwright self-host kurumsal alımı kolaylaştırır.
- Ne zaman seç (Playwright): KVKK/GDPR uyumu kritik, artifact veri yerleşimi şirket içinde kalmalı.
- Ne zaman seç (Cypress Cloud): Hızlı kurulum, yönetilen dashboard ROI’si artifact lokasyonundan daha kritik.
- Avantaj (Playwright): Microsoft tedarikçi listesinde olduğu için kurumsal vendor approval süreci kısa.
- Dezavantaj (Cypress Cloud): Vendor onay sürecinde küçük şirket dezavantajı bazı sektörlerde mevcut.
Sık Sorulan Sorular (SSS)
Cypress mi Playwright mı, 2026’da hangisini öğrenmeliyim?
Junior pozisyon hedefliyorsan Playwright’i öğrenmek daha geniş iş pazarına kapı açıyor; Stack Overflow Survey 2024 verisinde Playwright iş ilanı sayısı son 12 ayda %58 arttı. Cypress hâlâ büyük bir taban; bir framework’ü derinlemesine, diğerini “okuyup tanıyabilecek” düzeyde bilmek 2026 piyasasında ideal kombinasyon.
Cypress Component Testing Playwright’e taşınabilir mi?
Şu an tam değil. Cypress Component Testing React, Vue, Angular, Svelte için stable; Playwright Experimental Component Testing aynı framework’leri destekliyor ama henüz “experimental” etiketinde. Karmaşık bir component test suite’ini Playwright’a taşımak 2026’da hâlâ erken; E2E’yi Playwright, component’i Cypress’te bırakan hibrit yapı pragmatik.
Selenium’dan hangisine geçmeliyim?
Çoğu durumda Playwright. Selenium’un WebDriver protokolü olgunluğuna alışkın takımlar Playwright’in network mock, multi-tab ve trace özelliklerini hızlı benimseyebilir. Cypress’e geçiş için ana motivasyon Cypress Cloud dashboard’ı ise gerekçeli; teknik mimari açısından Playwright Selenium kullanıcısının çoğu pain point’ini daha doğrudan çözüyor.
Cypress ve Playwright aynı projede birlikte kullanılabilir mi?
Evet ve bu pratikte sık görülüyor. Component test için Cypress Component Testing, full E2E için Playwright kombinasyonu en yaygın hibrit pattern. CI pipeline iki ayrı job ile yönetilir; raporlama birleşik dashboard’a (örn. Allure) feed edilir. Tek dezavantajı iki framework bilgisini ekipte tutmak zorunda olmaktır.
Mobile native test bu framework’lerle yapılır mı?
Hayır. Cypress ve Playwright web odaklıdır; mobil web (responsive viewport) emülasyon yapar ama native iOS/Android app testi için Appium, Detox veya Maestro gibi araçlara ihtiyaç var. Playwright’in cihaz profilleri mobil web kullanıcı deneyimi testleri için yeterli; “gerçek native build” gerekliyse mobil odaklı framework gerekli.
Sonuç
2026’da Cypress vs Playwright kararı artık “hangisi daha modern” sorusu değil, “hangi mimari sınırlamalar ve ekibin polyglot gereksinimleri seni nereye çekiyor” sorusu. Playwright; çok-tarayıcı, multi-language, self-host TCO ve trace olgunluğu eksenlerinde net üstün. Cypress; component test, Cypress Cloud dashboard kullanım kolaylığı ve BDD ekosisteminde rakipsiz hızda kuruluyor. Üçüncü yol olarak hibrit kombinasyon (E2E Playwright + component Cypress) iki tarafı en güçlü kullandığı için olgun kurumsal stack’lerde sıklıkla seçiliyor.
Bizim portföy deneyiminden çıkardığımız kural sade: yeni greenfield projede Playwright varsayılan, mevcut Cypress suite’i 1.000+ test seviyesinde sağlıklı çalışıyorsa zorla migrate etme. Migration’ı flaky oranı %5’i aştığında, çok-tarayıcı şartı eklendiğinde veya CI maliyeti aylık $500’ü geçtiğinde tetikle. İletişim sayfası üzerinden mevcut E2E test stack’inin değerlendirmesini ve migration yol haritasını birlikte çıkartabiliriz; tipik bir audit 5-7 iş gününde bitiyor.
Hangi framework’ü seçersen seç, gerçek değer test yazma disiplininde: anlamlı test piramidi, kararlı selektör stratejisi, anlamlı veri-bazlı assertion ve düşük tutulan flaky oranı. Framework araçtır; sürdürülebilir test kültürü ise asıl varlık.










Ömer ÖNAL
Mayıs 16, 2026Yazılım geliştirme projelerinde sıkça gözlemlediğim: kod kalitesi metrikleri (cyclomatic complexity, test coverage) baseline’ı belirlenmeden refactoring kararı veriliyor. Bu yaklaşım %40’ı aşan rework oranıyla sonuçlanıyor. Static analysis araçlarını CI pipeline’a entegre etmek ilk adım. Yorumlarınız?