TDD ve BDD arasındaki temel farklar nelerdir?

oy
119

Test Driven Development son birkaç yıldır NET toplumda öfke olmuştur. Son zamanlarda, BDD hakkında ALT.NET toplumda homurdanarak.bu duymuşsunuzdur. Bu ne? Ne TDD farklı kılan?

Oluştur 05/08/2008 saat 16:58
kaynak kullanıcı
Diğer dillerde...                            


15 cevaplar

oy
94

Ben BDD hakkında daha fazla olmasını anlamak şartname daha test . Bu Domain Driven Design bağlıdır (bu * DD kısaltmalar sevmiyorsun?).

Bu üst düzey testler dahil olmak üzere kullanıcı hikayelerini, yazmaya belirli bir şekilde bağlantılıdır. Tarafından bir örneği Tom ten Thij :

Story: User logging in
  As a user
  I want to login with my details
  So that I can get access to the site

Scenario: User uses wrong password

  Given a username 'jdoe'
  And a password 'letmein'

  When the user logs in with username and password

  Then the login form should be shown again

(Yazısında, Tom doğrudan Ruby bu test spesifikasyonu yürütmeye devam ediyor.)

BDD Papa olan Dan Kuzey . Onun büyük bir tanıtım bulabilirsiniz Tanıtımı BDD makalesinde.

Bu işte BDD karşılaştırılmasını ve TDD bulacaksınız videosu . Ayrıca olarak BDD hakkında görüş tarafından "TDD doğru yapılması" Jeremy D. Miller

25 Mart 2013 güncellemesi

Video üzerinde bir süredir kayıp edilmiştir. İşte Llewellyn Falco, tarafından yapılan son biridir TDD vs BDD (açıklanmıştır) . Ben açık ve noktasına yaptığı açıklama bulabilirsiniz.

Cevap 05/08/2008 saat 17:36
kaynak kullanıcı

oy
17

Bana göre VDB ve TDD arasındaki temel fark odak ve ifadeler olduğunu. Ve kelimeler, amacınızı iletişim için önemlidir.

TDD test odaklanmak yönlendirir. Ve zira "eski şelale dünya" testler uygulandıktan sonra, o zaman bu zihniyet yanlış anlayış ve davranış yol açar geliyor.

BDD davranış ve şartname odaklanmak yönlendirdiği ve böyle şelale beyinler dikkati dağılır. Yani BDD daha kolay tasarım uygulama olarak değil, test uygulama olarak anlaşılır.

Cevap 08/09/2008 saat 19:36
kaynak kullanıcı

oy
13

BDD iki tür var gibi görünüyor.

İlk Dan Kuzey tartışır ve xBehave tarzı çerçeveler oluşturulması neden olan orijinal tarzıdır. Bana göre bu tarz etki alanı nesnelere karşı kabul testi veya özellikleri için öncelikle uygulanabilir.

İkinci tarzı Dave Astels popüler ve bana, bazı ciddi faydaları vardır TDD yeni bir form olan budur. Bu temelde şartname (test) yöntemiyle başına bir çizgi var noktaya almaya çalışırken, davranış ziyade test ve aynı zamanda küçük bir test sınıfları odaklanır. Bu stil testinin tüm düzeyleri uygun ve daha yeni çerçeveler (xSpec tarzı) testini değil bir davranış odak yardım rağmen varolan herhangi birim test çerçevesi kullanılarak yapılabilir.

Eğer yarayabilecek bir BDD grup da vardır:

http://groups.google.com/group/behaviordrivendevelopment/

Cevap 10/09/2008 saat 17:00
kaynak kullanıcı

oy
6

Ben BDD yaklaşım ile biraz denemişlerdir ve benim prematüre sonuca BDD ancak temel ayrıntıları, vaka uygulamasını kullanmak için uygundur olmasıdır. TDD hala o düzeyde kaya.

BDD aynı zamanda bir iletişim aracı olarak da kullanılır. Amaç uzmanlar tarafından anlaşılabilir çalıştırılabilir özelliklere yazmaktır.

Cevap 27/08/2008 saat 21:59
kaynak kullanıcı

oy
5

Test-Driven Development o test edilecektir gerçek kod yazmadan önce test kodu yazma gerektirir, yani bir test ilk yazılım geliştirme yöntemdir. Kent Beck deyişiyle:

Burada tarzı, daha sonra aday olmayacağını bir test yazmaya, hatta daha iyi çalıştırmak veya gereken bir test, o zaman koşmak yapacak kodu yazmak kod birkaç satır yazmak.

Sadece üzerinde kodlama yerine, artık bir kod küçük bir parça, nasıl yazılacağını bulmaktan sonra, anında geri bildirim ve uygulamayı almak istiyorum "kod biraz test biraz kod biraz sınamak, biraz." Bu yüzden hemen bunun için bir test yazmak.

Yani TDD düşük seviyeli, programcılar işleri temiz kodu üretmek için kullanmak teknik yöntemdir.

Davranış Odaklı Kalkınma TDD dayalı oluşturulan, ancak endişe sadece programcılar ve test yapan bir süreç haline bir metodoloji, ancak bunun yerine teknik ve teknik olmayan tüm ekip ve tüm önemli paydaşları, ilgilenir. BDD TDD iyi cevap vermeyen bir kaç basit sorulardan başladı: Ben ne kadar testler yazmalıyım? Ne Aslında sınamak-ne yapmamalıyım gerekir? Yazdığım testlerin hangi iş için önemli olan veya ürünün genel kalitesine aslında olması ve hangi sadece benim aşırı mühendislik vardır olacak?

Gördüğünüz gibi, bu tür sorular teknoloji ve iş arasındaki işbirliğini gerektirir. İş paydaşlar ve etki alanı uzmanları genellikle önemli iş yönleriyle başa yararlıdır, ancak testler yalnızca, üst düzey testleri olurdu gibi ses testlerin ne tür mühendisleri söyleyebilir. BDD “Bana bu özellik düzgün davranması gerektiğine dair bir örnek anlatmak” gibi “örnekler” Böyle iş gibi testler çağırır ve düşük seviye için kelime “test” tutar, bu tür veri doğrulama veya test API entegrasyonları gibi teknik kontrol eder. Önemli bir parçası iken olmasıdır testler sadece programcılar ve test cihazları tarafından oluşturulabilir, örnekler böyle devam toplanmış ve tüm dağıtım takım tarafından tasarımcılar, analistler tarafından analiz ve edilebilir.

Bir cümlede, ben var BDD en iyi tanımlarından biri bulundu şimdiye kadar BDD “alan uzmanları ile görüşme yapmaya ve istenen davranışın paylaşılan anlamak ve bilinmeyenleri keşfetmek için örnekleri kullanarak.” Keşif çok önemli bir işlemdir ilgili olduğudur . Teslimat ekibi daha fazla örnek toplar gibi, onlar iş alanı daha iyi anlamak başlarlar ve böylece onlar uğraşmak zorunda ürünün bazı yönleri hakkında kendi belirsizliği azaltmak. Belirsizlik azaldıkça, yaratıcılık ve dağıtım ekibi artış özerklik. Örneğin, artık düşünmüyordu iş kullanıcıları çünkü teknoloji uzmanlık eksikliği mümkün olduğunu kendi örneklerini düşündüren başlayabilirsiniz.

Şimdi, iş ve alan uzmanları ile konuşmaları sahip harika geliyor, ama biz bütün bu sık sık pratikte biter biliyorum. Bir programcı olarak teknoloji ile yolculuğum başladı. Programcılar olarak, öğretilir kod yazma -algorithms, tasarım desenleri, soyutlamalar. Bir tasarımcı iseniz Ya da, öğretilir tasarım -fotoğraflarınızı organize bilgi ve güzel arayüzler oluşturun. Bizim giriş seviyesi iş sahibi Fakat işverenlerimiz bize "müşterilerine değer sunmak." Bekliyoruz Ve bu müşterileri arasında örneğin ... bir banka için olabilir. Ama verimli hesabım dengesini azaltmak için nasıl hariç bankacılık-hakkında hiçbir şey biliyor olabilir. Bu yüzden herhangi bir değeri sunmak istiyorsanız bankacılık ve benim teknik uzmanlık arasında bir köprü kurmak zorunda kalacak ... nasılsa koduna bana ne beklendiğini çevirmek zorunda kalacaktı. BDD bana teslim ekibi ve alan uzmanları arasındaki akışkan iletişimi istikrarlı bir temel üzerine böyle bir köprü kurmak yardımcı olur.

Daha fazla bilgi edin

Eğer BDD hakkında daha fazla okumak istiyorsanız, ben bu konuda bir kitap yazdı. “Büyük Özellikler Yazma” analiz gereksinimleri sanatını araştırıyor ve büyük BDD sürecini oluşturmak ve bu sürecin temel bir parçası olarak örnekler kullanmayı öğrenmek yardımcı olacaktır. Her yerde dili hakkında kitap görüşmeler, örnekler toplayarak ve BDD ekipleri yardımcı örnekler-tekniklerin dışında sözde çalıştırılabilir özelliklere (otomatikleştirilmiş testleri) oluşturma zamanında ve bütçe üzerinde büyük bir softeware sunar.

Eğer satın ilgilenen varsa “Büyük Özellikler Yazma,” Eğer% 39 tasarruf edebilirsiniz promosyon kodu ile 39nicieja2 :)

Cevap 12/02/2017 saat 16:43
kaynak kullanıcı

oy
2

tasarım olarak TDD birincil yararı göz önünde bulundurun. Bu Test Driven Tasarım çağrılmalıdır. BDD TDD bir alt kümesidir, Davranış Odaklı Tasarım diyoruz.

Unit Test - Şimdi TDD popüler bir uygulama düşünün. Birim Testi Birimler yapabilirsiniz işin en küçük birimidir mantık genellikle bir bit vardır.

Eğer makinelere istenilen Davranışı açıklamak için fonksiyonel bir şekilde bir araya olanlar Birimleri koymak, size makineye açıklayan Davranışı anlamak gerekir. Davranış Odaklı Tasarım Kullanımı Kılıfları / Gereksinimler / Whatever uygulayıcıları anlayışını doğrulama odaklanır ve her özelliğin uygulanmasını doğrular. Genel olarak BDD ve TDD tasarımını ve onu değiştirir özellikle uygulanması doğruluğunun teyidi ikinci amacını bildiren önemli amaca hizmet eder. Birim test tipik olarak dev silosunda gerçekleştirilir (muhtemelen yanlış TDD bir tip yerine TDD olarak görülen) ise yapılan BDD doğru dünyası ve dev (ve qa) içerir.

Ben BDD testleri yaşam şartlarına olarak hizmet eklersiniz.

Cevap 28/05/2015 saat 22:36
kaynak kullanıcı

oy
2

BDD ölçüde TDD doğru yapılır. Ancak, BDD sunduğu ek kazanç sağlayabilir. İşte bu konuda bir bağlantı:

BDD daha “TDD doğru yapılması” dır

Cevap 29/07/2010 saat 11:25
kaynak kullanıcı

oy
2

TDD kıyasla BDD benim son bilgi ile, BDD TDD çıkışında seyir ardından bir dizi şartı kurma ve odaklanır ise bundan sonra ne olacak belirlemek amacı yapılmıştır.

Cevap 25/05/2009 saat 05:09
kaynak kullanıcı

oy
2

BDD daha geniş bir kapsamı geliyor bana. Neredeyse TDD BDD diğer şeylerin amongh, kullanmaya ilişkin bilgiler ve gereksinimlerini toplar encompasing metodolojisi olduğu, kullanılan ima, TDD uygulamalar hızlı geribildirim sağlamak için.

Cevap 05/08/2008 saat 17:11
kaynak kullanıcı

oy
2

Davranış Odaklı Kalkınma Geliştiriciler arasında ve ayrıca Geliştiriciler ve test arasındaki etkileşim ve iletişimin daha fazla odaklanmak gibi görünüyor.

Vikipedi Madde bir açıklaması var:

Davranış odaklı gelişme

gerçi kendim BDD pratik değil.

Cevap 05/08/2008 saat 17:06
kaynak kullanıcı

oy
1

test odaklı geliştirme (TDD) ve davranış odaklı gelişimi arasındaki fark (BDD)

  • BDD sisteminin davranışsal yönü yerine odaklanan
    TDD odaklanan sistemin uygulanması yönünde.

  • BDD sistemi ne yapması gerektiğini daha net olarak ortaya anlayış verir
    geliştirici ve müşteri açısından. TDD sadece
    geliştiriciye sistemi ne yapması gerektiğini bir anlayış verir.

  • BDD geliştiricisi ve sistemin kaynak kodu içinde bulunan gereksinimlerine analiz için birlikte çalışma müşteriyi hem tanır.

Cevap 09/06/2017 saat 23:49
kaynak kullanıcı

oy
1

İşte hızlı enstantane:

  • TDD bunu yazmadan önce test kodunun sadece süreci olduğunu!

  • DDD kodunu dokunmadan her kür öncesi Domain haberdar olma sürecidir!

  • BDD DDD bazı yönleriyle getiriyor TDD bir uygulamasıdır!

Umarım yardımcı olur!

Cevap 18/01/2016 saat 03:01
kaynak kullanıcı

oy
0

TDD ve BDD arasındaki seçim karmaşık bir tanesidir. senin İş arkadaşların rahat ne verilen hedef dile, ve bazen diğer faktörler için uygun bir test çerçevesi olup olmadığı bağlıdır.

Bazıları TDD kullanırken ortaya çıkabilecek sorunları ortadan kaldırma ihtimalini olduğundan BDD hep TDD daha iyi olduğunu savunuyorlar.

BDD yapmanın püf sorunları önlemek ihtimalidir; o garanti edilmez. fakir kod organizasyonu, kötü tasarım uygulamaları vb gibi sorunlar hala devam edecektir. Sadece kötü testler yazılı bir alt muhtemel Kaputu ve böylece daha sağlam özelliklere sahip olacak.

Cevap 18/09/2016 saat 09:59
kaynak kullanıcı

oy
0

TDD ve BDD betwen hiçbir fark yoktur. Eğer testler daha iyi okuyabilir ve siz gereksinimleri olarak kullanabilirsiniz hariç. Eğer BDD testleri yazarken aynı sözlerle gereksinimlerinizi yazarsanız o zaman kod yazmak için hazır tanımlanmış Testlerinizin bazı ile müşteri frome gelebilir.

Cevap 07/10/2014 saat 09:52
kaynak kullanıcı

oy
-1

Bu blog TDD, BDD ve ATDD arasındaki farklar üzerine ilginç bakış açısı sunar: http://assertselenium.com/2012/11/05/difference-between-tdd-bdd-atdd/

Cevap 20/05/2014 saat 19:32
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more