Kabul kriterleri: bir işin tamamlandığını nasıl kanıtlarsınız?
Kabul kriterleri (acceptance criteria) nedir, kullanıcı hikayesi için nasıl yazılır? Given-When-Then biçimi, örnekler ve sık yapılan hatalar.
Kabul kriterleri nedir?
Kabul kriterleri (acceptance criteria), bir kullanıcı hikayesinin ya da iş maddesinin müşteri veya ürün sahibi tarafından kabul edilebilmesi için karşılaması gereken, test edilebilir koşullardır. Hikaye "ne istendiğini" anlatır; kabul kriterleri ise "istenenin doğru yapıldığını nasıl anlarız" sorusunu yanıtlar.
İyi yazılmış kriterler, ürün sahibi, geliştiriciler ve test uzmanları arasında ortak anlayış kurar. Böylece geliştirme bittikten sonra çıkan "ben bunu böyle anlamamıştım" tartışmaları baştan önlenir.
İyi bir kabul kriterinin özellikleri
Etkili kriterler birkaç ortak özelliği taşır:
- Test edilebilir: Sonuç gözlemlenebilir ve "geçti ya da kaldı" biçiminde yanıtlanabilir olmalı. "Sistem hızlı olmalı" kriter değildir; ölçüt belirtilmeden test edilemez.
- Açık ve tek anlamlı: Farklı kişiler aynı biçimde yorumlayabilmeli.
- Çözümü değil sonucu anlatır: "Düğmeye tıklanınca" gibi arayüz ayrıntısına bağlanmak yerine kullanıcının elde ettiği sonucu tarif eder.
- Bağımsız ve özlü: Her kriter tek bir davranışı kapsar.
- Kapsamı sınırlar: Hikayenin sınırlarını belirler; olumsuz ve istisna durumlarını da içerir.
Kriter sayısı hikayenin boyutuyla orantılıdır; çok fazla kriter, hikayenin çok büyük olduğuna işaret eder ve bölünmesini gerektirir.
Yazım biçimleri: kontrol listesi ve Given-When-Then
En yaygın iki biçim vardır.
Kural tabanlı liste: Her kriter ayrı bir madde olarak yazılır. Basit hikayeler için hızlı ve okunaklıdır.
Senaryo tabanlı (Given-When-Then): Davranış odaklı geliştirme (BDD) dilinden gelir. Given, başlangıç durumunu; When, kullanıcının eylemini; Then ise beklenen sonucu anlatır.
Örneğin: Verilen durumda kullanıcı oturum açmış ve sepetinde ürün var. Kullanıcı kupon kodunu girdiğinde, kod geçerliyse toplam tutar indirim uygulanarak güncellenir ve ekranda uygulanan indirim görünür. Kod geçersizse sepet tutarı değişmez ve kullanıcıya nedenini anlatan bir hata mesajı gösterilir.
Bu biçim, senaryoyu doğrudan otomatik teste çevirmeye de uygundur.
Örnek: kullanıcı hikayesi ve kriterleri
Hikaye: "Üye olarak parolamı unuttuğumda e-posta ile sıfırlama bağlantısı alabilmek istiyorum."
Kabul kriterleri şöyle yazılabilir: • Kayıtlı bir e-posta adresi girildiğinde kullanıcıya sıfırlama bağlantısı içeren bir e-posta gönderilir. • Kayıtlı olmayan adres girildiğinde de ekranda aynı genel bilgi mesajı gösterilir; böylece hesabın var olup olmadığı dışarıdan anlaşılmaz. • Bağlantı belirli bir süre sonra geçerliliğini yitirir ve yalnızca bir kez kullanılabilir. • Yeni parola, kurumun parola politikasını karşılamıyorsa kayıt kabul edilmez ve kullanıcıya gerekçe bildirilir. • Parola değiştirildiğinde diğer açık oturumlar sonlandırılır.
Görüldüğü gibi her madde ayrı ayrı doğrulanabilir; olumsuz yollar ve güvenlik beklentileri de kapsanmıştır.
Kabul kriterleri, Definition of Done ve test senaryoları
Kabul kriterleri hikayeye özgüdür: yalnızca o hikayenin işlevsel beklentisini tanımlar. Definition of Done ise tüm artışlar için geçerli kalite ölçütleridir; örneğin kodun gözden geçirilmesi, otomatik testlerin geçmesi ve belgelendirme gibi. Bir iş maddesi bitmiş sayılması için hem kendi kabul kriterlerini hem de DoD'u karşılamalıdır.
Test senaryoları ise kriterlerin ayrıntılı doğrulama adımlarına dönüşmüş halidir. Kriter "ne", senaryo "nasıl test edilecek" sorusunu yanıtlar. Yazılım sürüm doğrulamasında kullanıcı kabul testleri (UAT), bu kriterlerin iş birimi tarafından gerçek kullanım koşullarında doğrulanmasıdır.
Sık hatalar: Kriterleri geliştirme bittikten sonra yazmak, belirsiz sıfatlarla yetinmek, yalnızca mutlu yolu yazıp hata durumlarını atlamak ve ekranın nasıl görüneceğini kriter diye dayatmak.
Mindset programlarında nerede çalışılır?
Mindset kataloğunda iki program kabul kriterlerini farklı açılardan ele alır. Backlog Refinement Pratikleri programı Kaliteli User Story Yazımı, Kabul Kriterleri ve Definition of Ready ile Tahminleme Yöntemleri gibi modülleri içerir. Yazılım Sürüm Doğrulama ve Kabul Testleri (UAT) programı ise Kabul Kriterlerinin Yazımı, UAT Planlaması ve Koşum Yönetimi ile Yayın Onayı ve Sürüm Doğrulama modüllerinden oluşur.
İlgili Mindset programı
Backlog Refinement Pratikleri
Sık sorulan sorular
Kabul kriterleri kim tarafından yazılır?
Genellikle ürün sahibi taslağı hazırlar, ancak en verimli sonuç ürün sahibi, geliştiriciler ve test uzmanlarının refinement oturumunda birlikte yazmasıyla alınır. Böylece iş beklentisi, teknik uygulanabilirlik ve test edilebilirlik aynı anda gözetilir ve ortak anlayış kurulur.
Bir hikaye için kaç kabul kriteri yazılmalıdır?
Sabit bir sayı yoktur. Kriter sayısı hikayenin kapsamıyla orantılıdır. Çok fazla kriter genellikle hikayenin fazla büyük olduğunu gösterir ve bölünmesi gerekir. Az sayıda ama net, test edilebilir ve olumsuz durumları da kapsayan kriterler yeğlenir.
Given-When-Then zorunlu mudur?
Hayır. Basit hikayeler için madde madde liste yeterlidir. Given-When-Then, davranışın başlangıç durumu, eylem ve sonuç olarak net ayrılması gereken karmaşık senaryolarda ve otomatik test yazılacak durumlarda daha yararlıdır.
Kabul kriterleri ile Definition of Done arasındaki fark nedir?
Kabul kriterleri tek bir hikayeye özgü işlevsel beklentileri tanımlar. Definition of Done ise tüm iş maddeleri için geçerli genel kalite ölçütleridir, örneğin kod gözden geçirme ve testlerin geçmesi. Bir madde bitmiş sayılmak için ikisini birden karşılamalıdır; biri işlevi, diğeri kaliteyi güvence altına alır.