Kayıt testinde gerçek SMS kodu yerine sahte kod (stub) kullanmak formu doğrular ama senaryonun tamamını doğrulamaz: teslimat gecikmesini, belirli bir hizmetten gelen beklenmedik kod biçimini, onay e-postasının girildiği adımdaki kopmayı yakalayamaz. Gerçek kodla yapılan çalışma, kayıt zincirinin ilk numara talebinden hesaba girişe kadar canlı olduğundan emin olmanın tek yoludur.

Gerçek Kodlu Senaryo Neden Gerekli

Sahte kod her zaman anında ve beklenen biçimde gelir; gerçekte ise durum farklıdır. Operatör teslimatı 20–40 saniye geciktirebilir, kod tek SMS yerine iki SMS olarak gelebilir, onay e-postası e-posta hizmeti tarafında moderasyon kuyruğuna takılabilir. Bu senaryoların hiçbiri sahte kodla yeniden üretilemez; oysa aylardır dokunulmamış canlı kayıt akışını en sık bozan şey tam da bunlardır.

İkinci gerekçe, entegrasyonun bütünüdür. Gerçek kodlu test yalnızca SMS ayrıştırmayı değil, tüm zinciri doğrular: API üzerinden numara talebi, kodun sizin tarafınıza ulaşması, kodun metinden çıkarılması, forma girilmesi, aktivasyonun sonlandırılması. Zincirin herhangi bir halkasındaki kopma, üretimde değil CI'da yakalanması gereken bir hatadır.

Uçtan Uca Çalıştırma Nasıl Kurulur

Senaryo üç adıma dayanır. Birincisi, hedef platformda kayıt başlamadan önce API üzerinden numara veya e-posta adresi talep etmek. İkincisi, kodu beklemek: kod anında gelmez, bu nedenle pipeline tek bir zaman aşımıyla beklemek yerine durumu sabit aralıklarla sorgular. Üçüncüsü, sonlandırma: kod forma girilir, kayıt tamamlanır, numara veya adres ise kullanılmış olarak işaretlenir; böylece artık gelmeyecek bir koda ikinci kez talep gönderilmez.

Kod bekleme zaman aşımı, olağan teslimat süresine göre bir pay bırakılarak belirlenir: kod normalde 10–15 saniyede geliyorsa pipeline'daki zaman aşımını 15 değil, 60–90 saniye olarak ayarlamak makuldür. Kod talebini tekrarlamak, ilk zaman aşımı dolduktan sonra yalnızca bir kez anlamlıdır: ikinci deneme nadir görülen operatör gecikmesini yakalar, üçüncüsü ise genellikle teslimat dalgalanmasına değil zincirdeki gerçek bir soruna işaret eder.

Neden Her Commit'in Parçası Değil de Ayrı ve Seyrek Bir Çalıştırma

Gerçek kodlu test her çalıştırmada para harcatır, çünkü numara veya adres sonuçtan bağımsız olarak hesabınızdan düşülür; ayrıca gecikmesi sizin kontrolünüzde olmayan harici bir hizmete bağlıdır. Bunu her commit'te çalıştırmak, dala yapılan her push için ödeme yapmak ve kodun değil, harici teslimat gecikmesinin yol açtığı rastgele kırmızı build'ler almak demektir.

Çalışan düzen şudur: sahte kodlu hızlı testleri her commit'te olağan pipeline'da tutun, gerçek kodlu senaryoyu ise ayrı ve seyrek bir çalıştırmaya taşıyın: sürümden önce, zamanlamaya göre günde bir kez veya ana dala birleştirmeden önce elle. Bu, olağan build'in maliyetini ve süresini şişirmeden teslimat zincirindeki gerçek gerilemeleri yakalar.

Test Verilerini Canlı Verilerden Ayırma

Otomatik testler için numaralar ve e-posta adresleri, canlı görevlerde kullanılan bakiyeyle aynı yerden değil, ayrı bir havuzdan gelmelidir: karıştırmak harcama takibini zorlaştırır ve test çalıştırmasının canlı bir süreç için ayrılmış numarayı yanlışlıkla almasına yol açma riski yaratır. Test tarafından oluşturulan hesapları ayrı bir önek veya e-posta alan adıyla işaretlemek ve zamanlamaya göre temizlemek gerekir; aksi halde test kayıtları canlı kullanıcılarla aynı tablolarda birikir ve analitiği karıştırır.

Çalıştırma Maliyetlerinin Takibi

Gerçek kodlu her çalıştırma, numara veya e-posta adresi için yapılan harcama artı pipeline'daki yürütme süresi demektir. Tek bir tam senaryonun maliyetini hesaplayıp çalıştırma sıklığıyla çarpmak gerekir: günde bir kez ayrı bir bütçe mertebesidir, aktif dalda her commit'te ise faydada orantılı artış olmadan kat kat daha yüksektir. Makul bir ölçü, gerçek kodlu seyrek çalıştırmaları gerilemeleri sürümden önce yakalayacak kadar sık, ancak CI maliyeti hizmetin kendi maliyetiyle yarışmayacak kadar seyrek tutmaktır.

Sıkça Sorulan Sorular

Sahte kodlardan tamamen vazgeçip yalnızca gerçek kodları kullanabilir miyim?

Bunun anlamı yok: sahte kod hızlıdır, ücretsizdir ve her commit'te ayrıştırma mantığını ve formu doğrulamak için uygundur. Gerçek kod, uygulama kodunu her değişiklikte test etmek için değil, entegrasyon ve teslimat sorunlarını yakalayan ayrı bir uçtan uca senaryo için gereklidir.

Kod ayrılan zaman aşımı içinde gelmezse ne yapmalıyım?

Talebi bir kez tekrarlamak makul bir ilk adımdır: rastgele operatör gecikmesini giderir. Tekrardan sonra da kod gelmezse, test pipeline'ın genel zaman aşımına kadar takılı kalmak yerine açıkça ve net biçimde başarısız olmalıdır; bu, inceleme süresinden tasarruf sağlar ve sorunun dalgalanma değil teslimat zincirinde olduğunu açıkça gösterir.

Gerçek kodlu çalıştırma ne sıklıkta yapılmalı?

Pratik seçenek, zamanlamaya göre günde bir kez ve ana dala sürüm çıkarmadan önce zorunlu bir çalıştırmadır. Böyle bir ritim gerilemeleri makul sürede yakalar ve numara ile adreslere yapılan harcamayı, aktif geliştirmedeki commit sayısına bağlamadan öngörülebilir tutar.

API tarafında numara talebinin ve kod durumu sorgulamasının nasıl işlediği API belgelerinde anlatılmıştır. İlk test çalıştırmanız için numarayı OTP bölümünden alabilirsiniz; API üzerinden durum sorgulama ilkesi ise API ile IP rotasyonu kurulurken uygulananla aynıdır. Düzenli çalıştırmaların harcamasını işlem geçmişinde takip etmek kolaydır.