Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu Azure İyi Tasarlanmış Çerçeve operasyonel mükemmellik denetim listesi önerisi için geçerlidir:
| OE:09 | İş hedeflerine uygun ve kalite standartlarını destekleyen test uygulamalarını benimseyerek iş yükünüzün kalitesini artırın. |
|---|
İş yükünüzde bir değişiklik yaptığınızda, iş yükünün amaçlandığı gibi çalıştığından ve yeni sorunlara neden olmadığından emin olmanız gerekir. Test, bu değişiklikleri değerlendirme yönteminizdir. Bu, iş yükünüzde kaliteyi korumak ve güven oluşturmak için temel bir uygulamadır.
Etkili test, güvenilir ve yüksek kaliteli bir iş yükü sunar. Hataların üretime ulaşmasını önler, maliyetli yeniden çalışmayı ve gecikmeleri azaltır ve geliştirme yaşam döngüsü boyunca çalışmanızı iş hedefleriyle uyumlu tutar.
Bu makale, etkili test uygulamaları aracılığıyla yüksek kaliteli bir iş yükü sunmanıza yardımcı olacak stratejiler sağlar. Performans, güvenilirlik ve güvenlik gibi diğer yapılarda özel test kılavuzu için temel rehberlik görevi görür.
Test stratejinizi ve planınızı resmileştirme
Test stratejiniz ve test planlarınız temel yapıtlardır. Test çalışmalarınız için net bir yol haritası sağlar ve herkesin aynı kalite hedeflerine doğru çalışmasını sağlar.
Test stratejinizi tanımlama
Test stratejiniz, genel test yaklaşımınıza yol gösteren üst düzey bir şemadır. Test hedeflerinizi, kapsamınızı, metodolojilerinizi, araçlarınızı, rollerinizi ve sorumluluklarınızı tanımlar. Test öncelikleri, kaynak ayırma ve risk yönetimi hakkında bilinçli kararlar vermenizi sağlar. Ayrıca paydaşlarla nasıl iletişim kurabileceğinizi ve sonuçları rapor ettiğinizi de yakalar.
İyi tanımlanmış bir test stratejisi, paydaşların onayını alır ve tüm ekip üyelerinin tutarlı kalite standartlarına uymasını garanti eder. Yön ve yapı sağlar, testi iş hedefleriyle hizalar ve uzun vadeli kaliteyi korur.
Test stratejiniz genellikle belirli bir iş yükü için sürümler arasında tutarlı kalır. Ancak her zaman bu iş yükünün belirli gereksinimlerini ve iş hedeflerini yansıtacak şekilde özelleştirin.
Uyarı
Farklı iş yüklerine aynı standartlaştırılmış stratejiyi uygulamayın. Bunlar, benzersiz yaklaşımlara ihtiyaç duyan benzersiz noktalara sahiptir.
Planınızı oluşturma
Ekibinizle test stratejisini kabul ettikten sonra, iş hedeflerine uygun kullanım örnekleriyle bir test planında resmileştirin.
Test planınız, belirli bir sürüm için test yürütmeye yol gösteren ayrıntılı bir belgedir. Test kapsamını, belirli test çalışmalarını, hata raporlarını, zaman çizelgelerini, kaynak atamalarını ve test etkinlikleri için giriş ve çıkış ölçütlerini özetler.
İyi yapılandırılmış bir test planı, testi verimli hale getirir ve yayının hedefleri ve zaman çizelgeleriyle uyumlu hale getirir. Bu, test boyunca ilerlemeyi izlemek ve bilinçli kararlar vermek için başvuru noktanızdır.
Örnek: Bir e-ticaret kullanıma alma sistemi için test stratejisi tüm sürümlerde tutarlı bir yaklaşım oluşturur. Ödeme akışlarının her zaman önceliklendirildiğini tanımlar, kullanıcı arabirimi testi için Selenium, yük testi için JMeter ve güvenlik testi için OWASP ZAP gibi sistem için test araçlarını belirtir ve farklı test türleri için ekip sorumluluklarını açıklar. v2.5 sürümünün test planı, Apple Pay desteği eklemeye odaklanır. Bu sürümde Apple Pay için tam olarak neyi test edeceklerini tanımlar, kaynakları ayırır (iki mühendis ve üç iOS cihazı), dört haftalık bir zamanlama ayarlar ve net giriş ölçütleri (kod tamamlandı ve ortam yapılandırılmış) ve çıkış ölçütleri (tüm testler geçer, sıfır kritik hata ve iki saniyelik SLA) oluşturur.
Uyarı
Genel test stratejinizi ve planınızı net bir şekilde tanımlamadan önce teste başlamayın. Sağlam bir test planı, çalışmalarınızı odaklanmış ve iş yükü hedefleriyle uyumlu tutar.
Erken test edin, sık sık test edin, neyin önemli olduğunu test edin
Yazılım geliştirme yaşam döngünüzün en erken aşamalarında test etmeye başlayın. Kritik sorunları geç bulduğunuzda, daha fazla yeniden çalışma ve daha yavaş sürümlerle karşılaşırsınız. Mimarlar tasarım aşamasında test gereksinimlerini çok sık gözden kaçırarak genel kaliteyi olumsuz etkiler.
Geliştiriciler kalite güvencesi anlayışını benimsemelidir. Tasarım sırasında bile test etme hakkında düşünün. Gereksinimleri netleştirmek ve olası sınırlamaları belirlemek için bunu kullanın. Testi geliştirme sürecinizin ayrılmaz bir parçası haline getirin. Yazdığınız kod ile birlikte testlerin yazılması ve sürdürülmesinde sorumluluk üstlenin.
Sorunları erken algıladığınızda hızlı bir şekilde yanıt vekleyebilirsiniz. Örneğin, rutin hata düzeltmelerine göre kullanıcı deneyimini etkileyen temel tasarım değişikliklerine öncelik vekleyebilirsiniz. Erken hareket etmek son dakika sürprizlerini ve gecikmelerini azaltır.
Test, tek seferlik bir olay değildir. Sürekli test zihniyetinin bir parçası olarak başlatma sonrasında teste devam edin. Uzun vadeli kaliteyi korumak için yeni özellikleri kapsayacak ve üretimde bulunan hataları ele almak için test paketinizi düzenli olarak gözden geçirin, güncelleştirin ve genişletin.
Uyarı
Büyük toplu işlerde test işlemini teslim döngüsünün sonlarına kadar ertelemeyin. Testlerin gecikmesi eksik sorunlara, daha fazla yeniden işlemeye ve daha yavaş sürümlere yol açar.
Tradeoff. Erken ve sürekli test, operasyonel maliyetleri artırabilir ve başlangıçta geliştirmeyi yavaşlatabilir veya ekip uyuşmalarına neden olabilir. Bir denge sağlayın, hangi testlerin ve değişikliklerin önemli olduğunu ve hangi aşamaları erteleyebileceğinizi belirleyin. Bu, kaliteden ödün vermeden verimliliği sağlar.
Güvenlik önlemleriyle üretimde test
Güçlü test ve doğrulama uygulamalarıyla bile bazı sorunlar yalnızca gerçek dünya üretim trafiği altında görünür. Simülasyonu yapılamaz sorunları bulmak için, kullanıcının maruz kalmasını sınırlayan ve riski azaltan güvenlik önlemleriyle üretimde denetimli test gerçekleştirin.
Üretim testlerini planlama, yalıtma ve izleme. Bu şekilde gerçek kullanıcı geri bildirimlerini ve performans verilerini toplayabilir ve daha geniş bir kullanıcı tabanında kesintileri en aza indirebilirsiniz.
İş yükünüz çıkış ölçütlerini karşıladığında ve yüksek kalite gösterdiğinde, yalnızca kanarya sürümleri gibi aşamalı dağıtım stratejilerini dikkate alın. Bu yaklaşım, önce küçük, hedeflenen bir kullanıcı grubuna yönelik güncelleştirmeler yayımlar ve yayın öncesi ortamlarda görünmeyebilecek sorunları hızla ortaya çıkarmanıza yardımcı olur. Bu yaklaşımla test sürecinizi hızlandırır ve ilişkili maliyetleri düşürebilirsiniz.
Risk: Gerçek müşterileri doğrudan etkileyeceği için üretimde test yaparken dikkatli olun. İşletmeniz üzerindeki olası olumsuz etkileri en aza indirmek için her zaman korumalar uygulayın ve maruz kalma süresini sınırlayın.
Test kapsamına katmanlı yaklaşım uygulama
Katmanlı test kapsamı stratejisi hızlı geri bildirim, daha erken hata algılama ve daha hızlı sürümler sunar. Testleri katmanlar halinde yapılandırırken, hataları hızla yalıtabilir ve hatalarını ayıklayarak sorunları saptamayı ve çözmeyi kolaylaştırabilirsiniz.
Test piramidini kılavuz olarak kullanma
Test piramidi modeli, test otomasyonu için bu katmanlı yaklaşımı gösterir. Yürütme süresini ve bakım maliyetlerini en aza indirirken kapsamı en üst düzeye çıkarmak için testleri farklı katmanlara dağıtır.
- Temel katman: Birim testleri tek tek bileşenleri yalıtarak doğrular. Hızlı bir şekilde çalışır ve anında geri bildirim sağlar.
- Orta katman: Tümleştirme testleri, bileşenler ve hizmetler arasındaki etkileşimleri doğrular. Birim testlerinden daha yavaş çalışırlar, ancak sistem davranışının daha geniş bir kapsamını sağlarlar.
- Üst katman: Uçtan uca testler, gerçek dünya senaryolarının benzetimini yaparak tüm sistemdeki kullanıcı yolculuklarını doğrular. Bu testler en yavaş şekilde çalışır ancak genel kalite açısından en yüksek güveni verir.
Temel ve orta katman testlerini işlem hatlarınızla daha kolay tümleştirebilirsiniz çünkü çok az bağımlılıkları vardır. Bu tümleştirme, testler başarısız olduğunda hızlı geri bildirim sağlar ve derleme işleminin hemen durmasını sağlayarak hatalı kodun daha fazla ilerlemesini önler.
Test kapsamınız büyüdükçe işlem hattı yürütme süresi önemli ölçüde artabilir. Paralel ve dağıtılmış test yürütme stratejilerini kullanarak hızlı bir geri bildirim döngüsü sağlayın ve kapsam arttıkça bile işlem hatlarını verimli tutun.
Uyarı
Kodunuzu derleyen ve doğrulayan ilk derleme işlem hattına olası her testi eklemeyin. Bu seçenek yayın döngülerini yavaşlatıyor ve önemli testlerin atlanmasını riske atlar. Kritik iş akışlarını doğrudan koruyan ve sistem kalitesinde anlamlı bir güven sağlayan testlere odaklanın.
Tradeoff. Test kapsamı ve işlem hattı verimliliği arasında bir denge vardır. Daha büyük test paketleri kapsamı artırırken, yürütme süresini ve maliyetini de artırır. Her zaman anlamlı bir yatırım getirisi sunmaz.
Uygulama ve altyapı testlerini ayırma
Uygulama kodunuzu ve altyapı kodunuzu test etme arasında net segmentasyon oluşturun. Yazılımı dağıtarak ve üzerinde testler çalıştırarak uygulama davranışını gözlemleyerek altyapınızı doğrulayın.
Uygulama dumanı testlerinin çalıştırılması, üretimi etkilemeden önce ağ hataları, DNS yanlış yapılandırmaları veya kaynak kısıtlamaları gibi altyapı sorunlarını ortaya çıkarabilir. Örneğin, API sistem durumu uç noktalarını doğrulayan bir duman testi, altyapı sağlama sorunlarını veya ağ ilkesi sorunlarını hızla algılayabilir.
Bu yaklaşımla, uygulamaya özgü testler altyapı sorunlarını proaktif olarak belirler ve çözer ve ayrı altyapı doğrulaması gereksinimini azaltır. Hem kodunuzun hem de temel altyapınızın birlikte doğru şekilde çalıştığına güven verir.
Farklı test türlerini birleştirme
İş yükünüz boyunca çeşitli test yöntemleri kullanın. Birim testlerini tamamlamak, testi tamamladığınız anlamına gelmez. İş yükünüzün her yönü ayrı bir yaklaşıma ihtiyaç duyar. Birden çok test türü genel kaliteyi artırır ve sistemin amaçlandığı gibi çalışması için güven oluşturur.
İş yükü olgunluğunuza ve risk profilinize göre doğru test türünü seçin. Test piramidi katmanları aracılığıyla işlevsel doğrulamayla başlayın, ardından performans, güvenlik ve dayanıklılık gibi işlevsel olmayan testler ekleyin. Test türü seçiminizi iş yükünüzün kritik senaryolarıyla ve riskleriyle uyumlu hale getirme.
Aşağıdaki tabloda, test döngünüz boyunca farklı test türlerinin ne zaman uygulanacağı gösterilmektedir. Her birinin belirli riskleri ele alır. Bu tablo tüm olası test türlerinin kapsamlı bir listesi olmasa da, açıklayıcı bir örnek işlevi görür.
| Test Türü | Birincil Amaç | Ne Zaman Kullanılmalı | Maliyet ve Dikkat Edilmesi Gerekenler |
|---|---|---|---|
| El ile Test Etme | İnsan yargısı, keşif öğrenmesi, kullanılabilirlik ve UX nüansları gerektiren senaryoları doğrulayın. | Erken geliştirme, kullanıcı arabirimi değişiklikleri, belirsiz akışlar veya otomasyon mümkün olmadığında. | Yüksek maliyet, düşük ölçeklenebilirlik. Tedbirli kullanın ve insan içgörülerinin yeri doldurulamaz değer kattığı alanlara odaklanın. |
| Birim Testi | Bireysel bileşen veya işlev mantığını izole ederek doğrulayın. | Sürekli geliştirme sırasında. | En düşük maliyet ve en yüksek değer. Regresyonları önlemek için hızlı, güvenilir ve kritik. Geniş kapsama hedefleyin. |
| Tümleştirme Testi | Bileşenler, API'ler, sözleşmeler ve paylaşılan hizmetler arasındaki etkileşimleri doğrulayın. | Bileşenler ve hizmetler etkileşime hazır olduğunda veya yeni bağımlılıkları tümleştirirken. | Orta maliyet. Yanlış yapılandırmaları ve etkileşim hatalarını erken yakalamak için gereklidir. |
| Uçtan Uca (E2E) Testi | Kullanıcı eyleminden arka uç hizmetlerine kadar tüm sistem genelinde tam iş akışı doğruluğunu onaylayın. | Çekirdek kullanıcı yolculukları kararlı hale geldiğinde ve otomatikleştirilebildiğinde. | Yüksek maliyetli ve kırılgan. İş açısından en kritik akışlar için seçmeli olarak kullanın. |
| UI Testi | Görsel, düzen ve etkileşim regresyonlarını algılama. | Kullanıcı arabirimi tasarımı dengelendikten sonra veya görsel uygunluk bir sürüm gereksinimi olduğunda. | Yüksek bakım maliyeti. Kritik kullanıcı arabirimi yolları ve erişilebilirlik açısından kritik senaryolarla sınırlayın. |
| Yük ve Performans Testi | Beklenen iş yükü altında performansı, gecikme süresini, aktarım hızını ve ölçeklenebilirliği doğrulayın. | Mümkün olduğunca erken başlayın ve mimari geliştikçe tekrarlayın. | Yüksek maliyet ama özellikle müşteriye yönelik iş yükleri için üretime hazır olma için gereklidir. |
| Stres Testi | Sistem sınırlarını, hata noktalarını ve kurtarma davranışlarını belirleyin. | Üretime hazır olma veya büyük mimari değişikliklerden önce. | Yüksek maliyet, dayanıklılık içgörüleri sağlar. Ortamın etkisi nedeniyle seçici olarak çalıştırın. |
| Güvenlik Testi | Güvenlik açıklarını, yanlış yapılandırmaları ve saldırı vektörlerini belirleyin. | Geliştirme yaşam döngüsü boyunca uygulayın. | Orta-yüksek maliyet ama son derece yüksek değer. Verilerin korunması, uyumluluğun karşılanması ve iş riskinin azaltılması için kritik öneme sahiptir. |
her özelliği veya değişikliği iş etkisine ve riskine göre değerlendirin. Bu değerlendirmeye göre test türlerinin önceliklerini belirleyin. Müşteriye yönelik iş yükleri için uçtan uca ve kullanıcı arabirimi testlerini vurgular. API temelli iş yükleri için tümleştirme ve sözleşme testlerine odaklanın. Yüksek kullanılabilirlik sistemleri için dayanıklılık ve kaos testlerine yatırım yapın.
Tradeoff. Yayın işleminin başında güvenlik testlerine öncelik verin. Bu yaklaşım güvenlik açıklarını önlemeye yardımcı olur ve daha güvenli dağıtımlar sağlar. Ancak bu öncelik, üretime yeni özellikler sunma hızınızı yavaşlatabilir.
Test varlıklarınızı kod varlıkları kadar önemli olarak değerlendirin
Test varlıkları temel iş kurallarını, uç durumları, geçmiş hata desenlerini ve değerli kurumsal bilgileri yakalar. Test kalitesi düşük olduğunda, takımlar gerçek hataları bulmak yerine güvenilir olmayan testlerde hata ayıklamak için zaman harcar. Bu durum hayal kırıklığı yaratır ve geliştiriciler test çerçevesine olan güvenini kaybeder.
Test varlıklarına kod varlıklarıyla aynı titizlikle davranın. Test varlıklarınızın tüm sorumluluğunu almak, test çerçevenizin hem güvenilirliğini hem de genel kalitesini artırır.
Testlerinizi yapılandırma ve güvenliğini sağlama
Test kodunu uygulama kodunuzla aynı mimari ilkeleriyle yapılandırın. Mümkün olduğunda, bakımı kolaylaştırmak ve tutarlılığı artırmak için testlerinizi kodunuzun yanı sıra aynı depoda tutun.
Otomasyon paketiniz ayrı bir depoda bulunuyorsa, kalite standartlarını korumak için zorunlu kod incelemeleri, çekme isteği ilkeleri ve doğrulama işlem hatları gibi eşdeğer idare denetimlerini uygulayın.
Testler genellikle içeri aktarılan kitaplıklardan veya güvenlik açığı bulunan test kodundan kaynaklanan risklere neden olabilecek üretim verileri ve sistemleriyle etkileşim kurar. Güvenlik açıklarını önlemek için test kodunuzda güvenli kodlama uygulamaları uygulayın. Testleri üretim koduyla aynı güvenlik standartlarıyla değerlendirin.
Test verilerinizi kodunuzla birlikte sürümleyin. Veri şemalarını veya iş kurallarını değiştirdiğinizde, test verilerini geçerli iş yükü durumuyla eşleşecek şekilde güncelleştirin.
Beklendiği gibi çalıştığından emin olmak için kendi testlerinizin temel doğrulamasını yapın. Tüm hatalar, test hatalarına değil gerçek uygulama sorunlarına işaret etmelidir. İş yükünüz sağlıklı olduğunda, testlerin uygun şekilde başarısız olup tutarlı bir şekilde geçtiğini doğrulayın. Güvenilir olmayan testleri hemen ele alın ve test onaylarının her testin amacını pekiştirdiğinden emin olun.
Test verilerini yalıtma, paylaşılan durumdan kaçınma ve uygun kurulum ve yırtma işlemlerini uygulama gibi test bağımsızlığını ve güvenilirliğini sağlayan uygulamalar ayarlayın. Test verilerinin otomatik temizlemesini uygulama. Paralel test yürütmeden yararlanmak için testlerinizi bağımsız olacak şekilde tasarlayarak sonuçları etkilemeden herhangi bir sırayla çalıştırabilirsiniz. Bağımsız testler, durumları bir sonraki test çalıştırmasına taşımamak için her zaman kendi verilerini ve bağımlılıklarını ayarlamalı ve yok etmelidir.
Uygulamanız testlerde sıralama gerektiriyorsa, sıralı test yürütmeyi destekleyen test çerçevelerini kullanın.
Testlerinizi koruyun ve geliştirin
Test varlıklarınızı korumak, iş yükü kalitesini korumak için çok önemlidir. Bu varlıklar genellikle değerli kurumsal bilgiler içerir. Bunları düzenli olarak tutamazsanız, hızla eskirler ve etkililiklerini ve yüksek kaliteli sürümler sunma becerinizi baltalarlar.
İş yükünüz geliştikçe, iş hedefleriyle uyumlu kalmak için test varlıklarınızın paralel olarak gelişmesi gerekir. Test tasarımınız için üretim koduyla aynı mimari ilkeleri kullanın.
Regresyon test paketiniz en değerli ve kararlı testlerinizi içermelidir. Küçük bir başlangıç yapıp regresyon paketinizi kasıtlı olarak büyütün. Üretim olayları oluştuğunda, kritik hataları düzelttiğinde ve yüksek riskli değişiklikler eklediğinizde testleri ekleyin. Regresyon paketinizin insan müdahalesi olmadan tutarlı bir şekilde çalışması için otomatikleştirin. Her bir committe çalışan hızlı duman testleri ve her gece veya sürümden önce çalışan daha kapsamlı regresyon testleri oluşturun.
Test çalışmaları amacı, kapsamı ve beklenen sonuçları yakalar. Hem test otomasyonu betiklerinin hem de test çalışmalarının eşitlenmiş durumda tutulması önemlidir. Otomasyon betikleri ilgili test çalışmalarından ayrılırsa neyin doğrulandığını izlemek zordur ve bu da kapsam ve sorumluluk boşluklarına yol açar.
İş yükünüzde yeni özellikler ve geliştirmeler sunarken test çalışmalarınızda düzenli güncelleştirmeleri proaktif olarak planlayın. Bir test çalışmalarını otomatikleştirdiğinizde, kapsamı takip edebilmeniz için otomasyonu özgün test çalışması ile ilişkilendirin.
Test teknik borcunu yönetmek
Aşırıya gitmeden önce biriktirilen borcu gidermek için düzenli test bakım sprint'leri zamanlayın.
Zayıf testler, yinelenen kapsam, eski testler ve zayıf test tasarımı, test borcuna katkıda bulunur. Güvenilir olmayan testleri tanımladığınızda, test paketinizin bütünlüğünü korumak için bunların düzeltilmesine veya kaldırılmasına öncelik tanıyın. Daha küçük bir güvenilir test kümesi, büyük bir flaky test kümesinden daha değerlidir.
Testleri atlama veya ertelemeyle ilgili stratejik kararlar, test ettiğiniz kadar önemlidir. İş mantığı olmayan basit alıcı ve ayarlayıcılar, son derece nadir uç durumlar, üçüncü taraf kitaplıklar ve kaldırılmaya zamanlanmış eski kod gibi önemsiz veya düşük riskli kod testlerini atlamayı göz önünde bulundurun. Ekibinizin bağlam değiştikçe yeniden ziyaret edebilmesi için bu kararları belgeleyin.
Test paketinizi değerlendirin ve güvenilir, tutarlı testleri dış değişikliklere eğilimli testlerden ayırın. Sık kullanıcı arabirimi güncelleştirmelerinin etkilediği ui testleri gibi denetiminizin dışındaki faktörlerden dolayı sık sık bozulan testler otomasyon için iyi bir aday olmayabilir. Bu ayrım, hangi testlerin otomatikleştirilip hangilerinin el ile tutulacaklarına karar vermenize yardımcı olur.
Tradeoff. Kırılgan testleri kaldırdığınızda otomasyon kapsamınızı azaltırsınız. Otomasyona kararlı arabirimlere ve kritik iş akışlarına odaklanarak ve sık değişen ui öğeleri için el ile test kabul ederek bu azaltmayı dengeleyin.
Tüm testler sürekli bakımı hak etmez. Kaldırdığınız özellikler, kapsamı çoğaltan testler ve artık değer sağlamayan testler için testleri devre dışı bırakın. Kararın ekibinize açık olması için testleri neden kaldırdığınızı belgeleyebilirsiniz.
Gözlemlenebilirliği test çerçevesine genişletin
Testte gözlemlenebilirlik iki temel hedefe ulaşır: test çerçevesinin güvenilir bir şekilde çalıştığından emin olun ve iş yükünüzün kalitesi ve durumu hakkında sürekli görünürlük sunun. Gözlemlenebilirlik uygulamalarını test çerçevenizle tümleştirdiğinizde tanılama özelliklerini güçlendirir, kararlılığın gerçek zamanlı izlenmesini kolaylaştırır ve test süreçlerinin sürekli iyileştirilmesini sağlarsınız.
Bu görünürlük olmadan, sorunları tanılamada önemli zorluklarla karşılaşırsınız, sistemleri gerçek zamanlı olarak izleme yeteneği sınırlıdır ve otomasyon kapsamı etkinliğinizle ilgili net, eyleme dönüştürülebilir içgörüler elde edilmez.
Test paketleri zaman içinde bozulur, testler güvenilir olmaz, ilgi düzeyini kaybeder veya iş yükü değişikliklerine ayak uyduramaz. Gözlemlenebilirliği ekleyerek test paketinizin durumunu etkili bir şekilde izleyebilir, hataları hızla tespit edebilir ve giderebilir, bakım öncelikleri ve iyileştirmeleri hakkında bilinçli kararlar alabilirsiniz. Kapsam raporları oluşturmak, otomasyondaki boşlukları belirlemeyi kolaylaştırır. Test kapsamı, üretim olaylarından gözlemlenebilirlik verileriyle uyumlu olduğunda, ekipler hangi senaryolarda yeterli doğrulamanın eksik olduğu hakkında içgörü elde eder.
Aşağıdakiler için çerçevenizdeki endüstri standardı test kapsamı ve raporlama araçlarını kullanın:
- Test edilen kod yollarında net görünürlük sağlama
- Tutarlı olarak başarısız olan testleri belirleme
- Test güvenilirliğindeki uzun vadeli eğilimleri analiz etme
- Hedeflenen geliştirmeler için hataların çıkış noktalarını izleme
Risk: Günlükler tutarsız ve fazla ayrıntılıysa, değerden daha fazla kirlilik oluşturarak hata ayıklamayı zorlaştırabilir. Günlüklerin takımınızı bunaltmadan anlamlı içgörüler sağladığını güvence altına almak için net, eyleme dönüştürülebilir iletiler ve farklı ayrıntı düzeyleriyle yapılandırılmış günlük kaydı uygulayın.
Gerçekçi koşulların benzetimini yapmak
İş akışlarınızı son kullanıcı perspektifinden değerlendirerek müşteri ihtiyaçlarını ve beklentilerini gerçekten karşıladığından emin olun. İş yükleriniz için net kabul ölçütleri tanımlayın ve yalnızca yalıtılmış sistem davranışlarını değil gerçek kullanıcı akışlarını ve deneyimlerini doğru yansıtan testler tasarlar.
Kapsamı stratejik olarak ölçeklendirme
Test kapsamınızı risk ve değere göre ölçeklendirin. Yüksek değerli kullanıcı yolculukları ve müşteri deneyimini doğrudan etkileyen kritik yollar için kapsamın önceliğini belirleyin. İş yükü karmaşıklığı arttıkça, iş yükü kalitesi ve güvenilirliğinde en yüksek güveni sağlayan senaryoları değerlendirerek test kapsamınızı genişletin.
Risk: Tek bir kullanıcı akışında, azalan getiriler noktasının ötesinde fazla ödeme yapmayın. Kritik yollar için yeterli kapsama ulaştıktan sonra odağı diğer önemli alanlara kaydırabilirsiniz. Tek bir akışta mükemmellik yerine dengeli kapsam için çaba gösterin.
İş hedefleri ve SLO'larla uyumlu hale getirme
Testlerinizi hem iş hedefleri hem de Hizmet Düzeyi Hedefleri (SLO) ile hizalayın. İş taahhütlerini ve kullanıcı beklentilerini yansıtan ölçülebilir kalite eşikleri ayarlayın. Sapmaları algılamak ve hataları gidermek için bir başvuru noktası sağladığı için bu eşikleri kabul edin. Bu yaklaşım, önemli hizmet kalitesi eşiklerinin tehlikeye atılmasını önleyerek kullanıcı deneyimini korur. Mevcut müşteri ihtiyaçlarını ve beklentilerini karşılamaya devam ettiğinden emin olmak için temel ölçümlerinizi düzenli olarak gözden geçirin ve güncelleştirin.
Temsili test verilerini kullanma
Test verileri gerçek dünya senaryolarını mümkün olduğunca yakından temsil etmelidir. Yapay veriler, üretim verileri işlemenin karmaşıklığını önlerken gerçek kullanıcı senaryolarının benzetimini yapabilir. Örneğin yapay test, iş yükünüzün planlı ölçeklendirme koşullarındaki performansını değerlendirmek için temsili veri kümeleri oluşturarak gerçek dünya senaryolarını çoğaltabilir.
Test için üretim verilerini kullanmanız gerekiyorsa hassas bilgileri korumak için tüm bilgileri düzgün bir şekilde anonimleştirdiğinizden emin olun.
Yapay verileri varsayılan tercihiniz olarak kullanın. Sentetik verilerin gerekli karmaşıklığı çoğaltamadığı belirli senaryolar, örneğin veri geçişi betiklerinin test edilmesi gibi durumlar için üretim verilerini ayırın.
Üretim ortamınızın simülasyonunu oluşturun
Üretim ortamı, iş yükünüzün gerçek dünya koşullarında nasıl davrandığını anlamak için doğru kaynağınızdır. Sistemin üretimde beklendiği gibi performans sergilediğini güvenebilmeniz için gerçek dünya koşullarını yakından yansıtan bir ortam oluşturun.
İş yükünüzün özel ihtiyaçlarına uygun hale getirmek için üretim ortamlarına yönelik yaklaşımınızı özelleştirin. Yüksek kullanılabilirlik gerektiren görev açısından kritik iş yükleri için üretime benzer ayrılmış bir ortamda test edin. Bu iş yükleri için, sağlam doğrulama gereksinimiyle maliyet iyileştirmesini dikkatle dengeleyin. Hizmet davranışının gerçekçi koşullar altında doğru değerlendirildiğinden emin olmak için performans ve yük testi için ayrılmış, üretim benzeri bir ortam kullanın.
Diğer iş yüklerinde, testlerin daha düşük ortamlarda başarılı olduğu ancak üretimde başarısız olduğu durumlarda hatalı pozitif sonuçları azaltmak için ortamınızın üretim altyapısını yakından yansıtmasını sağlayın. Kodunuz işlem hattında ilerledikçe tüm ortamlarda tutarlılığı hedefleyin. Güvenilir test sonuçları elde etmek için iş yükünüzün altyapı, veri ve güvenlik gibi çeşitli yönleriyle üretim koşullarının simülasyonunu yapabilirsiniz.
Ortamlarınızı üretim ortamına yansıttığınızda, yapılandırma kayılması kaliteye yanlış güven oluşturabilir. Ortamınızın üretimle uyumlu kaldığından emin olmak için yapılandırma kayması için otomatik doğrulama denetimleri uygulayarak bunu önleyin. Uygun olduğunda, test başlamadan önce doğru sürümün dağıtıldığından emin olmak için dağıtım geçitlerini ayarlayın.
Risk: Üretim ortamlarını yansıttığınızda, operasyonel maliyetleri önemli ölçüde artırabilir. Kısa ömürlü ortamların mı yoksa kalıcı test ortamlarının mı iş yükünüz için maliyet verimliliği ile kalite arasında en uygun dengeyi sunup sunmadığını değerlendirin.
Amaca yönelik test ortamları oluşturma
Ortamları, amaçlanan amaçlarına net bir şekilde odaklanarak tasarlar. Test yaşam döngünüzdeki her aşamanın ayrı gereksinimlerini değerlendirin ve ortamın bu aşamanın hedefleriyle yakın bir şekilde uyumlu olduğundan emin olun.
İşlevsel doğrulama, tümleştirme testi veya diğer amaçlar için her test ortamını, testin belirli aşamasına ve hedeflerine uyacak şekilde kasıtlı olarak tasarlayın. Kolaylaştırılmış bir ortam test gereksinimlerinizi etkili bir şekilde karşılıyorsa verimliliği en üst düzeye çıkarmak için bu yaklaşımın önceliğini belirleyin.
Sahte hizmetleri kullanma
Her test senaryosu için üretim sistemlerinin tam çoğaltması genellikle pratik değildir. Kritik iş iş akışlarından ödün vermeden test için iş yükünüzün hangi bileşenlerini güvenli bir şekilde çoğaltabileceğinizi değerlendirin. Tam çoğaltma uygun olmadığında, canlı işlemleri riske atmadan senaryoları etkili bir şekilde doğrulamak için üretim hizmeti davranışlarını doğru bir şekilde simüle eden sahte hizmetleri kullanın.
Amaca yönelik test ortamları kısa ömürlü ortamlarda sahte hizmetler dağıtmak için ideal bir temel sağlar. Kısa ömürlü ortamlar, test için üretim koşullarının benzetimini yapmak için uygun maliyetli bir yol sunar. Etkileşimleri ve davranışları, her test senaryosu için tam üretim benzeri ortamları koruma yükü olmadan doğrulayabilirsiniz. Bu isteğe bağlı ortamlar belirli test amaçları için oluşturulur ve kullanımdan sonra yok edilir ve test kalitesini korurken altyapı maliyetlerini azaltır.
Kısa ömürlü ortamlar oluşturmak için iş yükünüzün Kod Olarak Altyapı (IaC) ve dağıtım işlem hatları ile otomasyonun iyi kurulduğu daha yüksek bir olgunluk düzeyine ulaşması gerekir.
Azure kullanımının kolaylaştırılması
Azure Test Planları , planlı el ile test, kullanıcı kabul testi, keşif testi ve proje katılımcılarından geri bildirim toplama için gereken tüm özellikleri sağlayan tarayıcı tabanlı bir test yönetimi çözümüdür. Test kalitenizi zaman içinde izlemek ve iyileştirme alanlarını belirlemek için Test Analizi'ni içerir.
Azure Pipelines , testi CI/CD işlem hattınızla tümleştirmenizi mümkün kılar. Azure ile tümleşik GitHub Actions da kullanabilirsiniz.
Azure Uygulama Testi , işlevsel ve performans testlerini destekleyen bir hizmettir. Azure Load Testing kullanarak Playwright Çalışma Alanları ve performans testleri ile işlevsel testler çalıştırmanıza olanak tanır.
Azure Dağıtım Ortamları , güvenliği en üst düzeye çıkarırken tutarlılık ve en iyi yöntemleri oluşturan proje tabanlı şablonlarla uygulama altyapısının oluşturulmasına yardımcı olabilir.
Azure ayrıca güvenilirlik, performans ve güvenlik testlerini destekleyen platforma özel araçlar da sağlar.
İlgili bağlantılar
Operasyonel Mükemmellik denetim listesi
Öneriler kümesinin tamamına bakın.