TDD — BDD YAKLAŞIMI NEDİR?

Esra Simsar
3 min readSep 2, 2020

--

Herkese merhaba,

İlk blog yazımda TDD-BDD yaklaşımına yer vermek istedim. 😊Son zamanlarda oldukça sık duyduğumuz bu yöntemlerin bize sağladığı birçok avantaj ve kolaylığı var. Bu yazımda kısaca bunlara değinerek sizlere açıklamaya çalışacağım.

TDD YAKLAŞIMI

TDD (Test Driven Development) , Kent Back tarafından Extreme Programming’in bir parçası olarak bulunmuş bir programlama tekniğidir. Bu teknik kod yazılmadan önce test senaryoların belirlenmesi ve bu senaryolara bağlı kalınarak kodun yazılması ve Refactor edilmesini desteklemektedir. Bu yöntem aslında basit ve kısa adımlarla önceden tasarlanmış senaryoları hızlı bir şekilde koda dökmeyi hedeflemektedir.

TDD yaklaşımda 3 adım mevcuttur. Bunlar;

· Red

· Green

· Refactor

Red adımında önceden yazılmış test senaryosu baz alınarak bir test scripti yazılmakta ve bu script çalıştırılarak testin fail bitmesi sağlanmaktadır. Zaten testin başarılı bitmesine sağlayacak yazılım yapılmadığı için test her halükarda fail bitecektir.

Green adımında, fail biten testin başarılı bitmesini sağlayacak kodlar yazılır ve test tekrar çalıştırılarak başarılı bitmesi sağlanır. Burada dikkat edilmesi gereken testin başarılı bitmesi sağlanırken ihtiyaçlarının göz ardı edilmemesidir.

Refactor adımında ise, başarılı biten testin sonrasında yazılmış olan kodda iyileştirmelerin yapıldığı adımdır. Burada gereksiz, tekrar eden kodlardan arınarak daha kaliteli kod yazımı hedeflenmiştir.

Bu 3 adım her test senaryosu için tekrar ederek ilerlemektedir.

TDD’nin Avantajları :

· Her test senaryosu için bu döngü tekrarlanacağından kodlar arasındaki bağımlılık normal yazılım geliştirme sürecine göre azalmakta. Bu nedenle yeni bir kod parçası eklendiğinde mevcut kodlarda bozulma olasılığı düşmektedir.

· Daha hızlı bir yazılım geliştirme sağlar.

· Refactor adımında gereksiz ve tekrar eden kodlardan arındığımız için daha kaliteli kod yazılmasını sağlar.

· Test ve yazılım süreci birlikte aktığı için hatalar daha çabuk tespit edilir.

BDD YAKLAŞIMI

BDD yaklaşımı ilk olarak 2009 yılında Dan North tarafından ortaya atılmıştır. Açılımı Behavior Driven Development olan BDD, TDD yaklaşımının karmaşıklığı gidermek amacıyla ortaya çıkmıştır. Yazılım süreçlerinin daha test odaklı gitmesini sağlayan bir yaklaşımdır. TDD yaklaşımında olduğu gibi burada da yazılım geliştirmeye başlamadan önce test senaryolarının yazılması desteklenmektedir.

BDD’nin en güzel yanlarından biri konuşma dilinde test senaryoları yazmamıza olanak sağlamasıdır. İş analistleri müşteri ile yaptığı görüşmeler sonrasında ihtiyacı anlayarak user storyler oluşturmakta ve oluşturulan bu user storyler üzerinden de test senaryoları hazırlanarak koda dökülmektedir. Kısacası müşterinin ihtiyacı konuşma dilinde koda döküldüğü için müşteri ile ortak bir dilde buluşmaya olanak sağlayan bir yaklaşımdır aslında. Kolay bir yazım yöntemi olmasıyla birlikte “Given”, “When”, ”Then” olarak 3 başlıkta senaryolar kurulmaktadır.

BDD’nin Avantajları :

· İşbirliğini arttırır ve geliştirir. Konuşma dilinde test senaryoları yazıldığı için ekibe yeni katılan üyeler sürece çok çabuk adapte olabilir ve davranışsal senaryolar yazabilirler.

· Kodun kalitesini artırarak temelde bakım maliyetini düşürür ve proje riskleri en aza indirilir.

· Müşterinin ihtiyacına yönelik belirlenen user storyler aracılığıyla test senaryoları oluşturulup koda döküldüğü için belirlenen ihtiyaçlar daha iyi karşılanmaktadır.

· Geliştiriciler işleyişi daha iyi öngörebildikleri için yazdıkları koda daha fazla güvenirler.

Bir sonraki yazımda bdd yaklaşımını kullanarak cucumber’da otomasyon yazımına değineceğim.

Bir sonraki yazımda görüşmek üzere 😊

--

--

Esra Simsar

Expert Business Analyst // Product Owner at Garanti BBVA Technology