Çevik Yazılım Geliştirme Projelerine Yazılım Testini Nasıl Entegre Edebiliriz?
Çevik yöntemlerde yazılım testini yazılım geliştirme sürecine entegre etmek için aşağıdaki hangi öğelerden faydalanılabilir?
- Ürün İş Listesi (Product Backlog)
- Kabul Kriterleri (Acceptance Criteria)
- Bitti Tanımı (Definition of Done)
- Hepsi
- Hiçbiri
Ürün İş Listesi (Product Backlog)
Ürün iş listesinde yer alan her bir öğe bize ürünle ilgili hayata geçirilmesi gereken bir gereksinimi ifade etmektedir. Bu öğeler aylar, yıllar alabilecek epik büyüklüğünde öğeler olabileceği gibi, özellik (feature) veya kullanıcı hikayesi (user story) formatında daha az efor gerektiren gereksinimler de olabilir.
Yazılım testini çevik projelere entegre etmenin bir yöntemi özel efor gerektiren testleri ürün iş listesine bir öğe olarak koymaktır. Örneğin kullanılabilirlik testlerini ele alalım. Özel bir önem arz eden ve efor gerektiren kullanılabilirlik testleri aşağıdaki şekilde bir kullanıcı hikayesi olarak ürün iş listesine dahil edilebilir:
Kullanıcı Hikayesi 1 – Berkecan’ların Mobil Bankacılık Uygulamasını Kolaylıkla Kullanabilmesi
Üniversite öğrencisi Berkecan olarak, mobil bankacılık uygulamasını kafede otururken, metroda seyahat ederken kolaylıkla kullanıp işlemlerimi rahatlıkla yapabilmeliyim.
Kabul Kriterleri
- Mobil bankacılık uygulamasında “Su faturası ödeme” işlemini menüde rahatlıkla bulabilmeliyim
- Kredi kartı borcumu ana ekranımı özelleştirerek uygulamaya girer girmez görebilmeliyim
- Arama sonucundan okul harcı ödeme ekranına rahatlıkla gidebilmeliyim
- Tek tıkla bitcoin alıp satabilmeliyim
Yukarıda kısaca yazdığımız kullanıcı hikayesi sprint’e alınıp sprint iş listesinde (sprint backlog) aşağıdaki detaylara bölünebilir:
- Kullanıcı hikayesinde atıfta bulunulan Berkecan personasını temsil eden altı kullanıcı bulunup kullanıcı gözlemi görüşmelerinin ayarlanması
- Altı adet kullanıcı gözlemi oturumunun yapılması
- Her üç kullanıcı gözlemi oturumundan sonra elde edilen veri ve bilgilerin analiz edilmesi
- Her bir analizden sonra analizlerin ürün sahibine ve proje paydaşlarına sunulması
Belirlenen bu görevler sprint iş listesine (sprint backlog) dahil edilerek sprintlerde koşulmaya başlanabilir. Aşağıdaki örnekte 3. Sprint’e dahil edilmiş bu görevlerin 4. Sprint sonunda geldiği aşamayı bulabilirsiniz:
Kabul Kriterleri (Acceptance Criteria)
Yazılım testini çevik projelere entegre etmenin bir yöntemi de kullanıcı hikayesinin kabul kriterlerine fonksiyonel ve fonksiyonel olmayan gereksinimler olarak bunları dahil etmektir. Bu şekilde dahil edilen gereksinimleri sağlayabilmek için geliştirme ekibi fonksiyonel veya fonksiyonel olmayan testleri yapmak zorunda kalacaklardır. Örneğin aşağıdaki kullanıcı hikayesine göre:
Kullanıcı Hikayesi 2 – Kredi Kartıyla Ödeme Yapılması
E-ticaret web sitesinde alışveriş yapan bir kullanıcı olarak, kredi kartımı kullanarak satın alma yapabilmeliyim. Bu sayede satın alma işlemimi hızlı ve güvenli bir şekilde gerçekleştirebilmeliyim.
Kabul Kriterleri
- Kullanıcı Troy, Mastercard ve Visa kredi kartlarıyla ödemesini yapabilmelidir
- CVV kontrolü yapılmalıdır
- Kredi kartı son kullanma tarihi kontrol edilmelidir
- İşlem tamamlandıktan sonra başarılı veya başarısız işlem bilgisi mesaj olarak kullanıcıya iletilmelidir.
- Kredi kartından çekim işlemi en fazla 2 saniye içinde gerçekleştirilmelidir.
Yukarıda listelenen kabul kriterlerinden 1, 2, 3 ve 4 geliştirme ekibi tarafından yapılması gereken fonksiyonel testlere karşılık gelirken 5. kabul kriteri fonksiyonel olmayan testlerden performans testine karşılık gelen bir kabul kriteridir. Kabul kriterlerinin bu şekilde listelenmesi geliştirme ekibinin bunlara karşılık gelen testleri yapmasına ve bu sayede testin yazılım geliştirmeye dahil edilmesine olanak sağlayacaktır.
Bitti Tanımı (Definition of Done)
Kabul kriterleri sadece bir tane kullanıcı hikayesini ilgilendirirken, bitti tanımları ise tüm kabul kriterlerini etkileyen genel kriterlerdir. Örneğin aşağıdaki bitti tanımı kriterlerine göre:
- Kullanıcı hikayesinin gözden geçirilmiş olması
- Kodun gözden geçirilmiş (code review) olması
- Tüm regresyon test setinin başarılı olarak koşulmuş olması
- Kullanıcı deneyimi ekibi tarafından arayüz tasarımının gözden geçirilmiş olması
Yukarıdaki listedeki her bir kriter tüm kullanıcı hikayelerini etkileyen ve hayata geçirilmesi gereken bir statik veya dinamik test aktivitesine karşılık gelmektedir. Bu şekilde bitti tanımlarına testler dahil edilerek çevik projelere yazılım testini entegre etmek mümkündür.
İlk başta sorduğumuz sorunun cevabına gelecek olursak ürün iş listesi (product backlog), kabul kriterleri (acceptance criteria) ve bitti tanımı (definition of done), bunların tümü çevik yazılım geliştirme projelerine testi entegre etmek için kullanılabilir. Doğru cevap ‘D’ seçeneği olan “Hepsi” dir.
Daha fazla bilgi için;
ISTQB Çevik (Agile) Test Uzmanı Ders Programı 2014 İngilizce
Keytorc ISTQB® Uluslararası Sertifikalı Agile Test Uzmanı Eğitimi
https://keytorc.com/egitimler/
Kitap – Yazılım Test Teknikleri