05 Mar 2025·8 dk okuma

Görsel iş mantığı testi: Önce neyi otomatikleştirmeli?

Görsel iş mantığı testini öğrenin: otomasyona pratik sıra—önce iş akışları, sonra API sözleşmeleri ve model değişikliklerinden sonra bile çalışan stabil test verileri.

Görsel iş mantığı testi: Önce neyi otomatikleştirmeli?

Görsel iş mantığında genellikle neler ters gider

Görsel iş akışları mantıklı hissettirir çünkü mantığı görebilirsiniz. Yine de sık değişirler ve küçük düzenlemeler gerçek kullanıcı yollarını bozabilir. Bu yüzden görsel iş mantığı testi, kodsuz araçlarda bile önemlidir.

En sık kırılan şey iş akışının “büyük fikri” değil, küçük bağlantılardır: bir koşul ters döner ("VE" yerine "VEYA"), varsayılan değer değişir, bir adım yanlış sırada çalışır veya hata kolu atlanır. AppMaster içinde bu, bir Business Process düzenlendiğinde, Data Designer alanı yeniden adlandırıldığında veya bir API yanıtı şekli evrildiğinde görebileceğiniz bir durumdur.

Birçok hata sessizdir. Her şey dağıtılır, UI hâlâ yüklenir ama iş akışı yanlış mesajı gönderir, çoğaltmalar oluşturur veya engellenmesi gereken bir şeyi onaylar. Manuel rastgele kontroller bu problemleri kaçırır çünkü ekranlar hâlâ düzgün görünür.

Amaç her şeyi test etmeden hızlı geri bildirim almaktır. Çekirdek mantık değiştiğinde bağıran küçük bir otomatik kontrol seti istersiniz; kenar durumlar ve görsel incelikleri manuel incelemeye bırakın.

Kapsamı düşünmenin pratik yolu birbirini destekleyen üç katmandır:

  • İş akışı düzeyi testleri: önemli yolları uçtan uca çalıştırır (istek gönder -\u003e doğrula -\u003e onayla -\u003e bildirim gönder).
  • API sözleşme kontrolleri: UI ve entegrasyonların beklentileriyle giriş/çıkışların hala eşleştiğini doğrular.
  • Tekrar üretilebilir test verisi: modeller değiştikten sonra bile aynı şekilde yeniden oluşturulabilen veriler.

Örnek: bir destek uygulamasında “iade onayı” iş akışı varsa, her ekranı test etmeniz gerekmez. İhtiyacınız olan; limitin üzerindeki isteklerin her zaman bir yöneticinin onayına gitmesi, durumun doğru güncellenmesi ve e-posta veya Telegram ile gönderilen mesajın doğru alanları içermesinden emin olmaktır.

İş akışları, API'ler ve UI için basit bir test haritası

Ne test ettiğinizi (mantık) çalıştığı yerden (iş akışı, API veya UI) ayırdığınızda test etmek daha kolaylaşır. Amaç her şeyi her yerde test etmek değil. Özelliğin hâlâ çalıştığını kanıtlayan en küçük dilimi seçmektir.

"Birim tarzı" mantık kontrolleri tek bir kurala odaklanır: bir hesaplama, bir koşul, bir durum değişikliği. Hızlıdırlar ve hatanın yerini tam olarak gösterirler, ama yalnızca birden fazla adım zincirlendiğinde ortaya çıkan sorunları kaçırırlar.

İş akışı düzeyi testleri orta katmandır. Açık bir durumdan başlarsınız, gerçekçi girdiyi iş akışına gönderirsiniz ve önemli sonuçları doğrularsınız (oluşturulan kayıtlar, değişen statüler, gönderilen bildirimler, reddedilen eylemler). AppMaster'da bu genellikle Business Process'i tüm UI'yi tıklamadan uçtan uca çalıştırmak anlamına gelir.

Uçtan uca UI testleri en üsttedir. Bağlantı sorunlarını yakalayabilirler ama yavaş ve kırılgandırlar çünkü küçük UI değişiklikleri bile bunları bozar; mantık doğru olsa bile testler kırılır. Sadece UI testlerine güvenirseniz, hataları bulmaktan çok testleri düzeltmekle uğraşırsınız.

En küçük güvenilir test dilimini seçerken şu sıra iyi işler:

  • Özellik birden fazla adım veya rol içeriyorsa iş akışı düzeyi testiyle başlayın.
  • UI veya entegrasyonlar aynı endpointlere bağlıysa bir API sözleşme kontrolü ekleyin.
  • UI testlerini yalnızca 1–2 kritik kullanıcı yolu (giriş, ödeme, istek gönderme) için kullanın.
  • Karmaşık kurallar (eşikler, izinler, kenar durumlar) için birim tarzı kontroller kullanın.

Bir onay süreci için bu, Draft'tan Approved'e taşıyan bir iş akışı testi, status alanını tutarlı tutmak için bir sözleşme kontrolü ve kullanıcıların istek gönderebildiğini kanıtlayan bir UI testi olabilir.

Önce neyi otomatikleştirmeli (ve şimdilik neyi manuel bırakmalı)

Küçük bir mantık hatasının en çok zarar verdiği yerden otomasyona başlayın. Bu genellikle para, izinler veya müşteri verisiyle bağlı iş akışlarıdır. Yanlış bir işlem yanlış tutarı tahsil edebiliyorsa, bir kaydı açığa çıkarabiliyorsa veya bir kullanıcıyı kilitleyebiliyorsa, önceliklidir.

Sonra kasıtlı olarak karmaşık iş akışlarını hedefleyin: çok sayıda adım, dallanma, yeniden deneme ve entegrasyon içerenler. Demo “mutlu yol”unda kaçan bir koşul, bir API yavaşladığında, bir ödeme reddedildiğinde veya kullanıcı alışılmadık bir role sahip olduğunda gerçek bir olaya dönüşür.

Frekans da önemlidir. Günde binlerce kez çalışan bir iş akışı (sipariş oluşturma, bilet yönlendirme, şifre sıfırlama) ayda bir çalışan bir yönetici sürecinden önce otomasyon gerektirir.

Bir test yazmadan önce sonucu ölçülebilir hâle getirin. İyi bir otomatik test “görünüyor gibi” değil; "kayıt X durum Y ile sonuçlanır ve bu yan etkiler tam olarak bir kez oluşur" demelidir. AppMaster Business Process'leri için bu, girdiler, beklenen durum değişiklikleri ve beklenen çağrılar veya mesajlar olarak temizce tercüme edilir.

Önceliklendirme filtresi:

  • Yanlışsa yüksek etki (para, erişim, hassas veri)
  • Birçok dal veya dış servis içeriyor
  • Sık çalışıyor veya çok kullanıcıyı etkiliyor
  • Sonradan hata ayıklaması ağrılı (sessiz hatalar, asenkron adımlar)
  • Tek cümlede yazılabilecek net geçme/kalma koşulu

Keşifsel kontroller, görsel düzen ve hâlâ keşfedilen kenar durumlar için manuel testleri bırakın. Davranış stabil olduğunda ve herkes “başarı” anlamında anlaştığında otomatikleştirin.

Gerçek mantık hatalarını yakalayan iş akışı düzeyi testleri

İş akışı düzeyi testleri birim tarzı kontrollerin bir üstünde durur. Bir iş akışını kara kutu gibi ele alırlar: tetikleyin, sonra son durumu ve yan etkileri doğrulayın. Kullanıcıların gerçekten hissettiği kırılmaları burada yakalarsınız.

Bir tetik ve önemli bir çıktı adı vererek başlayın. Örneğin: “Bir istek gönderildiğinde, durum Pending olur ve bir onaycı bilgilendirilir.” Bu doğru kaldığı sürece küçük iç refaktörler genellikle önemli değildir.

Çıktıları değiştiren dalları kaplayın, her düğümü değil. Kısa bir set:

  • Başarı yolu (her şey geçerli, kullanıcı yetkili)
  • Doğrulama hatası (eksik alan, yanlış format, tutar aralığın dışında)
  • İzin reddi (kullanıcı görebilir ama işlem yapamaz)

Son olarak iş akışının gerçekten çalıştığını kanıtlayan yan etkileri kontrol edin: PostgreSQL'de oluşturulan veya güncellenen kayıtlar, değişen durum alanları ve kullandıysanız gönderilen mesajlar (e-posta/SMS veya Telegram).

Testleri kısa tutmanın bir deseni “tetikle, sonra çıktıları doğrula”dır:

  • Tetik: minimum girdiyi oluşturun ve iş akışını başlatın (API çağrısı, olay veya buton eylemi)
  • Nihai durum: durum, sahip/atanan, zaman damgaları
  • Yan etkiler: yeni kayıtlar, denetim (audit) girdileri, kuyruklanmış bildirimler
  • İş kuralları: limitler, gerekli onaylar, “kendi isteğini onaylayamazsın” gibi kurallar
  • Sürpriz yok: fazladan bir şey oluşturulmadı, çift mesaj yok

Burada piksel mükemmelliğinde UI kontrollerinden kaçının. Bir buton yer değiştirdiyse, iş kurallarınız değişmedi. UI nasıl görünürse görünsün, iş akışının garanti etmesi gerekenleri doğrulayın.

Her iş akışı testini bir sonuca odaklı tutun. Bir test beş kuralı ve üç yan etkiyi doğrulamaya çalışırsa okunması zor ve düzeltmesi acı verir.

Sessiz kırılmaları önleyen API sözleşme kontrolleri

Testleri değişikliklere dayanıklı hale getirin
Gereksinimler değiştikçe temiz kaynak kodu yeniden oluşturun ve testleri davranışa odaklı tutun.
Deneyin

Bir API sözleşmesi API'nizin verdiği vaattir: neyi kabul eder, ne döndürür ve nasıl hata verir. Bu vaat habersiz değiştiğinde en kötü türde hatayı alırsınız: her şey normal göründüğü sürece gerçek kullanıcı belirli bir yola geldiğinde hata oluşur.

Sözleşme kontrolleri, iş akışlarına bağlı endpointleri korumanın hızlı yoludur. İş mantığının doğru olduğunu kanıtlamazlar ama kıran değişiklikleri erken yakalarlar, UI hataları olarak görünmeden önce.

Sözleşmede neyi kilitlemelisiniz

İstemcileri sessizce bozan şeylerden başlayın:

  • Yaygın sonuçlar için durum kodları (başarı, doğrulama hatası, yasak, bulunamadı)
  • İstek ve yanıtlarda gerekli alanlar (hangileri null olabilir)
  • Alan tipleri ve formatları (sayı vs string, tarih formatı, enum değerleri)
  • Doğrulama mesajları (istikrarlı anahtar/kodlar, tam metin değil)
  • Hata şekli (hata nerede duruyor, birden fazla hata nasıl dönülüyor)

Amaçlı negatif vakaları ekleyin: gerekli alan eksik, yanlış tip gönderme ya da izin olmadan bir eylem deneme. Bu testler ucuzdur ve iş akışıyla API arasındaki uyumsuz varsayımları ortaya çıkarır.

AppMaster'da geliştiriyorsanız, model veya mantık değiştirip uygulamayı yeniden oluşturduğunuzda sözleşmeler daha da önem kazanır. Yeniden adlandırılan bir alan, sıkılaşan bir doğrulama kuralı veya yeni zorunlu bir özellik eski istemcileri kırabilir, backend sorunsuz derlense bile.

Sözleşme kontrollerini nerede çalıştırmalısınız

En az bir güvenilir yer seçin, sonra daha hızlı geri bildirim gerekiyorsa ekleyin:

  • Her değişiklik için CI'de çekirdek endpointler
  • Deploy sonrası staging'de ortam kaynaklı sorunları yakalamak için
  • Takımın yavaşlamaması için geniş kapsama alanlı gece çalışmaları

Uyumluluk beklentilerinde anlaşın. Eski istemcilerin çalışmaya devam etmesi gerekiyorsa, alan kaldırmayı veya anlam değiştirmeyi sürümlü bir değişiklik olarak ele alın, küçük bir refaktör olarak değil.

Güvenilir test verisi

İş akışı testleri yalnızca her seferinde aynı yerden başlarsa yardımcı olur. Tekrarlanabilir test verisi tahmin edilebilir, diğer testlerden izole ve önceki çalıştırmanın bugünkü sonucu etkilememesi için kolayca sıfırlanabilir olmalıdır. Birçok test çabası burada sessizce başarısız olur.

Roller ve iş akışlarınızın ihtiyaç duyduğu temel kayıtları kapsayan küçük bir seed veri seti tutun: bir Admin kullanıcı, bir Manager, standart bir Çalışan, bir Müşteri, bir aktif Abonelik ve bir “problem vakası” kaydı (ör. gecikmiş fatura). Bu seedleri testler arasında yeniden kullanın; böylece mantığı doğrulamaya zaman harcarsınız, veri yeniden icat etmeye değil.

Daha fazla test eklemeden önce ortamın nasıl temiz bir duruma döneceğine karar verin:

  • Her çalıştırmada test ortamını baştan inşa edin (yavaş, çok temiz)
  • Çalıştırmalar arasında ana tabloları truncate/wipe edin (hızlı, dikkat gerektirir)
  • Sadece her testin dokunduğu verileri yeniden oluşturun (en hızlı, yanlış yapmak en kolay olan)

Temel kontroller için rastgelelikten kaçının. Rastgele isimler, zaman damgaları ve tutarlar keşif için iyidir ama geçme/kalma karşılaştırmalarını zorlaştırır. Çeşitliliğe ihtiyaç varsa, sabit değerler kullanın (örneğin InvoiceTotal = 100.00) ve test bir kuralı kanıtlamalıysa sadece bir değişkeni değiştirin.

Ayrıca her workflow testi için minimum gerekli veriyi yazın: hangi kullanıcı rolü, hangi durum alanları ve hangi ilişkili varlıkların Business Process başlamadan önce var olması gerektiği. Bir test başarısız olduğunda, mantığın mı yoksa kurulumun mu bozulduğunu hızla anlayabilirsiniz.

Testleri model değişikliklerinden korumak

Tekrarlanabilir test kurulumları oluşturun
Test verilerinizi baştan itibaren Data Designer modeliniz etrafında sabitleyin.
Proje Oluştur

Model değişiklikleri, “iyi” testlerin ansızın başarısız olmasının bir numaralı nedenidir. Bir alanı yeniden adlandırırsınız, bir tabloyu ikiye bölersiniz, bir ilişkiyi değiştirirsiniz veya Data Designer'ı güncelledikten sonra AppMaster uygulamayı yeniden oluşturursunuz ve test kurulumları eski şekle yazmaya devam eder. Daha kötüsü, testler kırılganken yanlış şeyi kontrol ediyor gibi geçebilir çünkü kırılgan iç ID'lere dayanırlar.

Veritabanı ID'lerini veya otomatik UUID'leri hardcodlamak yaygın bir tuzaktır. Bu değerlerin iş anlamı yoktur ve veri yeniden seed edildiğinde, ortamlar yeniden inşa edildiğinde veya yeni varlıklar eklendiğinde değişebilir. Testleri e-posta, sipariş numarası veya insan tarafından okunabilir bir kod gibi stabil iş tanımlayıcılarına bağlayın.

Test verisini güncel modele göre oluşturun

Test verisini küçük bir ürün özelliği gibi ele alın. Varlıkları bugünün modeline göre oluşturan data builder'lar kullanın, geçen ayın modeline göre değil. Zorunlu bir alan eklediğinizde builder'ı bir kere güncellersiniz ve her test bundan fayda sağlar.

Küçük bir kanonik varlık seti tutun ve uygulamayla birlikte evrilmesine izin verin. Örneğin her zaman aynı rolleri oluşturun (Requester, Approver), bir departman ve bir örnek müşteri. Bu, workflow testlerini okunur tutar ve tek kullanımlık fixture yığını oluşturmayı önler.

Suitleri stabil tutacak kurallar:

  • Doğrulamalarda iç ID'ler yerine iş anahtarları kullanın (ör. employee_email).
  • Varlık oluşturmayı builder/yardımcıda merkezileştirin (alan değiştiğinde tek bir yer güncellenir).
  • Çoğu iş akışını kapsayan 5–10 kanonik kayıt muhafaza edin.
  • Seed verisinin hâlâ yüklenip yüklenmediğini doğrulayan bir migration-check testi ekleyin.
  • Zorunlu alanlar veya ilişkiler değiştiğinde hızlıca başarısız olun (açık hata çıktısı ile).

Bu migration-check testi basit ama güçlüdür: seed verisi modelle uyumlu değilse hemen öğrenirsiniz, onlarca workflow testinin kafa karıştırıcı şekilde kırılmasından önce.

AppMaster projelerinde ekstra dikkat gerektiren noktalar

AppMaster hızlı ilerlemeyi kolaylaştırır ve bu uygulamanızın hızla şekil değiştirebileceği anlamına gelir. Görsel ve model değişikliklerini "daha sonra kontrol ederiz" gibi değil, test tetikleyicisi olarak ele alın. Görsel iş mantığı testi, model değişiklikleri sırasında hataları yakalamaya yarar; kullanıcılar yakaladıktan sonra değil.

Data Designer (PostgreSQL modeli) düzenlediğinizde eski seed verisinin artık uymayabileceğini varsayın. Yeniden adlandırılan bir alan, yeni zorunlu bir kolon veya değişen bir ilişki kurulum scriptlerini kırabilir ve testlerin yanlış nedenle fail olmasına yol açar. Her veri modeli güncellemesini seed verilerini yenilemek için bir uyarı olarak kullanın ki testler temiz, gerçekçi bir başlangıç noktasından başlasın.

Business Process Editor güncellemeleri aynı disiplini hak eder. Eğer bir iş akışı değiştiyse (yeni dal, yeni statü, yeni rol kontrolü), iş akışı düzeyi testlerini hemen güncelleyin. Aksi halde yanlış bir güven hissi oluşur: testler geçiyor ama artık gerçek süreçle eşleşmiyorlar.

API'ler için endpoint değişikliklerini sözleşme snapshot'larına bağlayın. Girdiler veya çıktılar değişirse, aynı çalışma oturumunda sözleşme kontrollerini güncelleyin ki web veya mobil uygulamaya sessiz bir kırılma göndermeyin.

Her test ortamında şunları iki kere kontrol edin:

  • Auth kuralları ve roller (özellikle hazır kimlik doğrulamayı kullanıyorsanız)
  • Etkin modüller (Stripe gibi ödemeler, Telegram/e-posta/SMS gibi mesajlaşma)
  • Entegrasyon ayarları ve secret'lar, ya da temiz test double'ları
  • Konfigürasyonu etkileyen dağıtım varsayımları (Cloud vs self-hosted)

Örnek: zorunlu bir Department alanı ekleyip bir BP adımını otomatik yönlendirecek şekilde ayarladınız. Seed kullanıcıları departmanla güncelleyin, sonra onay iş akışı testini yeni yönlendirmeyi doğrulayacak şekilde güncelleyin. AppMaster temiz kaynak kodu yeniden ürettiği için sürüklenmeyi azaltır, ama yalnızca testler davranışa (çıktılar, statüler, izinler) dayanıyorsa işe yarar.

İlk güvenilir test paketinizi kurmak için adım adım plan

API sözleşmelerini kilitleyin
UI ve entegrasyonlarınızı API giriş/çıktılarını sabit tutarak koruyun.
Deneyin

Model veya ekranlar değiştiğinde bile çalışması gerekenleri seçin. Bu genellikle para, onaylar, erişim veya müşteri vaatlerini taşıyan iş akışlarıdır.

Kritik iş akışlarının kısa bir listesini yazın ve sonucu sade bir cümleyle tanımlayın. "Fatura yöneticinin onayıyla bir ödeme talebi oluşturur" testlenebilir. "Onay çalışıyor" değil.

Her iş akışı için minimal bir seed veri seti oluşturun. Küçük ve isimlendirilmiş tutun ki loglarda kolayca görülsün: her rol için bir kullanıcı, bir hesap, her statü için bir doküman. AppMaster'da bunu Data Designer modelinizle hizalayın ki alanlar evrildikçe veriler tutarlı kalsın.

Sadece en üstteki birkaç akışı uçtan uca iş akışı düzeyinde otomatikleştirin. Örneğin onay iş akışını başlatın, yönetici kararını simüle edin ve nihai durumu kontrol edin (onaylandı, denetim kaydı oluşturuldu, bildirim gönderildi).

Bu akışların bağımlı olduğu endpointler için yalnızca API sözleşme kontrolleri ekleyin. Amacınız her şeyi test etmek değil; iş akışını sessizce kıracak şekil değişikliklerini yakalamaktır.

Çalıştırmaları tekrar edilebilir kılın:

  • Her çalıştırmadan önce veritabanını sıfırlayın (veya ayrılmış bir test schema kullanın)
  • Sadece minimal veriyi yeniden seed edin
  • Testleri her değişiklikte çalıştırın, sadece release öncesi değil
  • Açık hata çıktısı kaydedin: iş akışı adı, girdiler, nihai durum
  • Bir gerçek hata kaçtığında veya yeni bir özellik yayımlandığında kapsamı genişletin

Bu, paketi küçük, hızlı ve görsel mantık büyüdükçe faydalı kılar.

İş akışı testlerini kırılgan yapan yaygın hatalar

Bildirimleri güvenilir şekilde test edin
İş akışlarından e-posta, SMS veya Telegram mesajları gönderin ve bunları doğrulayın.
Hemen Başlayın

Kırılgan testler hiç test olmamasından daha kötüdür. İnsanları hataları görmezden gelmeye alıştırır ve gerçek mantık hataları gözden kaçar. En büyük neden, iş akışlarını bir UI scripti gibi ele almaktır, bir iş sistemi gibi değil.

Fazla tıklama otomasyonu klasik bir tuzaktır. Testiniz bir butona basılabildiğini kanıtlıyorsa, doğru sonucun oluştuğunu kanıtlamaz. Daha iyi bir kontrol: iş akışı doğru kayıtları oluşturdu mu, doğru durumu ayarladı mı ve doğru mesajı gönderdi mi? AppMaster ile bu genellikle Business Process'in ürettiği şeyleri (alanlar, geçişler, yan etkiler) doğrulamaktır, nasıl gezindiğiniz değil.

Bir diğer kırılganlık kaynağı düzensiz, paylaşılan test hesaplarıdır. Takımlar tek bir "test kullanıcı"yu uzun süre kullanır; yüzlerce eski istek, garip izinler ve kalan taslakla hesaba dönüşür. Yeni bir çalışma bazen başarısız olur. Her çalıştırma için taze kullanıcılar tercih edin veya küçük veri setini bilinen bir duruma sıfırlayın.

Model değiştiğinde bozulacak varsayımlardan kaçının. ID'leri sabitlemek, kayıt sırasına güvenmek veya "listedeki ilk öğeyi seçmek" testleri kırılgan yapar. Kontrolleri sizin kontrol edebileceğiniz stabil anahtarlara dayandırın (dış referans, e-posta, test sırasında oluşturduğunuz kod).

Erken düzeltmeye değer desenler:

  • Yalnızca mutlu yolu test etmek; izin hataları, eksik alanlar ve reddedilen durumlar test dışı kalır
  • Mantığı kanıtlamak yerine UI adımlarına güvenmek; denetim kaydını ve iş akışı sonuçlarını kontrol edin
  • Gerçek dış servislerle (ödeme, e-posta/SMS) çalışmaya bağımlı olmak, stub kullanmamak veya net retry/time-out stratejisi olmaması
  • Uzun ömürlü paylaşılan test hesaplarının zamanla kirlenmesi
  • ID'leri hardcodlamak veya sıralama ve zaman damgalarına güvenmek

Eğer bir onay iş akışı Submit butonunu bir bütçe eksikse engellemeliyse, eksik bir bütçe durumunu bekleyen negatif bir test yazın ve açık bir hata durumu bekleyin. Bu tek test, bir sürü tıklama scriptinden daha fazla regresyonu yakalar.

Daha fazla test eklemeden önce hızlı kontrol listesi

Her yeni test eklemeden önce onun kendine fayda sağlayacağını doğrulayın. En hızlı büyüme yolu, okunması zor, yeniden çalıştırması zor ve kolay kırılan testler eklemektir; bu da takımın testleri görmezden gelmesine yol açar.

Her yeni testi küçük bir ürün özelliği gibi ele almak iyi bir alışkanlıktır: net hedef, stabil girdiler, bariz geçme/kalma koşulu.

Kısa bir ön uç kontrol listesi:

  • Beklenen sonucu bir cümleyle ifade edebiliyor musunuz (ör. "Yönetici tarafından onaylanan bir istek bir fatura oluşturur ve Finans'ı bilgilendirir")?
  • Veriyi sıfırlayıp testi üç kez aynı sonuçla tekrar çalıştırabiliyor musunuz?
  • Her kritik iş akışı için en az bir negatif vaka var mı (zorunlu alan eksik, yanlış rol, limit aşımı) ve bu spesifik şekilde başarısız olmalı mı?
  • Akış bir API'ye dokunuyorsa, sadece "200 OK" yerine sözleşmeyi (gerekli alanlar, veri tipleri, hata formatı) kontrol ediyor musunuz?
  • Veri modeli değiştiğinde testi birkaç ortak yerde (builder/fixture) mı güncelleyeceksiniz yoksa hardkodlanmış değerlerde mi arama yapacaksınız?

AppMaster'da inşa ediyorsanız, test kayıtlarını uygulamanın kullandığı aynı API veya Business Process ile oluşturmayı tercih edin. Bu, testleri gerçek davranışa yakın tutar ve model evrildikçe kırılmayı azaltır.

Örnek: onay iş akışını aşırıya kaçmadan test etmek

Mantığı gerçek bir uygulamaya dönüştürün
Verilerinizi modelleyin, bir Business Process ekleyin ve kodu yeniden yazmadan yineleyin.
Hemen Başlayın

Bir iç onay uygulaması hayal edin: bir isteği talep eden gönderir, bir onaycı inceler ve istek net statüler arasında dolaşır. Değer basittir: doğru kişi isteği bir sonraki doğru duruma geçirebilir. Bu, başlamak için güçlü bir nokta.

Önce yalnızca en önemli eylemleri test edin:

  • Onayla: bir onaycı isteği Pending durumundan Approved'a taşıyabilir ve audit alanları (kim, ne zaman) doğru şekilde ayarlanır.
  • Reddet: onaycı Rejected durumuna taşıyabilir ve bir sebep gereklidir.
  • Değişiklik isteği: onaycı Needs changes durumuna taşıyabilir ve talep eden yeniden gönderebilir.

Onay endpoint'i etrafında bir API sözleşme kontrolü ekleyin çünkü sessiz kırılmalar burada daha çok zarar verir. Örneğin workflow'ınız POST /requests/{id}/approve çağrısı yapıyorsa doğrulayın:

  • Yanıt kodu (başarı için 200, yanlış rol için 403)
  • Yanıt şekli (status bilinen bir değer, updated_at var)
  • Temel kural (durumun Draft'tan doğrudan Approved'a atlayamaması)

Test verisini küçük ve tekrar edilebilir tutun. Mantığın ihtiyaç duyduğu kadar seedleyin: bir requester, bir approver ve Pending durumda bir istek. Sabit tanımlayıcılar (ör. sabit e-postalar) yeniden üretim sonrası aynı kayıtları bulmayı kolaylaştırır.

Şimdi model değişikliğini hayal edin: yeni zorunlu bir alan cost_center eklediniz. Birçok suite, istekleri eski şekle göre oluşturduğu için kırılır.

Her testi yeniden yazmak yerine, ortak "istek oluştur" helper'ınızı (veya seed adımını) cost_center ekleyecek şekilde güncelleyin. Workflow testleriniz statü geçişlerine odaklı kalsın; sözleşme kontrolünüz de yeni zorunlu alanın istek veya yanıt şemasını nasıl etkilediğini yakalasın.

Sonraki adımlar: suite'i küçük, faydalı ve güncel tutmak

Bir test paketi yalnızca insanlar ona güvendiği sürece yardımcı olur. Güven, paket çok hızlı büyüdüğünde ve sonra çürüdüğünde kaybolur. Gerçek işletme değeri olan küçük bir iş akışı setine odaklanın.

Önceliklendirdiğiniz iş akışı listesini küçük, tekrar edilebilir bir test backlog'una dönüştürün. Her iş akışına bir cümlelik geçme koşulu verin. "Bitti"nin ne demek olduğunu söyleyemiyorsanız, test de muğlak olur.

Çoğu takım için işe yarayan basit bir ritim:

  • Her değişiklikte çalışan 5–10 yüksek değerli workflow testi tutun.
  • Aylık temizlik yapın: ölü testleri silin ve seed veriyi yenileyin.
  • Bir hata production'a ulaştığında, onu yakalayabilecek bir test ekleyin.
  • Test verisini küçük ve isimlendirilmiş tutun ki hatalar kolay anlaşılsın.
  • Başarısızlıkları haftalık gözden geçirin ve testi ya da iş akışını hemen düzeltin.

Temizlemek gerçek iştir. Bir iş akışı değiştiyse ve eski test artık gerçeği temsil etmiyorsa, testi hemen kaldırın veya yeniden yazın.

AppMaster (appmaster.io) üzerinde workflow'lar ve API'ler inşa ediyorsanız, aynı görünürlüğü somut çıktılar tanımlamak ve küçük bir dizi workflow düzeyi kontrolü erken sabitlemek için kullanabilirsiniz. Bu, veri modeli evrildikçe testlerin hizalı kalmasını sağlamanın en basit yolu olacaktır.

SSS

Görsel iş akışlarını test ederken önce neyi otomatikleştirmeliyim?

Otomasyona ilk olarak küçük bir mantık hatası gerçek zarar veriyorsa başlayın: para akışları, izinler, onaylar ve müşteri verisi değişiklikleri. Bir veya iki temel iş akışını seçin ve son durumları ile yan etkileri kontrol eden doğrulamalar yazın; tüm ekranları test etmek yerine davranışa odaklanın.

Görsel iş mantığı hataları neden manuel testleri atlıyor?

Çünkü birçok iş akışı hatası sessizdir: UI yüklenir, deploy başarılıdır ama akış yanlış kişiye gider, bir hata dalı atlanır veya kopyalar oluşur. Otomatik kontroller, durum değişiklikleri, oluşturulan kayıtlar ve gönderilen bildirimler gibi sonuçları doğrulayarak bu regresyonları yakalar.

Pratikte workflow düzeyi testi nedir?

Bir workflow düzeyi testi, Business Process'i gerçekçi girdiyle tetikler ve sonunda doğru olması gerekenleri ile önemli yan etkileri doğrular. Akışı kara kutu gibi ele alır; bu da iç refaktörlere ve küçük UI değişikliklerine karşı dayanıklı olmasını sağlar.

Uçtan uca UI testlerini ne zaman kullanmaya değer?

Yalnızca bir veya iki kritik kullanıcı yolu için UI testleri kullanın; örneğin giriş veya bir isteğin gönderilmesi gibi. Bu testleri küçük tutun, çünkü layout veya selector değiştikçe bozulma eğilimindedirler, oysa alttaki mantık doğru olabilir.

API sözleşme kontrolleri aslında beni neyin önünden korur?

Sözleşme testleri API'nin verdiği sözü doğrular: gerekli alanlar, tipler, durum kodları ve hata şekli. İş kurallarının doğru olduğunu kanıtlamazlar ama web veya mobil uygulamanızın veya entegrasyonların sessizce kırılmasını önlerler.

Bir API sözleşme kontrolünde neleri dahil etmeliyim?

Başarı ve yaygın hata durumları için durum kodlarını, istek ve yanıtlarda gerekli alanları ve null olabilme durumunu, alan formatlarını ve enum değerlerini, tutarlı bir hata yanıt yapısını kilitleyin. Doğrudan uyumluluğa odaklanın; zararsız bir backend refaktörü gürültü yaratmamalı.

Test verilerini nasıl tekrar edilebilir ve güvenilir yaparım?

Roller ve iş akışlarınızın dayandığı birkaç kaydı kapsayan küçük, isimlendirilmiş bir seed veri seti hazırlayın ve her çalıştırmada aynı biçimde sıfırlayın. Miktardan ziyade öngörülebilirlik önemlidir; sabit girdiler hataları görmek ve yeniden üretmek için daha iyidir.

Testlerim veri model değişikliklerinden nasıl kurtulur?

İç ID'leri sabitlemekten kaçının ve bunun yerine e-posta, dış referans veya insan tarafından okunabilir kodlar gibi stabil iş anahtarlarına dayanın. Varlık yaratmayı bir builder veya yardımcıda merkezileştirerek Data Designer değiştiğinde tek yerden güncelleyin.

AppMaster projelerinde hangi konular ekstra dikkat gerektirir?

Data Designer veya Business Process Editor'da yapılan her değişikliği seed verileri, workflow testleri ve ilgili API sözleşmeleriyle aynı çalışma oturumunda güncelleyin. AppMaster kaynak kodu yeniden üretiyor olsa da, testlerin davranışa dayalı kalması gerekir.

Aşırıya kaçmadan güvenilir bir test paketi oluşturmak için basit bir plan nedir?

Küçük başlayın: 5–10 vazgeçilmez iş akışını tanımlayın, her sonuç için bir workflow düzeyi testi yazın, bu akışların ihtiyaç duyduğu endpointler için birkaç sözleşme kontrolü ekleyin ve UI testlerini minimumda tutun. AppMaster ile Business Process ve API etrafında otomasyona odaklanın; kapsamı yalnızca gerçek bir hata kaçtığında veya özellik kararlı olduğunda genişletin.

Başlaması kolay
Harika bir şey yaratın

Ücretsiz planla AppMaster ile denemeler yapın.
Hazır olduğunuzda uygun aboneliği seçebilirsiniz.

Başlayın
Görsel iş mantığı testi: Önce neyi otomatikleştirmeli? | AppMaster