Bir web uygulamasının arka ucunun test edilmesi, geliştirme sürecinin ve devam eden izlemenin kritik bir parçasıdır. Ayrıca ön uç testlerini inceleyin.
Test odaklı geliştirme
Test Odaklı Geliştirme'de (TDD) uygulama, tam olarak uygulanmadan önce uygulama gereksinimleri test durumlarına dönüştürülür. Geliştirme sırasında bu testler ilk olarak yazılır ve uygulama derlenirken sırayla uygulanır. Net gereklilikler (ör. test senaryoları), nihai kodun iyi yapılanmasını, tüm gereksinimleri karşıladığından ve doğru olmasını sağlar. Bu da özellikle geliştirmenin ilk aşamalarında önemlidir.
Sürekli Entegrasyon ve Otomatik Test
Sürekli entegrasyon (CI) testi, kod incelemeleri sırasında veya kodun kod deponuzla birleştirilmesi gibi herhangi bir kod değişikliğine karşı testleri otomatik olarak çalıştırır. Otomatik testler, geliştirme sırasında bozulma veya regresyon risklerini azaltarak gönderilen kodun genel kalitesini ve güvenini artırır. Uygulamanızın iyi durumda olduğundan emin olmak için ortamınızda otomatik bir test sistemi oluşturmanız önerilir. Mimarinizin, platformunuzun ve dilinizin desteklediği ve geliştirme ardışık düzeninize sorunsuz bir şekilde entegre edilen bir sistem kullanın. Örneğin, CI iş akışı için GitHub Actions veya yapılandırmanıza göre özelleştirilmiş bulutta yerleşik olarak bulunan özel bir CI ardışık düzeni kullanın.
Otomatik testin temelinde yatan ilkeler ve testlerinizi nasıl iyileştireceğiniz hakkında daha fazla bilgi edinin. Sürekli entegrasyon testi ve başarıyı uygulama, ayarlama ve ölçmeyle ilgili en iyi uygulamalar hakkında daha fazla bilgi edinin.
Sonraki adım olarak, uygulamanızdaki değişiklikleri ve güncellemeleri otomatik olarak dağıtmak için otomatik sürekli teslim (CD) ardışık düzeni kullanabilirsiniz.
Birim testi
Birim testi, kodun küçük, bağımsız parçalarını izole olarak test etmeyi ifade eder. Arka uç diliniz veya çerçeveniz için önerilen ve popüler bir birim test çerçevesi kullanın. Örneğin, monolitik bir Java tabanlı uygulama için JUnit'i veya JavaScript tabanlı sunucusuz bir uygulama (Dart veya TypeScript dahil) için Jest gibi JavaScript testi için oluşturulmuş bir çerçeve kullanın.
Modern arka uç çerçevelerinin çoğunda test için özel kaynaklar bulunur. Testi otomatikleştirmek için bu özellikleri CI ardışık düzeninize entegre edebilirsiniz. Birim testlerinizin, uygulamanız için iyi bir kod kapsamı sağladığından emin olun. Çoğu test çerçevesi, test kapsamınızı analiz edip raporlamak için özellikler sağlar ve derleme ardışık düzeninize entegrasyona olanak tanır.
Entegrasyon testi
Entegrasyon testi, uygulamanızın daha büyük modüllerini veya parçalarını birlikte test etmeyi ifade eder. Ayrı ayrı kod parçalarına odaklanan birim testiyle karşılaştırıldığında entegrasyon testi, mimarinizin ayrı parçalarının entegrasyonuna odaklanır. Bu, uygulama genelinde birden çok adımı ve modülü kapsayan uçtan uca akışları da içerebilir.
Entegrasyon testleri, uygulamanızda veri depolama, dosya sistemleri veya ödemeler gibi harici hizmetlerle etkileşim gerektirebilecek farklı modülleri kapsayabilir. Uygulamanızı, bağımlılık ekleme veya arka uç çerçeveniz tarafından sağlanan benzer özelliklerle bu hizmetlerle ilgili soyutlamaları destekleyecek şekilde yapılandırmayı düşünün.
Davranış ve işlev testi
Arka uca (veya ayrı ayrı modül ya da bileşenlere) opak bir kutu olarak yaklaşıldığında işlevsel test, sistemin giriş ve çıkışına odaklanır. Ön uç için davranış testi daha yaygın olsa da, aynı zamanda bir arka uç sisteminin uçtan uca bütünlüğünün doğrulanmasında da hayati bir rol oynar. Bu tür testler, sistemin farklı girişlere beklendiği gibi tepki verdiğini ve davrandığını onaylar.
Regresyon testi
Regresyon testi, uygulamanın hâlâ beklendiği gibi davrandığını onaylayan testleri ifade eder. Daha önce başarıyla tamamlanan testler, değişikliklerin önceki sorunlara tekrar neden olmadığından emin olmak amacıyla yeni değişiklikler için tekrar çalıştırılır. Bir uygulamadaki hatalar düzeltilirken, hatanın tekrarlanmasını önlemek için birim veya entegrasyon testleri eklenmelidir. Regresyon testleri, olağan test ve derleme ardışık düzenine entegre edilmelidir.
Duman testi
Derleme doğrulama testi olarak da adlandırılan duman testi, arka uç uygulamanızın en kritik işlevlerini doğrulamaya odaklanır. Duman testi, bazı özellikleri ve dış bağımlılıkları soyutlayan entegrasyon testinin ötesine geçer. Duman testi, uygulamanız için kritik kullanım alanlarını kapsar. Duman testi, bir uygulama hazırlık ortamına tanıtılmadan önce doğru davranış sağlamak için ek bir doğrulama katmanı işlevi görebilir. Duman testleri, otomatik birim testlerinden veya bir kalite güvencesi ekibi tarafından yürütülen manuel fonksiyonel testlerden oluşabilir.
Üretim ve hazırlık ortamları
Hazırlık ortamı, test etmeyi kolaylaştırmak için üretim ortamınızın korumalı alana alınmış bir kopyasıdır. Özel bir dağıtım, üretim ortamıyla ilgili sorun riskini azaltır ve kalite güvencesi sürecini kolaylaştırır. Hazırlık ortamı, canlı üretim ortamına yakın bir sistemi test edebilmenizi sağlar.
Üretim ortamının bire bir kopyasına sahip olmak, maliyet veya arka uç mimarisinin karmaşıklığı gibi faktörler nedeniyle uygun olmayabilir. Arka ucun hangi bölümlerinin en kritik olduğunu düşünün ve bunları hazırlık ortamı için optimize edin.
Üretimde kullanılan verilerle testlerin yapılması, uygulamanın gerçek dünya verileriyle nasıl davrandığını test etmek açısından büyük bir avantaj sağlar. Böyle bir hazırlık ortamının gizlilik sonuçlarını ve veri depolama ihtiyaçlarını göz önünde bulundurun. Ayrıca arka uç sisteminiz tarafından kullanılan verileri dikkatlice tasarlayın. Özellikle üretim verileri kullanılıyorsa bu tür bir ortama erişim sıkı şekilde kontrol edilmelidir.
Sisteminizin ölçeğini ve mevcut bir ortamın uygulamanız için uygun olup olmadığını göz önünde bulundurun. Bir sürekli teslim sistemi üzerinden otomatik olarak dağıtılabilen periyodik hazırlık ortamları da günlük veya haftalık derlemeleri test etmek ve kullanıma sunulmadan önce ek inceleme yapmak için ek fırsatlar sunar.
Diğer bir yaklaşım ise tam olarak dağıtılmış bir hazırlık ortamı yerine sürekli entegrasyon testlerine ve otomatik sistemlere daha fazla güvenmektir. Ekibinizin iş akışını, sistem durumunu, kod kapsamını ve teknik gereksinimlerini göz önünde bulundurun.