Blog

Test Data Management (TDM): Test Otomasyonundaki Görünmez Krizi Çözmek

Flaky test’lerin ve ortam drift’inin neden test verisi sorunu olduğunu; temel TDM stratejilerini ve Subsetra Ark’ın bulut-native, gizlilik odaklı test verisi platformunu nasıl sunduğunu keşfedin.

Modern yazılım mühendisliğinde hız belirleyicidir. Ekipler sürekli yazılım teslim etmek için CI/CD pipeline’larına, container orkestrasyonuna, Playwright, Cypress, Vitest, JUnit ve PyTest gibi test framework’lerine ve otomasyon paketlerine yoğun yatırım yapar.

Buna rağmen özenle yazılmış otomasyon kodunun arkasında aynı yorucu sorunlar tekrar eder:

  • Testler geliştirici makinesinde geçer, CI veya staging’de başarısız olur.
  • Aynı test paketi ilk çalışmada geçer, ikincide bozulur.
  • Bir test çalışması, ilgisiz üç test paketini öngörülemez biçimde etkiler.
  • Ekipler veritabanı dump’ının restore edilmesini saatlerce bekler; sonunda kirli veya eksik kayıtlarla karşılaşır.

Testler aralıklı olarak bozulduğunda ekipler doğal olarak script’leri, assertion’ları, locator’ları ve timeout ayarlarını inceler. Oysa çoğu durumda sorun test kodunda değil, test verisindedir.

Capgemini ve Sogeti World Quality Report verileri, kalite mühendisliği ekiplerinin toplam test yaşam döngüsünün %30 ile %60’ını — ortalama %44’ünü — yalnızca test verisini bulmak, hazırlamak, korumak ve beklemek için harcadığını gösterir. Sektör analizleri ayrıca CI/CD’deki false-positive test hatalarının %32’ye varan bölümünün uygulama kusurundan değil; eski, bozuk veya çakışan test verisinden kaynaklandığını ortaya koyar.

┌─────────────────────────────────────────────────────────────┐
│              Test Otomasyonu Başarı Formülü                 │
│                                                             │
│       %50 Test Kodu / Mantığı  +  %50 Test Verisi Kalitesi  │
│       Framework, Assertion, CI    Durum, Yalıtım, Biçim     │
└─────────────────────────────────────────────────────────────┘

Kötü yönetilen test verisi temeli, en gelişmiş otomasyon paketini bile değersiz hale getirebilir. Bu yazıda sürekli kalitenin temel disiplini olan Test Data Management (TDM) yaklaşımını; yönetilmeyen test verisinin pratik sorunlarını; alt kümeleme, maskeleme, sentetik üretim ve geçici hazırlama stratejilerini ve Subsetra Ark’ın modern, gizlilik odaklı TDM platformunu inceliyoruz.


1. Test Data Management (TDM) nedir?

Test Data Management, doğru veriyi doğru biçimde, doğru zamanda ve doğru test ortamına; güvenli, tutarlı ve ölçeklenebilir şekilde ulaştırma disiplinidir.

TDM yalnızca üretimden dump kopyalamak veya basit SQL seed script’i çalıştırmak değildir. Test verisinin bütün yaşam döngüsünü kapsar:

┌──────────────────────────────────────────────────────────────────────────┐
│                         TDM Yaşam Döngüsü                                │
│                                                                          │
│ [Keşif] ──► [Extraction] ──► [Maskeleme / Sentez] ──► [Hazırlama]        │
│    ▲                                                        │             │
│    │                                                        ▼             │
│ [Şema Drift] ◄────────────────────────────────────── [Kaldırma / TTL]    │
└──────────────────────────────────────────────────────────────────────────┘
  • Keşif ve sınıflandırma: Yapılandırılmış tablolar ve iç içe JSON içinde şemaları, ilişkileri ve hassas kişisel verileri otomatik bulmak.
  • Extraction ve alt kümeleme: Terabaytlarca veriyi kopyalamadan karmaşık ilişkisel grafiklerin referans bütünlüğü korunmuş dilimlerini çıkarmak.
  • Veri maskeleme ve kimliksizleştirme: Veri biçimini, ilişki tutarlılığını ve iş gerçekliğini korurken hassas müşteri verisini geri döndürülemez biçimde anonimleştirmek.
  • Sentetik veri üretimi: Üretim verisinin olmadığı veya kullanılamadığı durumda matematiksel olarak tutarlı, gerçekçi veri kümeleri oluşturmak.
  • Hazırlama ve teslim: Yalıtılmış test veritabanlarını CI/CD pipeline’larına ve geliştirici sandbox’larına talep üzerine sunmak.
  • Sıfırlama, yalıtım ve kaldırma: Testleri temiz, bağımsız ortamlarda çalıştırmak ve iş bittiğinde kaynakları otomatik sonlandırmak.

Tek cümlede TDM: Her test çalışması için doğru, güvenli ve yalıtılmış test verisini talep üzerine erişilebilir kılma disiplinidir.


2. Modern mühendislik için TDM neden kritik?

Sektör araştırmaları manuel ve plansız test verisi hazırlığının yüksek hızlı organizasyonlarda sürdürülemez olduğunu gösterir:

  1. Flaky test’leri ve false positive’leri azaltır: Test veritabanları drift’e uğradığında veya paralel işler tarafından kirletildiğinde testler rastgele bozulur. TDM deterministik baseline sağlar; hata gerçek regresyonu işaret eder.
  2. QA ve mühendislik zamanını geri kazandırır: Ekipler sprint zamanının büyük bölümünü veri hazırlamaya ayırırken otomatik TDM, günler süren DBA ticket’larını saniyeler içinde tekrarlanabilir hazırlamaya dönüştürür.
  3. Test depolama maliyetini düşürür: Staging’de çok terabaytlı üretim klonları tutmak block storage ve egress maliyeti yaratır. Graf farkındalıklı alt kümeleme bunların yerine 50–500 MB boyutunda referans bütünlüklü veri kümeleri kullanabilir.
  4. Zero-trust uyumluluğu güçlendirir: Ham üretim verisini CI’a veya geliştirici laptop’ına kopyalamak GDPR, KVKK ve CCPA riski yaratır. Modern TDM maskelemeyi doğrudan altyapı sınırının içinde uygular.

3. Üretim kalitesinde test verisinin dört özelliği

Özellik Gereksinim Olmadığında ne olur?
1. Kapsam Edge case’leri, sınır koşullarını, boş durumları ve long-tail dağılımları kapsar. Testler happy path’ten geçer, sıra dışı üretim durumlarında bozulur.
2. Referans tutarlılığı Primary/foreign key hiyerarşilerinde, parent-child cascade’lerinde ve sanal ilişkilerde bütünlük korunur. Sorgular FOREIGN KEY ihlali veya orphan kayıtlarla başarısız olur.
3. Güncellik ve drift güvenliği En son üretim şemasını, kolon tiplerini ve iş mantığı biçimlerini yansıtır. Test staging’de geçer, üretim deployment’ında bozulur.
4. Yalıtım Her test kendi bağımsız sandbox’ında, durum sızıntısı olmadan çalışır. Paralel CI işleri birbirinin kayıtlarını değiştirerek zincirleme flaky test üretir.

4. Beş gerçek test verisi tuzağı

┌─────────────────────────────────────────────────────────────────────────┐
│                     Yaygın Test Verisi Hataları                         │
├────────────────────────────┬────────────────────────────────────────────┤
│ 1. Ortam drift'i           │ "Staging'de çalışır, üretimde çöker."      │
│ 2. Test çakışması          │ Test A kullanıcı açar, Test B siler.       │
│ 3. Hardcoded fixture       │ "testuser@example.com zaten var"           │
│ 4. Üretim verisi sızıntısı │ Ham PII CI runner veya laptop'a çıkar.     │
│ 5. Tekrarlanamayan durum   │ İlk çalışma geçer, ikincisi bozulur.       │
└────────────────────────────┴────────────────────────────────────────────┘

Tuzak 1: Ortamlar arası tutarsızlık

Test yerelde geçer, ancak staging üç sprint önce manuel değiştirilmiş veri tuttuğu için CI’da bozulur. Otomatik senkronizasyon ve hazırlama yoksa ortamlar kaçınılmaz olarak birbirinden uzaklaşır.

Tuzak 2: Paylaşılan durum çakışması

Birden fazla CI pipeline’ı veya QA mühendisi tek staging veritabanını paylaşır. Pipeline A, Müşteri #42 ile checkout testi yaparken Pipeline B aynı müşteriyi soft-delete eden deaktivasyon testi başlatır. Pipeline A açıklanamayan hatayla başarısız olur.

Tuzak 3: Hardcoded fixture borcu

# Otomasyon paketinde saatli bomba
user_email = "qa_automation_user_99@company.com"
customer_id = "cust_01HXYZ789"

İlk çalışmada kayıt oluşturulur. Sonraki çalışmada veya paralel thread’de unique constraint ihlali meydana gelir: duplicate key value violates unique constraint.

Tuzak 4: Üretim verisine bağımlılık ve mevzuat riski

“Gerçekçi senaryolar için üretim verisi gerekli” argümanı sık duyulur. Ham üretim veritabanını staging’e veya laptop’a taşımak GDPR, KVKK, CCPA/CPRA ve SOC 2 kontrollerini ihlal edebilir. Test depolamasındaki tek sızıntı gerçek kredi kartı, parola, kimlik numarası veya sağlık kaydını açığa çıkarır.

Tuzak 5: Tekrarlanamayan durum değişimi

Test bir siparişi PENDING durumundan COMPLETED durumuna geçirir. Veritabanı değiştirilemez baseline’dan otomatik sıfırlanmadığı için aynı test ikinci çalışmada hemen bozulur.


5. Test verisi spektrumu

Olgun TDM stratejisi test katmanına göre farklı veri türlerini birleştirir:

                    TEST VERİSİ SPEKTRUMU
┌──────────────┬──────────────┬──────────────────┬─────────────────┐
│ Statik Veri  │ Dinamik Veri │ Maskeli Üretim   │ Sentetik Veri   │
│ Lookup/Enum  │ Runtime      │ Alt küme +       │ AI / Model      │
│ DTO          │ Generator    │ Anonimleştirme   │ Üretimi         │
└──────────────┴──────────────┴──────────────────┴─────────────────┘
 [Unit Test] ───────────────────────────────────► [E2E / Ölçek / CI]
  1. Statik referans verisi: Ülke, para birimi, rol ve vergi dilimi gibi değişmeyen lookup tabloları.
  2. Dinamik bellek içi veri: Yalıtılmış unit test için Faker benzeri kütüphanelerle çalışma anında oluşturulan veri.
  3. Maskelenmiş üretim alt kümeleri: Referans grafiğiyle çıkarılmış ve deterministik maskelemeyle temizlenmiş gerçek kayıtlar. Karmaşık iş davranışının önemli olduğu integration, E2E ve regresyon için uygundur.
  4. Sentetik veri: İstatistiksel algoritma veya üretken modelle oluşturulan veri. Üretim verisinin henüz olmadığı özellikler, load test ve katı gizlilik sınırları için uygundur.

6. Temel TDM stratejileri: Subsetra Ark yaklaşımı

Geleneksel TDM ağır, monolitik kurumsal paketlere veya kırılgan shell script’lerine dayanıyordu. Subsetra Ark, CLI, API ve modern web arayüzüyle çalışan bulut-native, geliştirici odaklı bir platform sunar.

[ Üretim DB (PostgreSQL / MySQL) ]
                   │
                   ▼
┌─────────────────────────────────────────────────────────────┐
│ Ark Agent (Müşteri VPC Sınırı İçinde)                       │
│                                                             │
│ 1. Kanıt Odaklı PII Keşfi (L0 Regex ──► L3 Yerel LLM)       │
│ 2. VPC-İçi Statik Maskeleme                                 │
│ 3. Graf Farkındalıklı Referans Alt Kümeleme                 │
│ 4. Federated Sentetik Veri Üretimi (Synthgen)               │
└─────────────────────────────────────────────────────────────┘
                   │
                   ▼  (ark-cli testenvs create --ttl 30m)
┌─────────────────────────────────────────────────────────────┐
│ Geçici Docker Test DB Container'ları                        │
│ • Maskeli, referans bütünlüklü küçük veri kümesi             │
│ • Business Objects: domain bağlamı                           │
│ • Anchors: deterministik başlangıç durumu                    │
│ • TTL sonunda otomatik kaldırma                              │
└─────────────────────────────────────────────────────────────┘

1. Graf farkındalıklı referans alt kümeleme

Ark’ın ilişkisel graf engine’i foreign key’leri, composite key’leri ve uygulama düzeyindeki sanal ilişkileri izler. 100 aktif premium hesap gibi hedef sorgudan başlayarak ilgili sipariş, işlem, audit log ve ayarları çıkarır. Veri hacmini büyük ölçüde azaltırken referans bütünlüğünü korur.

2. Kanıt odaklı VPC-içi PII keşfi ve maskeleme

Ark’ın sınıflandırma engine’i müşteri VPC’sinde çalışır:

  • L0–L1: Hızlı regex kataloğu, kolon heuristics ve örnek veri sözlükleri.
  • L2–L3: Müşteri notları, serbest metin ve iç içe JSON gibi bağlamsal PII için yerel RAG embedding’leri ve Ollama LLM değerlendirmesi.
  • VPC-içi maskeleme: Deterministik substitution, format koruyan şifreleme, hashing ve nulling. Ham üretim kayıtları ağdan çıkmaz.

3. Federated sentetik veri üretimi (synthgen)

Üretim verisinin olmadığı yeni özelliklerde veya gizlilik kuralının gerçek kayıttan türetmeyi yasakladığı durumda Ark’ın gömülü synthgen engine’i şemayı yerelde profiller; kolon korelasyonlarını, dağılımları ve foreign key bağlarını koruyan, kimliği belirlenemez veri kümeleri üretir.

4. Ark Business Objects

Ark yalnızca satır sayısı istemek yerine test veri kümesini iş terimleriyle tanımlamayı sağlar. Örneğin “aktif aboneliği ve son üç aylık faturalama geçmişi olan müşteri”. Bu tanım kesin ve tekrarlanabilir extraction planına derlenir.

5. Ark Anchors

Doğru müşteriyi içeren alt küme, testin istediği kesin durumda olmayabilir. Üç başarısız girişten sonra kilitli hesap veya iade bekleyen sipariş gerekebilir. Ark Anchors, veritabanı açılışında çalışan sürüme sabit, idempotent SQL fixture’larıyla başlangıç durumunu deterministik olarak kurar.

6. Otomatik kaldırılan geçici test ortamları

# CI pull request'i için yalıtılmış, maskelenmiş PostgreSQL veritabanı hazırlayın
ark-cli testenvs create \
  --dataset billing-regression-subset \
  --db-type postgres \
  --ttl 20m \
  --wait

CLI yalıtılmış DSN döndürür. Test paketi bittiğinde veya TTL dolduğunda Ark container’ı ve kaynaklarını kaldırır.


7. Ark ve geleneksel kurumsal TDM araçları

Yetenek Geleneksel TDM Subsetra Ark
Mimari ve deployment Ağır on-prem appliance, özel storage mount ve karmaşık kurulum Bulut-native kontrol düzlemi + VPC-içi ark-agent
Veri gizliliği Sağlayıcı ağ erişimi veya karmaşık SAN replikasyonu gerekebilir Yürütme VPC içinde; ham satırlar müşteri sınırından çıkmaz
PII sınıflandırma Manuel regex ve kırılgan pattern tabloları L0 regex’ten yerel LLM’e katmanlı otomasyon
Alt kümeleme Temel tablo filtresi ve manuel script Sanal foreign key destekli graf traversal
Sentetik veri Kural tabanlı string değiştirme İstatistiksel dağılım doğrulamalı gömülü synthgen
Geliştirici deneyimi Ağır GUI ve ticket tabanlı hazırlama ark-cli, REST/gRPC, Go/JS SDK ve CI entegrasyonu
Ortam teslimi Uzun ömürlü staging veya NFS mount TTL’li, tek kullanımlık Docker DB container’ları
Senaryo fixture’ları Plansız harici SQL script’leri Sürümlenmiş Business Objects ve Anchors

8. Uçtan uca modern TDM iş akışı

1. ANALİZ ET VE KEŞFET
   └── Agent katalog tarar, yerel modellerle PII sınıflandırır.

2. YÖNETİŞİM VE BUSINESS OBJECTS TANIMLA
   └── Güvenlik maskeleme politikasını, QA kapsamı onaylar.

3. VPC İÇİNDE ÇIKAR VE MASKELE
   └── Ark FK grafiğini izler, satırları alt kümeler ve hassas veriyi maskeler.

4. SNAPSHOT VE PAKETLEME
   └── VPC-içi MinIO/S3 üzerinde değiştirilemez Golden Snapshot oluşturur.

5. TALEP ÜZERİNE HAZIRLA
   └── CI, `ark-cli testenvs create` ile geçici DB başlatır ve testleri çalıştırır.

6. OTOMATİK KALDIR VE DENETLE
   └── TTL sonunda container yok edilir; denetim metadata'sı kaydedilir.

Sonuç: Kötü veriyi debug etmeyi bırakın

Test otomasyonu yalnızca onu besleyen veri kadar güvenilirdir. Sürekli teslimat hızlanırken ekipler flaky staging’in, hardcoded fixture’ların veya mevzuata aykırı üretim kopyalarının gizli vergisini taşıyamaz.

Subsetra Ark, otomatik PII keşfi, graf farkındalıklı alt kümeleme, sentetik veri üretimi ve geçici veritabanı hazırlamayı birleştirerek test kodu ile test verisi arasındaki boşluğu kapatır.

Sonuç: Güvenebileceğiniz yeşil build’ler, daha kontrollü gizlilik riski ve daha hızlı teslimat döngüleri.


Kaynaklar ve sektör araştırmaları

  1. Capgemini, Sogeti ve OpenText: World Quality Report — test verisi darboğazları, manuel hazırlık süresi ve kalite mühendisliğinde veri gizliliği üzerine küresel araştırma.
  2. Gartner Research: Market Guide for Test Data Management ve shift-left kalite araştırmaları — sentetik veri, veritabanı sanallaştırma ve gizlilik koruyan otomasyon analizi.
  3. ISTQB®: CTFL ve CT-AI müfredatı — test verisi tasarımı, test ortamı yönetimi ve deterministik senaryo yürütme standartları.
  4. EDPB ve KVKK rehberleri: GDPR ve 6698 sayılı KVKK kapsamında pseudonymisation ve üretim dışı verinin güvenli işlenmesi.
  5. Continuous Quality ve DevOps araştırmaları: CI/CD test flakiness, false-positive triage yükü ve referans alt kümeleme ile maliyet optimizasyonu çalışmaları.

Test verisi stratejinizi geliştirmeye hazır mısınız?