ATDD hakkında konuşmanın tam zamanı! Demek ATDD hakkında bilgi edinmek ya da bu kavramı tazelemek istiyorsunuz. Endişelenmeyin! Bu yazıda, ATDD'nin tam olarak ne olduğunu ve BDD ile TDD ile nasıl bir ilişkisi olduğunu ele alacağız. Ayrıca en iyi uygulamaları ele alacak ve metodolojiyi adım adım inceleyeceğiz!
Bu ATDD kılavuzunda
ATDD nedir?
ATDD, ATDD uygulaması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ının yazılması, ardından teknik olmayan katılımcılarla işbirliği içinde kodun uygulanması yoluyla otomasyon kodunun geliştirilmesine yardımcı olan, yazılım geliştirme sürecine yönelik benzersiz bir yaklaşımdı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ışmalarını sağlar. ATDD aracı, test amaçlı değildir ancak ATDD uygulamalarını destekler.
BDD ve TDD
BDD, kabul testlerine dayanan ATDD'nin aksine örnekler temelinde ilerler. TDD, birim testlerine odaklanırken, BDD hem birim testlerine hem de kabul testlerine odaklanır. ATDD'de, neyin geliştirilmesi gerektiği konusunda netlik sağlamak ve işbirliği yapmak amacıyla bir iş uzmanının geliştirme süreci boyunca geliştiricilerle birlikte çalışması gerekir.
Bir yazılım geliştiricisi 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 ile BDD’nin tek bir uygulama olarak birleştirilmesini ifade eder. ATDD, TDD’ye (test odaklı geliştirme) benzer, ancak kodlamaya başlamadan önce kabul testleri yazılması gibi ek bir gereklilik içerir.
Çeviklik ve TDD
Çeviklik, 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. Çeviklikte, ATTD geliştirme yaklaşımı, XP (Aşırı Programlama) kapsamında ATTD ve ATBD (kabul testi odaklı geliştirme) olarak bilinir. ATBD, neyin geliştirileceği konusunda iş uzmanlarının geliştiricilerle işbirliği yapmasını içerir.
Scrum'da kabul testleri, kullanıcıları/müşterileri temsil eden bir iş uzmanıyla işbirliği içinde çalışan ve 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 gereksinimlere/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'ye (Kabul Testi Odaklı Geliştirme) ç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ı, uygulamanın gereksinim spesifikasyonlarını karşılayıp karşılamadığını test etmektir.
ATDD'nin faydaları
ATDD'nin birçok avantajı vardır. Bunlar arasında müşteri memnuniyetinin artması, kalitenin yükselmesi, maliyetlerin düşmesi, hızın artması ve verimliliğ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 geliştirerek iş kullanıcıları ile 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 kısaltır. ATDD ayrıca, yeniden çalışma ihtiyacını azaltarak ve hataları geliştirme döngüsünün daha erken aşamalarında düzelterek israfı azaltır. Doğru bir şekilde uygulandığında, ATDD proje yaşam döngüsünün her aşamasında başarı şansınızı artıracaktır!
ATDD'nin avantajları arasında, üretim kodundaki hataları azaltırken manuel testlere harcanan zaman ve çabadan tasarruf sağlanması yer alır. Ayrıca, geliştiricilerin verimliliğini %50 oranında artırır. ATDD'de başarının anahtarı, önce kabul testleriyle başlamak, ardından birim testlerine geçmeden önce entegrasyon testlerine yönelmektir.
ATDD'nin aşamaları
ATDD kullanılsın ya da kullanılmasın, kabul testlerinde 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ın analiz edilmesidir
5) Son adım, ATDD çerçevesini kullanarak test senaryolarını çalıştırmaktır
ATDD'nin tam açılımı nedir?
ATDD'nin tam adı ATTD'dir ve ATDD'nin bir alt kümesidir. ATTD, kabul testi odaklı geliştirmedir; ATDD ise 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 spesifikasyonlarını karşılayıp karşılamadığını test etmektir.
Kabul testinde izlenen adımlar:
1) iş ihtiyaçlarını anlamak;
2) kullanıcı hikayeleri yazmak;
3) test senaryolarının hazırlanması;
4) kusurların incelenmesi ve son olarak,
5) Tanıtılan çerçeve ile test senaryolarını yürütmek.
Doğru ATDD uygulaması için ipuçları
Yani, ATDD'nin ne olduğunu bilmek bir şey, bu çerçeveyi ve süreci uygulamak ise başka bir şey. Tecrübelerime dayanarak, şu ipuçlarının son derece yararlı olduğunu düşünüyorum:
- ATDD erken aşamada uygulanmalıdır. ATDD, birim testlerinin yerini almamalıdır. ATDD bir test tasarım tekniğidir. ATDD, işbirliğini gerektirir. ATDD, iyi kullanıcı hikayeleri olduğunda en iyi sonucu verir. Geliştiriciler ve test uzmanlarıyla yapılan ATDD 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, gereksinimin net bir şekilde anlaşılmasına yardımcı olacak iyi örnekler içermelidir.
- Kabul testlerinin başarılı bir şekilde gerçekleştirilmesi için bir başka harika 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 üzere özel olarak tasarlanmıştır.
ATDD hakkında son düşünceler
ATDD, müşteri memnuniyetinin artırılması, kalitenin iyileştirilmesi, maliyetlerin düşürülmesi, 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 yeniden çalışma ihtiyacını azaltarak ve kusurları geliştirme döngüsünün daha erken aşamalarında gidererek israfı azaltır.
ATDD ayrıca geliştiricilerin verimliliğini %50 oranında artırır. ATTD ve 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.
Bir ATDD çerçevesiyle başarıya ulaşmanın anahtarı, erken başlamak, birim testlerinin yerini almamak, gereksinim tanımlaması 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.



