UAT (User Acceptance Testing) Kurgusu

User Acceptance Testing (Kullanıcı Kabul Testi) ürünün/projenin kullanıcılar tarafından kabul edildiği ve ürünün yayın ortamına hazır olduğundan emin olunması sağlayan, production öncesinde kullanılmasını önerilen önemli bir ortamdır. UAT ortamının diğer ortamlara (Development, Test, Staging, Production) göre farkı, test edenler geliştiren ve proje içerisinde yer alan ekip değil, projenin birincil muhattabı kullanıcılardır.

Planlama

UAT (Kullanıcı Kabul Testi), daha önceden belirlenen test senaryolarının tamamlanması sonrasında geçilen adım olduğu için, bu senaryolardan bağımsız olarak, sistemden bağımsız kişiler tarafından yapılmalıdır. Örneğin telefon numarası input testlerinde, test senaryoları ve test eden kişiler (development, test ekibi v.s.) el alışkanlığı ve otomatik doldurma yardımı ile aynı senaryoları test ederken, bağımsız kullanıcılar muhtemelen ilk kez gördükleri ekranda farklı/hatalı girişler yapabilirler.

Ürünün her aşamasında olduğu gibi planlama vazgeçilmezdir. İşlevsellik testlerinde kullanıcıya özellikle test edilmesi gereken senaryolar, input değerlerinden bağımsız olarak sunulmalıdır. Örneğin, “Yeni Üyelik” feature üzerinde duruyorsak, kullanıcılardan özellikle bu alanın yoğun olarak test edilmesi istenmelidir.

Veri Bağlantısı

Bu aşama son viraj olarak değerlendirildiğinden, ortam (canlı) production verilerine bağlı olmalıdır. Canlı verinin kullanıma açılması açısından da kritik bir adım niteliğindedir. Kritik veriler için, canlı veritabanının bir kopyası (replikasyon) tercih edilebilir.

UAT Ne zaman yapılır?

Canlı öncesinde son adım olarak planlansa da, olası senaryolar projeyi tekrar development ortamına götürür. Bu nedenle, mümkünse test > staging > uat > production döngüsünün sürekli yayında olması önerilir. Bu hali ile tamamlanan feature UAT ortamında test edilirken, development sürer. Aksi durumda son adımda karşılaşılan hata döngüyü tekrarlayarak projenin gecikmesine neden olabilir.

Gereklilik

Maalesef UAT ortamı, kritik projeler dışında yaygın olarak kullanılmıyor. Bununla birlikte ürün sahibi açısından önem arz ediyor.

Bunlarda ilgini çekebilir

Önceki yazı
DevOps nedir? Neden gereklidir?
Sonraki yazı
GitOps Nedir?