Davranış Odaklı Geliştirme - Giriş
Davranış Odaklı Geliştirme (BDD), orijinal olarak Test Güdümlü Geliştirme'den (TDD) ortaya çıkan bir yazılım geliştirme sürecidir.
BDD'nin evriminden sorumlu olan Dan North'a göre, "BDD, önemli bir yazılım sunmak için ortak bir anlayış oluşturmak ve belirsizliği ortaya çıkarmak için birden çok düzeyde örnekler kullanıyor."
BDD, geliştirmeye dahil olan herkes için okunabilir ve anlaşılır bir dilde yazılmış sistemin davranışını göstermek için örnekler kullanır. Bu örnekler şunları içerir -
Yürütülebilir spesifikasyonlara dönüştürüldü.
Kabul testleri olarak kullanılır.
BDD - Anahtar özellikler
Davranış Odaklı Geliştirme şunlara odaklanır:
İş değeri olan bir ürün sunmak amacıyla yazılım geliştirmede işbirliği yapmak için yazılım geliştiriciler, iş analistleri ve paydaşlarla iletişimi teşvik eden ortak bir süreç ve paylaşılan araçlar sağlamak.
Bir sistemin nasıl uygulanması gerektiği değil, ne yapması gerektiği.
Daha iyi okunabilirlik ve görünürlük sağlar.
Yazılımın sadece çalıştığını değil aynı zamanda müşterinin beklentilerini karşıladığını da doğrulamak
BDD'nin Kökeni
Bir kusuru düzeltmenin maliyeti, kusur doğru zamanda tespit edilmezse ve tespit edildiğinde düzeltilmezse çok kat artar. Aşağıdaki örneği düşünün.
Bu, gereksinimler doğru bir şekilde sağlanmadıkça, gereksinimlerin yanlış anlaşılmasından kaynaklanan kusurları daha sonraki bir aşamada düzeltmenin pahalı olacağını gösterir. Ayrıca, son ürün müşterinin beklentilerini karşılamayabilir.
Saatin ihtiyacı bir geliştirme yaklaşımıdır -
Gereksinimlere dayanmaktadır.
Geliştirme boyunca gereksinimlere odaklanır.
Gereksinimlerin karşılanmasını sağlar.
Yukarıda belirtilen gereksinimleri karşılayabilecek bir geliştirme yaklaşımı BDD'dir. Böylece, Davranış Odaklı Geliştirme -
Sistemin farklı beklenen davranışlarının örneklerini türetir.
Müşteriler de dahil olmak üzere geliştirmeye dahil olan herkesin kolayca anlayabilmesi için örneklerin iş alanı terimlerini kullanarak bir dilde yazılmasını sağlar.
Zaman zaman müşteri ile onaylanan örnekleri görüşmeler yoluyla alır.
Geliştirme boyunca müşteri gereksinimlerine (örnekler) odaklanır.
Örnekleri kabul testleri olarak kullanır.
BDD Uygulamaları
BDD'nin iki ana uygulaması şunlardır:
Örneğe Göre Tanımlama (SbE)
Test Odaklı Geliştirme (TDD)
Örneğe Göre Şartname
Örneklerle Tanımlama (SbE), iş kurallarını ve oluşturulacak yazılımın davranışını göstermek için konuşmalardaki örnekleri kullanır.
Örneklerle Spesifikasyon, ürün sahiplerinin, iş analistlerinin, test uzmanlarının ve geliştiricilerin iş gereksinimleri hakkındaki yaygın yanlış anlamaları ortadan kaldırmasını sağlar.
Test Odaklı Geliştirme
Test Driven Development, BDD bağlamında, örnekleri insanlar tarafından okunabilir, yürütülebilir spesifikasyonlara dönüştürür.
Geliştiriciler, bu özellikleri yeni işlevsellik artışlarını uygulamak için bir kılavuz olarak kullanır. Bu, yazılımın ömrü boyunca bakım maliyetlerini düşük tutan yalın bir kod tabanı ve otomatikleştirilmiş regresyon testleri ile sonuçlanır.
Çevik BDD
Çevik yazılım geliştirmede, BDD yöntemi, bekleyen spesifikasyonlar üzerinde ortak bir anlayışa ulaşmak için kullanılır.
Aşağıdaki adımlar Agile BDD'de yürütülür -
Geliştiriciler ve ürün sahibi, bekleyen özellikleri birlikte düz bir metin düzenleyicide yazarlar.
Ürün sahibi, sistemden beklediği davranışları belirtir.
Geliştiriciler
Özellikleri bu davranış ayrıntılarıyla doldurun.
Sistemi anlayışlarına göre sorular sorun.
Mevcut sistem davranışları, yeni özelliğin mevcut özelliklerden herhangi birini bozup bozmayacağını görmek için kabul edilir.
Çevik Manifesto ve BDD
Çevik Manifesto şunları belirtir:
Bunu yaparak ve başkalarının yapmasına yardımcı olarak yazılım geliştirmenin daha iyi yollarını ortaya çıkarıyoruz. Bu çalışma sayesinde, değer kazandık -
Individuals and interactions - fazla Süreçler ve araçlar
Working software - çok Kapsamlı belgeler
Customer collaboration - Sözleşme müzakeresi
Responding to change - Bir planı takip etmek
Yani sağdaki öğelerde değer varken soldaki öğelere daha çok değer veriyoruz.
BDD, Agile manifestosuna şu şekilde uyum sağlar:
Çevik Manifesto | BDD Hizalaması |
---|---|
Süreçler ve araçlardan ziyade bireyler ve etkileşimler. | BDD, sohbet etmekle ilgilidir. |
Kapsamlı dokümantasyon yerine çalışan yazılım. | BDD, ticari değeri olan yazılımları oluşturmayı kolaylaştırmaya odaklanır. |
Sözleşme müzakeresi yerine müşteri işbirliği. | BDD, gelişim ilerledikçe müşteriyle sürekli iletişim halinde olan fikirlere dayalı senaryolara odaklanır. Herhangi bir söze dayanmamaktadır. |
Bir planı takip etmek yerine değişime yanıt vermek. | BDD, değişikliklerin özümsenmesini kolaylaştıran sürekli iletişim ve işbirliğine odaklanır. |