Test verisi için ülke seçmek, çoğu ekibin sandığı gibi akla ilk gelen birkaç ülkeyi listeye yazmak değildir. Uluslararası bir form, bir sipariş akışı ya da bir rapor şablonu test edilirken seçilen ülkeler, hangi hataların görülebileceğini doğrudan belirler; bu yüzden seçim bilinçli bir karar olarak ele alınmalıdır. Bu yazıda ülke kümesini hangi eksenlerle kurduğumuzu, varsayılan bir kümenin nasıl bir araya geldiğini ve bu kümenin neden sürümlenmesi gerektiğini bulacaksınız.
Ülke kümesi neden rastgele toplanmamalı?
Rastgele toplanan bir liste, test kapsamınızı değil, o gün kimin hangi ülkeyi hatırladığını yansıtır. Böyle bir liste genellikle birbirine benzeyen ülkelerden oluşur: aynı alfabeyi kullanan, adres yapısı benzer, kimlik alanı benzer davranan ülkeler. Bu ülkelerde yapılan testler geçer, çünkü aynı kod yolları tekrar tekrar denenir.
Asıl maliyet, kapsanmayan durumlarda ortaya çıkar. Uzun bir sokak adı, alışılmadık bir karakter kümesi, sağdan sola yazılan bir metin ya da tek satıra sığmayan bir bölge adı, yalnızca bu özellikleri taşıyan bir ülke kümede varsa görülür. Kümede yoksa hata üretimde çıkar ve o anda elinizde ne bir örnek ne de bir beklenti olur.
Üçüncü ve en sinsi sorun, sessizce yanlış sonuç üretmektir. Bir alanın zorunlu olduğu varsayımı, o alanın bazı ülkelerde hiç bulunmadığı gerçeğiyle çarpıştığında test kırmızıya döner ama ürün doğrudur; sizi yanıltan şey varsayımın kendisidir. Bu tür yanlış alarmları temizlemenin tek yolu, kümede kasıtlı olarak sınır durumları bulundurmaktır.
Üç seçim ekseni: erişilebilirlik, veri zorluğu, sınır değeri
Kümeyi kurarken birbirinden bağımsız üç eksene bakmak, tartışmayı kişisel tercihlerden çıkarır.
| Eksen | Sorduğu soru | Tipik sonuç |
|---|---|---|
| İş erişilebilirliği | Ödeme, teslimat, faturalama ve dil bu ülkeyi kapsıyor mu? | Ana pazarı temsil eden ülkeler |
| Veri zorluğu | Karakter kümesi, yazı yönü ve adres uzunluğu kodu zorluyor mu? | Kodu en çok zorlayan ülkeler |
| Sınır değeri | Uç bir durumu temsil ediyor mu? | Çok küçük ve çok büyük örnekler |
Birinci eksen, ürünün gerçekten para kazandığı yerleri kapsar. Buralarda yapılan testler, gerçek kullanıcıların gördüğü akışı korur; dolayısıyla bu eksenden gelen ülkeler kümenin çekirdeğidir.
İkinci eksen, kodu kıran ülkeleri arar. Aynı alanın başka bir ülkede daha uzun, daha farklı karakterlerle ya da farklı bir sırayla doldurulması, doğrulama ve görüntüleme katmanınızı sınar. Bu eksen “müşteri nerede” sorusuna değil, “kod nerede kırılır” sorusuna cevap verir.
Üçüncü eksen, sayıca küçük ama etkisi büyük olan uçları toplar. Küçük bir bölge, tek bir şehirde yoğunlaşan bir pazar ya da çok kalabalık bir ülke, uzunluk sınırları ve kesme davranışı için farklı baskılar üretir. Bu uçlar kümeden çıkarıldığında, taşma ve kırpma hataları görünmez olur.
Hangi ülkeler iyi bir sınır örneği olur?
İyi bir sınır örneği, sıra dışı olduğu için değil, belirli bir kod yolunu zorladığı için değerlidir. Örneğin çok uzun yerleşim adları, liste görünümlerinde ve etiketlerde kesme mantığını sınar; çok kısa adlar ise hizalamayı ve yer tutucu metinleri sınar. İki uç birlikte tutulduğunda, tek bir ülkeye bakarak yapılan varsayımlar hızla çürür.
Sınır örneğinin bir diğer işlevi, alanların birbiriyle ilişkisini test etmektir. Bir ülkede bir alan zorunlu, başka bir ülkede isteğe bağlı, üçüncüsünde ise hiç yok ise, formun alanları yeniden düzenleme biçimi görünür hale gelir. Bu görünürlük, yalnızca benzer ülkelerden oluşan bir kümede elde edilemez.
Sınır örneklerini seçerken ölçütü yazılı tutun. “Zor bir ülke” gibi bir ifade, iki ekip üyesinin aynı şeyi anlamasını sağlamaz; hangi alanı, hangi uzunluğu ya da hangi karakter kümesini zorladığını yazmak, örneğin neden listede olduğunu kalıcı kılar.
Posta kodu ya da idari bölümü olmayan ülkeler nasıl test edilir?
Bu ülkeler, kümenin en çok atlanan parçasıdır ve tam olarak bu yüzden en değerlisidir. Bir alanın her ülkede bulunduğu varsayımı, o alanın bazı ülkelerde hiç olmadığı gerçeğiyle karşılaştığında iki farklı sonuç doğurur: ya geçerli bir kayıt reddedilir ya da boş bir alan zorla doldurulur. İkisi de kullanıcıya yanlış yansır.
Doğru test, alanı “boş bırakılabilir” yapmak değil, alanın o ülke için uygulanabilir olup olmadığını ayrı bir durum olarak modellemektir. Böylece form, uygulanamayan alanı hiç göstermez; doğrulama katmanı da onu eksik saymaz. Bu ayrımı test etmenin yolu, kümede en az bir uygulanamaz alan örneği bulundurmaktır.
Bu noktada format ayrıntılarına girmeye gerek yok. Hangi ülkede posta kodunun hangi biçimde yazıldığı ayrı bir konudur ve posta kodu biçimlerinin ülkeye göre değişmesi yazısında ele alınır; bu yazının konusu yalnızca kümenin nasıl seçildiğidir.
Varsayılan küme nasıl bir araya gelir?
Çalışan bir varsayılan küme genellikle üç katmandan oluşur. Katmanların her biri farklı bir soruyu cevaplar ve birinin eksikliği, belli bir hata sınıfını görünmez bırakır.
- Ana ülke: ekibin en iyi tanıdığı, günlük geliştirmede kullanılan ülke. Hızlı geri bildirim verir ve diğer her şeyin karşılaştırma tabanıdır.
- Ana pazarlar: ürünün gerçekten hizmet verdiği ülkeler. İş kurallarının ve faturalama akışlarının temsil edildiği katmandır.
- Uç örnekler: çok küçük bir bölge, çok kalabalık bir ülke ve alanı uygulanamayan bir ülke. Kesme, uzunluk ve uygulanabilirlik varsayımlarını sınar.
Katmanları toplarken sayıdan çok çeşitliliğe bakın. Aynı bölgeden gelen on ülke, çoğu zaman farklı bölgelerden gelen üç ülkeden daha az bilgi verir; çünkü kod yolları büyük ölçüde aynıdır. Kümeyi gözden geçirirken “bu ülke hangi yeni yolu açıyor” sorusunu sormak, listeyi kısa ve keskin tutar.
Son olarak, kümede hiçbir zaman gerçek kişilere ait bilgi kullanmayın. Doğrulama sırasında bir kaydın gerçek bir kişiye ait olduğu anlaşılırsa, o kayıt test aracı olmaktan çıkar ve veri koruma yükümlülüğü doğurur. Küme, en baştan uydurma değerlerle kurulmalıdır.
Geliştiriciler için: ülke kümesini sürümlenmiş bir varlık olarak tutmak
Ülke kümesi bir kez yazılıp bırakılan bir liste değil, sürekli düzenlenen bir varlıktır. Bu yüzden onu kodun içine gömülü sabit bir dizi olarak değil, sürümlenmiş bir veri olarak tutmak gerekir. Sürüm numarası, dünkü ve bugünkü test sonuçlarının aynı koşullarda üretilip üretilmediğini anlamanın tek yoludur.
Küme her değiştiğinde, hangi ülkenin hangi gerekçeyle eklendiğini ya da çıkarıldığını kaydedin. Bir ülkenin çıkarılması, o ülkeye bağlı doğrulama iddialarının da anlamını değiştirir; gerekçe yazılı değilse, bir süre sonra kimse neden orada olmadığını bilemez.
Sürüm geçmişini yalnızca kaydetmekle kalmayın, testleri de bu sürüme bağlayın. Böylece bir gerileme raporu okunduğunda, hangi ülke kümesiyle üretildiği görülebilir. Bu bağ, kümenin büyümesini kontrol altında tutar: her ekleme, bir karar ve bir kayıt gerektirir.
Kümenin kendisini ve kapsamını düzenli aralıklarla gözden geçirin. Ürün yeni bir pazara girdiğinde ya da bir pazardan çekildiğinde, liste kendiliğinden güncellenmez. Gözden geçirme tarihini de kayda geçirmek, listenin sessizce eskimesini engeller.
Sonraki adımlar
Küme kurulduktan sonra sorulacak ilk soru, bu kümenin hangi alanları gerçekten kapsadığıdır; bunu sistematik biçimde ölçmenin yolunu ülke verisi kapsam listesi yazısında bulabilirsiniz. Listenin zamanla eskimesi ve kaynakların nasıl izleneceği ise ülke verisinin güncelliği yazısının konusudur. Seçtiğiniz ülkelerin hangi alanları hangi biçimde istediğini karşılaştırmak için sitemizdeki ülke ve bölge dizini sayfasını kullanabilirsiniz.
Bu yazıdaki ülke adları, küme adları ve örnek değerler yalnızca anlatımı somutlaştırmak için uydurulmuş örneklerdir; gerçek bir ülke listesini ya da gerçek bir kapsam oranını temsil etmez, hiçbir kuruma veya kişiye ait değildir ve resmî bir kayıt yerine geçmez.