Hizmet · Modernize et & işlet

Ölçebileceğiniz kalite, umut ettiğiniz değil.

CI hattına gömülü test otomasyonu, performans ve güvenlik testleri — böylece her sürüm kendi kanıtını taşır.

QA & TestNeler yapıyoruz
01Otomasyon mimarisi
02Performans testi
03Güvenlik testi
04Keşif ve sürüm QA'sı
Nasıl ilerler
  1. Denetim
  2. Temel
  3. Kapsam genişletme
  4. İşlet & devret
Neden var

Test paketinin şekli önemlidir.

Manuel regresyon testi, her sürümle birlikte büyüyen bir vergidir — ve yine de bazı şeyleri kaçırır. Görülmesi daha zor olan ikinci bir maliyeti vardır: test turu bir hafta sürdüğü için sürümler paketlenir ve sürümler paketlendiği için her biri daha fazla risk taşır, bu da herkesin daha uzun bir test turu istemesine yol açar. Teslimatın sonundaki bu kuyruk, kuruluşun üç ayda bir sürüm çıkarmasının genellikle sebebidir ve o kuyruğun içinde harcanan hiçbir çaba bunu düzeltmez.

Testi bir mühendislik sistemi olarak kurarız: CI'da hızlı otomatik test paketleri, insanların üstün olduğu yerlerde keşif testi, kullanıcılar fark etmeden önce performans ve güvenlik kontrolleri. Testler, kodu yazan mühendisler tarafından, aynı depoda yazılır, aynı şekilde gözden geçirilir ve bir fazın sonunda değil her değişiklikte çalışır. Önemli olan ölçüt kapsam yüzdesi değildir — kaçak oranıdır: canlı ortama ulaşan hata sayısı ve o hataların ortak yanı.

Piramit önemlidir: çok sayıda hızlı birim testi, daha az sayıda API testi, uçtan uca testlerden oluşan ince bir kabuk — ters dönmüş piramitler, test paketlerinin silinmesinin sebebidir. Bir saat süren ve alakasız nedenlerle başarısız olan bir paket güvenlik ağı değildir; insanların etrafından dolaşmayı öğrendiği bir gişedir.

Nasıl çalışırız

Dört yetkinlik, bu sırayla kurulur.

Önce otomasyon, çünkü diğer her şey insanların güvendiği bir test paketine bağlıdır. Ardından performans ve güvenlik kapıları gelir; tekrar eden kısmı makine devraldığında insan dikkatini harcayacağınız yer ise nitelikli keşif testidir.

01

Otomasyon mimarisi

Doğru oranlanmış, CI'da çalışan ve kimsenin atlamak istemeyeceği kadar hızlı birim, API ve E2E test paketleri. Mimari, her davranışın bir kez nerede test edileceğine karar verir — iş kuralları birim seviyesinde, sözleşmeler API seviyesinde ve yalnızca bunu hak eden akışlar uçtan uca. Test verisi her çalıştırma için üretilir ve yalıtılır, çünkü paylaşılan sabit veri kümeleri, bir paketin büyüdükçe güvenilmez hâle gelmesinin en yaygın sebebidir.

02

Performans testi

Gerçek trafikten çıkarılan yük profilleri, k6 veya Gatling senaryoları ve önemli gecikmeler üzerinde regresyon kapıları. Zirveyi yuvarlak bir sayıdan değil kendi erişim kayıtlarınızdan modeller, nerede çöktüğünü bulmak için sistemi provada bilinçli olarak kırar ve ardından gelecekteki bir değişikliğin düzeltmeyi sessizce geri almaması için bir kapı koyarız. Sonuçlar ortalama olarak değil, kullanıcıların gerçekten hissettiği yüzdelik dilimde raporlanır.

03

Güvenlik testi

CI hattında SAST ve DAST ile birlikte bağımlılık ve gizli anahtar taraması — rutin ihlalleri önleyen rutin hijyen. Bulgular, önceden mutabık kalınan bir önem derecesi politikasıyla sınıflandırılır; böylece hat önemli olanda durur, geri kalanını kayda geçirir ve herkesin görmezden gelmeyi öğrendiği bir kırmızı duvar üretmez. Daha derin çalışmalar — tehdit modelleme, sızma testi — bunu Siber Güvenlik hizmetimizle birleştirir.

04

Keşif ve sürüm QA'sı

Otomasyonun yapamadığını nitelikli insanların yoklaması: iş akışları, sınır durumları ve “bu tuhaf” sezgisi. Oturumlar görev tanımına dayalı ve süre sınırlıdır; notlar her bulguyu ya bir hataya ya da yeni bir otomatik teste dönüştürür. Deneyimli test uzmanları yerlerini burada hak eder — otomatik bir paket zaten aklınıza geleni kontrol eder, keşif testi ise aklınıza gelmeyeni bulmanızı sağlar.

Uygulamada

İş günlük olarak nasıl yürür?

01

Bir test paketinin ayakta kalıp kalmayacağını oranlar belirler.

Devraldığımız her başarısız test paketi aynı biçimdeydi: ince bir birim testi tabanı, API seviyesinde neredeyse hiçbir şey ve tüm ispat yükünü taşıyan yüzlerce tarayıcı testi. Bu biçim yavaş, kırılgan ve teşhisi pahalıdır; bu yüzden er ya da geç “geçici olarak” devre dışı bırakılır. Oranları bilinçli olarak yeniden kurarız. İş kuralları yaşadıkları yerde, milisaniyeler içinde test edilir. Servisler arası sözleşmeler, bir hatanın sorumluyu adıyla gösterdiği API seviyesinde test edilir. Uçtan uca testler, asla bozulmaması gereken az sayıda akışa ayrılır ve her biri çalışma süresini haklı çıkarmak zorundadır. Hedef, CI'da bir geliştiricinin sabrının sınırını aşmayan bir test paketidir.

  • Her davranış bir kez, onu kanıtlayabilecek en ucuz seviyede test edilir
  • Servisler arası sözleşme testleri, entegrasyon kırılmasını ortam kurulmadan önce yakalar
  • Test verisi her çalıştırma için üretilir ve yalıtılır — üç paketin sessizce bağlı olduğu paylaşımlı veri kümesi yok
  • Paket çalışma süresi bir bütçe olarak ele alınır; en yavaş testler diğer performans sorunları gibi incelenir
02

Kararsız bir paket, hiç paket olmamasından kötüdür.

Kırmızı bir derlemenin hiçbir anlama gelmeyebileceği an, test paketi kanıt olmaktan çıkar. İnsanlar önce yeniden çalıştırır, sonra görmezden gelir, sonra üzerinden birleştirir — ve kuruluş, pahalı bir ek adımla birlikte manuel teste geri döner. Bu yüzden kararsızlık bir ruh hâli değil, bir politika olarak ele alınır. Aralıklı olarak başarısız olan bir test, hattı tıkamayı bıraksın diye ilk kararsızlıkta karantinaya alınır ve sprint içinde düzeltilir ya da silinir. Silmek meşru bir sonuçtur: kimsenin düzeltmeyeceği güvenilmez bir test bir yüktür ve aksini varsaymak paketleri çürüten şeydir. Karantina sayıları kalite panosunda görünür, böylece borç sessizce birikemez.

  • İlk kararsızlıkta karantina — düzeltme planlanırken hat güvenilir kalır
  • Sprint içinde düzelt ya da sil; karar kayda geçer
  • Belirsizliği gizlemek için asla yeniden deneme kullanılmaz; bunun yerine sebep bulunur
  • Karantina sayısı kapsam ve kaçak oranıyla birlikte raporlanır; böylece kimse başka yöne bakamaz
Test aralıklı başarısız oluyorİlk kararsızlıkta karantina, sahip atanır
Karantinadaki test sprint sonunda çözülmediSilinir, boşluk risk haritasına işlenir
Paket süresi mutabık kalınan bütçeyi aşıyorYeni test eklenmeden önce en yavaşlar incelenir
Hata canlı ortama kaçıyorKaçak analizi, ardından onu yakalayacak seviyede bir test
03

Provada kırın ki zirve sessizce geçsin.

Performans çalışması, kimsenin türetmediği bir hedeften başladığında başarısız olur. Yük profilini kendi trafiğinizden kurarız — uç nokta dağılımı, okuma-yazma oranı, günlük ve mevsimsel zirvenin biçimi — sonra bir şey çökene kadar bunun ötesine yükleniriz, çünkü işe yarayan bilgi sistemin nerede kırıldığı ve önce neyin kırıldığıdır. Bu genellikle bir veritabanı bağlantı havuzu, gereksiz konuşkan bir sorgu veya zaman aşımı olmayan bir alt servistir. Her bulgu düzeltilir, ardından hattaki bir regresyon kapısıyla sabitlenir; böylece iyileşme sonraki özellik çalışmalarına dayanır. Prova, zirve sürprizsiz geçene kadar tekrarlanır.

  • Yük profili gerçek trafikten modellenir; yalnızca sayfa görüntülemeleri değil, yazma dağılımı da dâhil
  • Sabit yükün yanı sıra dayanıklılık ve ani yük testleri — her birinde farklı arızalar yaşar
  • Gecikme p95 ve p99'da raporlanır; yavaş yol tahmin edilmez, izlenir
  • Önemli akışlarda regresyon kapıları; böylece gelecekteki bir değişiklik yapılanı sessizce geri alamaz
04

Kaçak analizi, olayları teste dönüştürür.

Kapsam yüzdesi zayıf bir sinyaldir — size neyin çalıştırıldığını söyler, neyin kontrol edildiğini değil. Yönettiğimiz sayı kaçak oranıdır: canlı ortama ulaşan hatalar, ortak yanlarına ve yakalanmaları gereken seviyeye göre sınıflandırılır. Her kaçak, o seviyede bir test üretir; kaçaklar arasındaki örüntü de risk haritasının nerede yanlış olduğunu gösterir. Hiç testi olmayan bir kod tabanında bir paket de böyle kurulur: bozulduğunda acıtan akışların etrafına karakterizasyon testleri, ardından kimsenin iki kez bütçelemediği ayrı bir kalite projesinde değil, her değişiklikle birlikte büyüyen bir kapsam.

  • Canlı ortamdaki her hata sınıflandırılır: onu neyin kaçırdığı ve hangi seviyede yakalanması gerektiği
  • Düzeltme kapanmadan önce o seviyede bir test yazılır
  • Risk haritası, hangi modülün kırılgan hissettirdiğine dair görüşle değil örüntüyle güncellenir
  • Kaçak oranı zaman içinde izlenir
EscapeMissed byTest added
Yeniden denemede indirim iki kez uygulandıIdempotency testi yokBirim
Bir kiracıda dışa aktarım boşTek kiracılı test verisiAPI sözleşmesi
Zirvede ödeme zaman aşımıYük profili yokPerformans kapısı
Önbellek temizliği sonrası eski fiyatTest edilmemiş sınır durumuEntegrasyon
Rollere göre

Masanın her tarafı ne kazanır.

Mühendislik

Her değişiklikte çalışacak kadar hızlı bir paket.

Geliştiriciler; kodun yanında duran, hızlı çalışan ve okuyabilecekleri bir sebeple başarısız olan testler edinir. Sözleşme testleri, entegrasyon kırılmalarını bir ortam kurulmadan önce yakalar; karantina politikası sayesinde kırmızı bir derleme hâlâ bir şey ifade eder. Test yazmak, bir işin sonundaki ayrı bir görev olmaktan çıkar ve değişikliğin yapılma biçiminin parçası hâline gelir.

  • Tüm paket, mutabık kalınan CI süre bütçesi içinde
  • Hatalar seviyeyi ve olası sebebi adıyla gösterir
  • Test verisi her çalıştırmada üretilir, varsayılan olarak yalıtılır
Ürün & sürüm

Kendi kanıtını taşıyan bir sürüm.

Her aday sürüm; test sonuçları, performans karşılaştırması ve tarama çıktısı ekli olarak gelir, böylece sürüm kararı bir pazarlık değil bir okuma olur. Keşif oturumları, sürümdeki değişikliklere karşı görev tanımına dayalı yürütülür ve notları ya hataya ya da yeni otomatik testlere dönüşür. Otomatik kanıt olmadan hiçbir şey yayına alınmaz.

  • Sürüm raporu elle derlenmez, hat tarafından üretilir
  • Gerçekten değişene odaklanmış keşif görev tanımları
  • Bilinen sorunlar sonradan keşfedilmez; önem derecesi ve kararla listelenir
Güvenlik

Her commit'te çalışan hijyen.

Statik analiz, bağımlılık ve konteyner taraması, gizli anahtar tespiti ve çalışan bir derlemeye karşı dinamik test; üzerinde mutabık kalınmış bir önem derecesi politikasına sahip hat adımlarıdır. Kritik bulgular hattı durdurur; geri kalanlar bir sahip ve tarihle kaydedilir. Değer rutinde yatar: birçok ihlal, kimsenin gözlemediği sıradan bir şeyle başlar ve her commit'te çalışan bir tarama, sıradan şeylerin fark edilme yoludur.

  • Hat adımı olarak SAST, DAST, bağımlılık, konteyner ve gizli anahtar taraması
  • Kapının inandırıcı olması için önceden mutabık kalınan önem derecesi politikası
  • Bulgular iş olarak takip edilir; ham sayı yerine eğilim raporlanır
Yönetim

Kalite bir tartışma değil, bir eğilim.

Kalite panosu; kaçak oranını, kapsam eğilimini, paket çalışma süresini ve karantina sayısını tek yerde raporlar ve hat tarafından güncellenir. Yöneticilerin gerçekten sorduğu soruyu yanıtlar — bu iyileşiyor mu — ve işi atlamanın maliyetini görünür kılar. Ayrıca QA'nın darboğaz olup olmadığına dair tekrar eden tartışmayı ortadan kaldırır, çünkü sayılar teslimat süresinin nereye gittiğini gösterir.

  • Ana ölçüt olarak kaçak oranı, zaman içindeki eğilimiyle
  • Paket çalışma süresi ve karantina sayısı kapsamla birlikte raporlanır
  • Sürüm sıklığı kalite eğilimine karşı izlenir; böylece ödünleşim açık olur
Kapsam

Her çalışmaya neler dâhildir ve neler kod tabanınıza bağlıdır.

CapabilityEvery engagementDepends on your codebase
Kaçak analizi ve risk haritası—
CI test altyapısı ve raporlama
Birim ve API/sözleşme paketleri
Kritik akışlarda uçtan uca paketlerAkışlar sizinle belirlenir
Test verisi üretimi ve ortam yalıtımı
Kararsız test karantina politikası ve araçları—
Performans modelleme ve yük provasıTrafik verisi gerekir
Performans regresyon kapılarıAkış başına
SAST, DAST, bağımlılık ve gizli anahtar taraması
Sızma testi ve tehdit modelleme—Siber Güvenlik ile
Keşif testi oturumlarıSıklık belirlenir
Devir sonrası gömülü QA ekibi—Opsiyonel
Uygulama

Dört faz, sonrasında sahibi sizin mühendisleriniz.

01

Denetim

Mevcut kapsam, kaçak analizi (hangi hatalar canlı ortama ulaştı ve neden) ve risk haritası. Ekibin nereyi kırılgan hissettiğine güvenmek yerine son dönemin olaylarını ve hatalarını okur, mevcut paketin zaman ve güven olarak gerçekte ne kadara mal olduğunu ölçer ve bir testin kendini nerede amorti edeceğine dair sıralı bir liste üretiriz. Bu fazdan çıkan risk haritası, sonrasındaki her şeyi yönlendirir.

02

Temel

CI test altyapısı, ilk yüksek değerli test paketleri ve kararsız test karantinası disiplini. Test verisi üretimi, ortam yalıtımı ve bir hatayı okunabilir kılan raporlama önce gelir, çünkü paketin büyüyeceğini mi çürüyeceğini mi belirleyen bunlardır. İlk paketler, haritadaki en yüksek riskli akışların etrafına kurulur; hiç testi olmayan bir kod tabanı karakterizasyon katmanını da böyle edinir.

03

Kapsam genişletme

Test paketleri risk haritası boyunca büyütülür; hatta performans ve güvenlik kapıları eklenir. Kapsam ayrı bir projede değil, işin kendisiyle birlikte genişler — her değişiklik kendi testlerini taşır, her kaçak bir tane daha ekler. Yük profili bu fazda modellenir ve prova edilir; sonuçları sabitleyen kapılar, temel değerler kararlı hâle gelince devreye alınır.

04

İşlet & devret

Kalite panoları, kaçak oranı takibi ve mühendislerinizin yayına aldıkları testlerin sahibi olması. Devir boyunca eşli çalışır, paketi dürüst tutan politikalarda mutabık kalır — çalışma süresi bütçesi, karantina kuralı, önem derecesi eşikleri — ve zirveler için hazırda bekleriz. Müşteri tercih ederse gömülü bir QA ekibi kalır, ancak tasarım bağımsızlığı varsayar.

Ne alırsınız

Sonunda elinizde olanlar.

  • CI'da çalışan otomatik test paketleri ve kapsam raporları
  • Performans test senaryoları ve gecikme temel değerleri
  • Hatta entegre edilmiş güvenlik taraması
  • Kararsız test politikası ve karantina araçları
  • Kalite panosu: kaçak oranı, kapsam eğilimi, paket çalışma süresi
  • Gerçek olay geçmişine bağlı, güncel tutulan bir risk haritası
  • Test uzmanlarınızın sürdürebileceği keşif görev tanımları ve oturum notları
Şunlarla çalışır
PlaywrightCypressJestPyTestk6GatlingOWASP ZAPSonarQubeGitHub ActionsAllure
Uygunluk

Bu ne zaman doğru tercih.

Doğru tercih

Sürüm tarihini işin kendisi değil test turu belirliyorsa, aynı sınıftan hatalar canlı ortama ulaşmayı sürdürüyorsa veya kırmızı bir derleme artık kimse için bir şey ifade etmiyorsa bunu seçin. Bilinen bir zirveden önce — bir kampanya, mevsimsel bir yük, düzenleyici bir son tarih — sistemi provada kırıp çökeni düzeltmeye hâlâ vakit varken seçin. Değiştirmeye korktuğunuz bir kod tabanını devraldığınızda da doğru ilk adımdır: Legacy Yeniden Mühendislik veya bir modernizasyon programını güvenle başlatılabilir kılan şey karakterizasyon testleridir. DevOps & Cloud ile yakından eşleşir, çünkü devreye almayı rutin hâline getiren şey güvenilir bir test paketidir.

Başka yere bakın

Ürün henüz biçimini bulmadıysa yanlış bir yatırımdır. Ürünü isteyen biri var mı diye hâlâ test eden bir ekip, sağlam temellerle bir MVP çıkarmalı ve cevap evet olduğunda derinlik eklemelidir; gelecek ay değişecek bir tasarımın üzerine kurulan ağır uçtan uca kapsam, silinmeye mahkûm bir iştir. Kuruluş, canlı ortamda daha az hata yerine raporlayacak bir kapsam sayısı istiyorsa da yanlış tercihtir — kapsam üretilebilir ve bir hedefi karşılamak için yazılan bir paket kimseye bir şey öğretmez. Asıl sorun devirden sonra kalitenin sahibinin olmamasıysa, bunu baştan söyleyin: çürüyen bir paket teslim etmektense devri tasarlamayı tercih ederiz.

SSS

Sık sorulan sorular

Evet — önce kritik akışların etrafına karakterizasyon testleri, ardından her değişiklikle büyüyen birim kapsamı. Karakterizasyon, sistemin bugün ne yaptığını tuhaflıklarıyla birlikte sabitlemek demektir; böylece bir yeniden düzenleme, dokümantasyona değil gerçek davranışa göre değerlendirilebilir. Zamanla paket taşıyıcı hâle gelir: insanlar kodu testlere rağmen değil, testler neyi bozduklarını söylediği için değiştirir.
Onları geliştiririz. Manuel test uzmanları otomasyon mühendisine ve keşif uzmanına dönüşür; deneyimimize göre daha iyi otomasyon mühendisleri olurlar, çünkü ürünün sınır durumlarını nerede sakladığını zaten bilirler. Otomatikleşen tekrarlı kısımdır, insanlar değil. Bir ekip sahada kalmak istediğinde keşif ve sürüm QA'sı, süreçte kalıcı yeri olan nitelikli bir iştir.
İlk kararsızlıkta karantina, sprint içinde düzelt ya da sil ve çalışma süresi bütçeleri. Kararsız bir paket, hiç paket olmamasından kötüdür; çünkü insanlara kırmızıyı görmezden gelmeyi öğretir ve bu alışkanlık bir kez yerleşince geri çevirmek çok zordur. Yeniden denemeler bir çözüm değildir — genellikle test verisinde, zamanlamada veya paylaşılan durumda gerçek bir hata olan belirsizliği gizlerler. Karantina sayısı panoda durur, böylece borç sessizce birikemez.
Bu klasik bir çalışmadır: zirveyi kendi trafiğinizden modelleyin, sistemi provada kırın, çökeni düzeltin, tekrarlayın. Mümkün olduğunca erken başlayın, çünkü düzeltmeler genellikle yapılandırma değil mimari düzeydedir ve ilk düzeltmenin işe yarayıp yaramadığını size ikinci prova söyler.
İkisi de olabilir. Kur ve devret yaygındır: sistemi kurar, mühendislerinizle birlikte işletir ve onu dürüst tutan politikalarla devrederiz. Bazı müşteriler gömülü bir QA ekibini uzun vadeli tutar; bu genellikle sürüm sıklığının yüksek olduğu veya uyum yükünün kanıtın sürekli üretilmesini gerektirdiği yerlerdedir. Tasarım bizim kalmamıza bağlı değildir.
Kaçak oranını, paket çalışma süresini, karantina sayısını ve performans temel değerlerini yönetiriz. Kapsam yüzdesini bir hedef olarak yönetmeyiz, çünkü kolayca manipüle edilir ve kolay kısımları test etmeyi ödüllendirir. Kapsam bir eğilim olarak raporlanır ve test edilmemiş riski bulmak için kullanılır; bu, birinden yükseltmesi istenen bir sayı olmaktan farklı bir iştir.

Ne inşa ettiğinizi bize anlatın.

Bugün elinizde ne olduğunu ve neye ihtiyacınız olduğunu anlatın. Bir mühendis okur; nasıl yaklaşacağımızı ve size uyan modeli yazılı olarak iletir.

✓ Satış sunumu yok✓ AI-native bir mühendisten yanıt✓ Yazılı geri dönüş