ATDD hakkında konuşma zamanı geldi! ATDD hakkında bilgi edinmek veya bu kavramı tazelemek istiyorsunuz. Endişelenmeyin! Bu makalede, ATDD'nin tam olarak ne olduğunu ve BDD ve TDD ile nasıl bir ilişkisi olduğunu ele alacağız. Ayrıca en iyi uygulamaları ele alacak ve adım adım tüm metodolojiyi inceleyeceğiz!

Bu ATDD kılavuzunda

ATDD nedir?

ATDD, ATDD'nin uygulanmasıdır. ATDD geliştirme yaklaşımı, ATDD ve BDD uygulamalarını içeren bir çerçevedir. ATDD, kabul testi odaklı geliştirme anlamına gelir.

ATDD, önce kabul testi senaryoları yazarak, ardından teknik olmayan katılımcılarla işbirliği içinde kodu uygulayarak otomasyon kodunun geliştirilmesine yardımcı olan benzersiz bir yazılım geliştirme süreci yaklaşımıdır. ATDD, teknik olmayan katılımcıları, test uzmanlarını ve geliştiricileri tek bir ortamda bir araya getirerek aynı ürün üzerinde işbirliği içinde çalışmasını sağlar. ATDD aracı test amaçlı değildir, ancak ATDD uygulamalarını destekler.

BDD ile TDD karşılaştırması

BDD, kabul testleri ile yürütülen ATDD'nin aksine örnekler ile yürütülür. TDD birim testlerine odaklanırken, BDD hem birim testlerine hem de kabul testlerine odaklanır. ATDD, geliştirme süreci boyunca geliştiricilerle birlikte çalışarak neyin geliştirilmesi gerektiği konusunda açıklık ve işbirliği sağlayacak bir iş uzmanı gerektirir.

Bir geliştirici olarak kendinize şu soruyu sorabilirsiniz: ATTD ve ATDD tam olarak ne anlama geliyor? ATTD, kabul testi odaklı geliştirme anlamına gelir. ATDD ise test odaklı geliştirme ve BDD'nin tek bir uygulama olarak kabul edilmesi anlamına gelir. ATDD, TDD'ye (test odaklı geliştirme) benzer, ancak kodlama başlamadan önce kabul testleri yazılması gibi ek bir gereklilik vardır.

Çeviklik ve TDD

Agile, ATDD, TDD ve BDD uygulamalarını içerir. ATTD, ATDD'nin bir alt kümesidir. ATTD'yi ATDD'nin daha erken bir biçimi olarak düşünebilirsiniz. Agile'da, ATTD geliştirme yaklaşımı XP'de (Extreme Programming) ATTD ve ATBD (kabul testi odaklı geliştirme) olarak bilinir. ATBD, iş uzmanlarının geliştiricilerle neyin geliştirileceği konusunda işbirliği yapmasını içerir.

Scrum'da kabul testleri, kullanıcıları/müşterileri temsil eden bir iş uzmanı ile işbirliği yaparak belirli bir özellik veya kullanıcı hikayesi için neyin geliştirilmesi gerektiğini tartışan geliştirme ekibi adlı bir grup tarafından yazılır. Kabul testleri, kabul kriterlerini temsil eden üst düzey gereksinimler/kullanıcı hikayelerine dayalı olarak yazılır. Kabul testleri, kabul kriterlerinin ne zaman karşılandığının nasıl belirleneceğini belirtir. ATDD, 2003 yılında Dan North tarafından tanımlanmıştır. ATDD, ATBD (Kabul Testi Odaklı Geliştirme) ile çok benzer bir süreçtir. ATBD, uygulama ayrıntılarını da belirtmesi bakımından ATDD'den farklıdır, oysa ATDD uygulama ayrıntılarını belirtmeye çalışmaz – ATDD'nin amacı yalnızca uygulamanın gereksinim özelliklerini karşılayıp karşılamadığını test etmektir.

ATDD avantajları

ATDD'nin birçok faydası vardır. Bunlar arasında müşteri memnuniyetinin artması, kalitenin iyileşmesi, maliyetlerin azalması, hızın artması ve üretkenliğin artması sayılabilir. ATDD ilkeleri, şelale ve çevik yöntemlerle uyumludur. ATDD ayrıca, engelleri ortadan kaldırarak, belirsizlikleri gidererek ve tüm proje yaşam döngüsü boyunca iletişimi iyileştirerek iş kullanıcıları ve geliştiriciler arasında daha güçlü bir işbirliğini teşvik eder.

ATDD, tüm paydaşların geliştirme sürecinin her aşamasında birlikte çalışmasını gerektirir. ATDD, kaliteli yazılım üretmek için gereken süreyi azaltır. ATDD ayrıca, yeniden çalışma ihtiyacını azaltarak ve geliştirme döngüsünün erken aşamalarında hataları düzelterek israfı azaltır. ATDD, doğru bir şekilde uygulandığında, proje yaşam döngüsünün her aşamasında başarı şansınızı artıracaktır!

ATDD'nin avantajları, üretim kodundaki hataları azaltırken manuel testlerde zaman ve emekten tasarruf sağlamasıdır. Ayrıca geliştiricilerin verimliliğini %50 oranında artırır. ATDD ile başarıya ulaşmanın anahtarı, önce kabul testleriyle başlamanız, ardından birim testlerine geçmeden önce entegrasyon testlerine geçmenizdir.

 

ATDD'nin adımları

ATDD kullanılıp kullanılmadığına bakılmaksızın kabul testinde 5 adım vardır:

1) İlk adım, iş ihtiyaçlarını anlamaktır.

2) İkinci adım, kullanıcı hikayelerini yazmaktır.

3) üçüncü adım, test senaryolarını hazırlamaktır.

4) Dördüncü adım, kusurları analiz etmektir.

5) Son adım, ATDD çerçevesi ile test senaryolarını yürütmektir.

ATDD'nin tam formu nedir?

ATDD'nin tam formu, ATDD'nin bir alt kümesi olan ATTD'dir. ATTD, kabul testi odaklı geliştirmedir. ATDD, hem ATTD hem de ATBD'dir (Kabul Testi Odaklı Geliştirme). ATBD, ATTD, ATDD ve BDD uygulamalarını içerir. ATBD, ATDD'den, ATBD'nin uygulama ayrıntılarını da belirtmesi, ATDD'nin ise uygulama ayrıntılarını belirtmeye çalışmaması bakımından farklıdır. ATDD sürecinin amacı, uygulamanın gereksinim özelliklerini karşılayıp karşılamadığını test etmektir.

Kabul testinde yer alan adımlar:

1) iş ihtiyaçlarını anlamak;

2) kullanıcı hikayeleri yazmak;

3) test senaryolarının hazırlanması;

4) kusurları analiz etmek ve son olarak,

5) tanıtılan çerçeveye göre test senaryolarını yürütmek.

Doğru ATDD için ipuçları

ATDD'nin ne olduğunu bilmek bir şey, ancak bu çerçeveyi ve süreci uygulamak başka bir şeydir. Deneyimlerime göre, şu ipuçları çok yararlıdır:

  1. ATDD erken yapılmalıdır ATDD, birim testlerinin yerini almamalıdır ATDD bir test tasarım tekniğidir ATDD işbirliği gerektirir ATDD, iyi kullanıcı hikayeleriniz olduğunda en iyi sonucu verir ATDD, geliştiriciler ve test uzmanlarıyla yapılan işbirliği oturumları zaman alıcı olabilir, ancak bu işbirliği daha iyi bir nihai ürün ortaya çıkarır ATDD, gereksinimler net olduğunda en iyi sonucu verir ATBD/ATDD, gereksinimleri net bir şekilde anlamaya yardımcı olacak iyi örneklere sahip olmalıdır.
  2. İyi bir kabul testi için bir başka mükemmel ipucu da Cucumber, JBehave veya Concordion gibi ATDD araçlarını kullanmaktır. ATDD çerçeveleri, ATDD test senaryolarını düzenlemek ve ATDD uygulamasının karmaşıklığını azaltmak için özel olarak tasarlanmıştır.

ATDD hakkında son düşünceler

ATDD, müşteri memnuniyetinin artırılması, kalitenin iyileştirilmesi, maliyetlerin azaltılması, hız ve verimliliğin artırılması gibi birçok avantajı olan bir test tasarım tekniğidir. ATDD, tüm paydaşların geliştirme sürecinin her aşamasında birlikte çalışmasını gerektirir. Bu da, geliştirme döngüsünün erken aşamalarında yeniden çalışma ve hata düzeltme işlemlerini azaltarak israfı azaltır.

ATDD ayrıca geliştiricilerin üretkenliğini %50 oranında artırır. ATTD veya ATBD, ATDD'nin alt kümeleridir. ATTD, kabul testi odaklı geliştirme iken, ATBD hem kabul testi uygulamalarını hem de BDD ilkelerini içerir.

ATDD çerçevesiyle başarıya ulaşmanın anahtarı, erken başlamak, birim testlerini değiştirmemek, gereksinimlerin tanımlanması için iyi kullanıcı hikayelerine sahip olmak, mümkünse Cucumber veya JBehave gibi araçları kullanmak ve gereksinimlerin netleştirilmesi oturumlarında işbirliği yapmaktır.