SCRUM (Agile) & Testing (V&V)

Bir önceki yazıda Scrum’ın bir geliştirme yaklaşımı(proje yönetim metedolojisi) olduğundan bahsetmiştik.

Testing açısından SCRUM ‘ı inceleyelim.

Testing’in tam ve genel bir tanımı olmamakla birlikte

Testing = Verification (Doğrulama) + Validation (Geçerleme) aktivitelerinin bütünü olduğunu belirtelim.

Verification (Doğrulama) :Doğru ürünü üretiyor muyuz? (What)sorusunun cevabını

Validation (Geçerleme) : Ürünü doğru üretiyor muyuz? (How)sorusunun cevabını verir.

Bu iki sorunu sorunu cevabını verebilmek için Static (statik) ve Dynamic (dinamik) testing ‘ten faydalanılır.

Static Testing     : Gözden Geçirme,inceleme aktiviteisidir.Herhangi bir koşum yapılmaz. (Quality Control) – Verification ile ilgilidir.

Dynamic Testing : Script(test) Koşum tabanlı aktivitedir. (Quality Assurance) – Validation ile ilgilidir.

Static ve Dynamic testing birbirinin tamamlayan aktivitelerdir.

Biraz da test level’larına değinelim.

  • Unit
  • Integration
  • System & Performance
  • User Acceptance(UAT)

adımlarından oluşur ve her bir adım için statik ve dinamik testing aktivitelerinde bulunulmalıdır.

Şimdi SCRUM ‘a geri dönelim.

Daily Scrum Meeting, OnSite Customer ,Refactoring,CI (Continues Integration)   verifikasyon ve validasyon

yapmanıza yapmanızı sağlayacaktır.Peki bu nasıl olacak?

Öncelikle Analiz – Development – Test aktiviteleri ve bunu her Sprint için paralel olarak gerçekleştirildiğini tekrar belirtelim.

PO(Product Owner) – müşterinin ihtiyaçlarını(onsite) toplar,gereksinimlerinizi,user story ‘lerinizin analizlerini ve yazımını
Developerlar ve testerlar birlikte yapar.(statik aktivite-gözden geçirme,inceleme,verifikasyon)

Scrum Master – Daily Scrum Meeting ‘lere başkanlık eder ve günlük bir gözden geçirme sağlanır.(verifikasyon)

Developer’lar Unit ve Integrasyon testleri hazırlar.(validasyon) ve refactoring yaparlar(verifikasyon).Tüm kodlar

source kontrol sisteminden(cvs,svn) kısa zaman aralıkları(1-2 saat) ile CI(Continues Integration) tooluna bütün

dinamik testleri ile aktarılır.Böylece Kısa zaman aralıklı ve sürekli validasyon sağlanır.

Testerlar,Sistem ve Performans testleri için test scriptlerini hazırlar.Burada Click & Record toollardan çokça faydalanılır.

“Static Code Analiz” test araçları CI araçları ile entegre edilebilir ve bu sayade code verifikasyon aktivitelerine destek verilir.  

Sprint sonlarında müşteriye kısa bir demo(UAT) yapılır ve

onayı alınır.Müşteri için doğru ürün doğru bir şekilde üretilmiş mi? bu sorunun cevabı alınır.

Bunu 15-30 günlük Her Sprint sonu için gerçekleştirisiniz

 


Source: rss

Agile Proje Yönetimi & SCRUM

Agile,Kimine göre proje yönetişimbilimi,kimine göre çatı(framework)ler topluluğu.

Kısaca

Agile manifesto özetlenen bir yaklaşım biçimidir. İlk temeli Lean manufacturing (Toyota Production System by Taiichi Ohno)

ile atılmıştır.Yazılım geliştimeye uygulanmış hali Lean software development olarak çıkar.Fakat Agile,bir çok metodoloji ve

farklı pratikler içerir.

Lean SD’dışında  Scrum,bu metodolojilerden biridir.FDD(Feature Driven Development),DSDM(Dynamic Systems Development Method)

bu metodojilere ekleyebiliriz.XP(eXtreme Programming),BDD(Behaviour Driven Development),TDD(Test Driven Development)

CI(Continues Integration)pratikler arasında yeralır.Yani bu tekniklerden faydalarak yazılım geliştirme metodojileri uygulayabilirsiniz.

Biraz Scruma değinelim.

Scrum,adını Rugby oyunundan alır ve toplanarak oyunu başlatmanın yoludur.

Benzer şekilde Scrum Team planma oyunu yapar, roller ve görevler dağıtılarak herkesin aynı hedef için çalışması sağlanır.

Sprint,Product Backlog,Sprint Backlog kavramlarını üzerinden geçelim.

  • Scrum,iteratif ve artan bir yöntemdir.
  • Scrum,Analiz,Geliştime ve Test analizin paralel gitmesini sağlayan bir yöntemdir.

Peki bu nasıl olur?

Product Backlog,müşteri ile anlaştığınız önceliklendirilmiş high level gereksinim listesi olarak düşünebilirsiniz.

Sprint,Genelde 15-30 günlük(Time-Boxed) proje zaman dilimidir.

Ve bir proje 1’den fazla Sprint’ten oluşur.Örnek olarak 3 aylık bir proje,

15 günluk iterasyonlarla ilerleyecekse 6 Sprint’iniz olacak demektir.

Her gün Scrum takımıyla,Scrum Daily Meeting (max 30 dk ve ayakta) düzeleyerek genel durum hakkında

bilgi alırsınız.Günlük bir gözden geçirme yapmış olursunuz.

Herkese 3 soru ile bilgi sabihi olursunuz.Scrum Master üç soru sorar:

  • Dün ne yaptın?
  • Bugün ne yapacaksın?
  • Seni engelleyen ne idi?

Herbir sprintte Product Backlog’tan alacağınız bir veya birkeç  kaç grup işi yapmak için

Analiz,Development ve Test ‘i paralel olarak ilerletirsiniz.

Bir bakıma Product Backlog’un Low Level Gereksiminlerini gerçekleştirmek için

çalışırsınız.User Story oluşturarak ve bunlar üzerine Task’lar  açarak programın feature(özelliklerini) geliştrirsiniz.

Ve herbir sprint sonunda yapılan bu işler doğrultusunda Sprint Backlog’u oluşmuş olur.

Sprint Burndown Chart, ile günlük olarak sprint hedefine ne kadar kaldığınızı görebilirsiniz.

Sprint sonunda müşteriye demo yapılır.Sprint Demo.

Sprint Demo ardından,Sprinti değerlendirmek içinde bir retrorespectif toplantısı düzenleyerek SCRUM takımı özeleştirisini yapar,dersler çıkartır.

Aşağıdaki resim kısaca süreci açıklar.

Source: rss