1. Behaviour Driven Development Temelleri
BDD’nin amacı, çalışma şekli ve ekipler arasındaki ortak anlayışı nasıl desteklediği ele alınır.
- BDD’nin temel amacı
- Software delivery süreçlerinde yaygın collaboration problemleri
- Shared understanding oluşturma
- Requirements, examples, tests ve working software arasındaki ilişki
- BDD’nin yalnızca teknik değil aynı zamanda communication odaklı bir yaklaşım olması
2. Test Coverage ve Quality
BDD’nin software quality ve test coverage üzerindeki etkisi değerlendirilir.
- Test data’nın coverage üzerindeki rolü
- Test-after yaklaşımının riskleri
- Test-before thinking yaklaşımının faydaları
- Concrete example’ların varsayımları görünür hale getirmesi
- Edge case’lerin ortaya çıkarılması
- BDD ile delivered software’e duyulan güvenin artırılması
3. User Stories
Etkili user story’lerin nasıl yazılacağı ve kalite açısından nasıl değerlendirileceği ele alınır.
- Etkili user story oluşturma
- User story’leri business goals ile ilişkilendirme
- INVEST ile story quality değerlendirmesi
- Story sizing
- Story refinement
- Zayıf veya eksik user story’leri belirleme
4. Story Mapping
User journey’nin görselleştirilmesi ve delivery work’ün yapılandırılması ele alınır.
- User journey’den story map oluşturma
- Activities ve tasks belirleme
- Supporting stories oluşturma
- Workflow boyunca story prioritisation
- Story mapping ile planning ve alignment
- AI-assisted prompts ile story map geliştirme
5. Acceptance Criteria
Acceptance criteria’nın test edilebilir requirements oluşturmadaki rolü incelenir.
- Acceptance criteria’nın amacı
- SMART kullanarak açıklığı ve test edilebilirliği artırma
- Acceptance criteria’yı örneklere dönüştürme
- Gaps ve ambiguity belirleme
- Eksik business rule’ları ortaya çıkarma
- Acceptance criteria ile BDD scenarios arasında bağlantı kurma
6. Shared Understanding ve Specification by Example
Business, development ve testing rollerinin ortak bir anlayış geliştirmesi için kullanılan yaklaşımlar ele alınır.
Three Amigos
- Business, development ve testing perspektiflerini bir araya getirme
- Kod yazılmadan önce görüşme ve netleştirme
- Varsayımları concrete example’larla sorgulama
Specification by Example
- Örneklerle gereksinim açıklama
- Belirsizlikleri azaltma
- İş kurallarını daha görünür hale getirme
- AI-assisted prompts ile örnekleri gözden geçirme ve geliştirme
7. Living Documentation ve Traceability
BDD çıktılarının güncel ve kullanılabilir dokümantasyona nasıl dönüştürülebileceği incelenir.
- Living documentation’ın amacı
- Feature file’ların expected behaviour’ı dokümante etmesi
- Scenario’ları user story ve business goal’larla ilişkilendirme
- Dokümantasyonu working software ile senkron tutma
- Kullanıcısı veya iş değeri olmayan dokümantasyondan kaçınma
8. Gherkin Syntax ve Yapısı
BDD senaryolarını açık ve standardize edilmiş şekilde ifade etmek için kullanılan Gherkin yapısı ele alınır.
- Feature yapısı
- Scenario yapısı
- Given, When ve Then syntax
- And ve But kullanımı
- Background sections
- Data tables
- Examples tables
- Açık Gherkin yazımı için temel prensipler
- AI-assisted prompts ile Gherkin üretme ve iyileştirme
9. Scenario Writing Styles
Farklı scenario writing stilleri karşılaştırılır.
Imperative Style
- Adım adım davranış tanımlama
- Daha ayrıntılı teknik anlatım
Declarative Style
- Beklenen davranış ve business intent’e odaklanma
- Daha okunabilir ve sürdürülebilir senaryolar
Ayrıca:
- Uygun detail level seçimi
- Readability geliştirme
- Maintainability artırma
- Scenario intent’ini daha açık hale getirecek yeniden yazım teknikleri
ele alınır.
10. Cucumber Implementation
Gherkin senaryolarının executable specification’a dönüştürülmesi uygulamalı olarak incelenir.
- Gherkin’den executable specification’a geçiş
- Cucumber initialization
- Step definition oluşturma
- Step definition’ları gözden geçirme
- Feature file’ları implementation code ile bağlama
- Feature file’dan passing test’e uzanan BDD lifecycle
- AI assistance ile implementation desteği
- AI tarafından üretilen çıktılarda human review yaklaşımı
Uygulamalı Öğrenme
Workshop boyunca katılımcılar teorik anlatımların yanında uygulamalı çalışmalar gerçekleştirir.
Bu çalışmalar arasında:
- User story değerlendirme
- Story mapping
- Acceptance criteria yazımı
- Specification by example
- Three Amigos yaklaşımı
- Gherkin scenario oluşturma
- Scenario rewriting
- Cucumber implementation
- AI-assisted prompting
- Living documentation ve traceability çalışmaları
yer alır.
Eğitimin temel hedefi, katılımcıların yalnızca BDD terminolojisini öğrenmesi değil; ekipler arasında daha açık, test edilebilir ve ortak anlayışa dayalı specification’lar oluşturabilecek pratik bir yaklaşım geliştirmesidir.