Jaké jsou základní rozdíly mezi TDD a BDD?

hlasů
119

Test Driven Development byl vztek v .NET komunity za posledních několik let. V poslední době jsem slyšel reptání v ALT.NET komunitě o BDD. Co je to? Co ho odlišuje od TDD?

Položena 05/08/2008 v 16:58
zdroj uživatelem
V jiných jazycích...                            


16 odpovědí

hlasů
94

Chápu, BDD, aby se více o specifikaci , než zkoušení . To je spojeno s Domain Driven Design (ne milujete tyto * DD akronymy?).

To je spojeno s určitým způsobem psát uživatelské příběhy, včetně testů na vysoké úrovni. Příkladem by Tom deset 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

(Ve svém článku, Tom pokračuje přímo provedení této testovací specifikace v Ruby).

Papež z BDD je Dan North . Najdete skvělý úvod v jeho Představujeme BDD článku.

Najdete srovnání BDD a TDD v tomto videu . Také názor BDD jako „TDD se dobře“ od Jeremy D. Miller

25.března 2013 aktualizace

Video nahoře byl chybí na chvíli. Zde je poslední doby od Llewellyn Falco, BDD vs TDD (vysvětleno) . Zjistil jsem jeho vysvětlení jasné ak věci.

Odpovězeno 05/08/2008 v 17:36
zdroj uživatelem

hlasů
17

Pro mě je hlavní rozdíl mezi BDD a TDD je zaměření a formulace. Slova jsou důležitá pro komunikaci vašeho záměru.

TDD řídí se zaměřují na testování. A protože ve „staré vodopád světa“ testy přijdou po realizaci, pak tento postoj vede k nesprávné pochopení a chování.

BDD řídí se zaměřují na chování a specifikaci, a tak vodopád mysl rozptýlit. Takže BDD je lépe chápat jako projekční praxi, a nikoli jako testovací praxi.

Odpovězeno 08/09/2008 v 19:36
zdroj uživatelem

hlasů
13

Zdá se, že dva typy BDD.

Prvním z nich je originální styl, který Dan North projednává a který způsobil vznik rámců xBehave stylu. Pro mě je tento styl je především použitelný pro přejímací zkoušky nebo specifikací proti objekty domény.

Druhý styl je to, co Dave Astels popularizoval a které se mi, je nová forma TDD, která má některé vážné výhody. Zaměřuje se na chování spíše než testování a také malých testovacích tříd, snaží se dostat do bodu, kdy jste v podstatě máte jeden řádek způsob specifikace (test). Tento styl se hodí na všechny úrovně testování a může být provedeno za použití jakéhokoliv existujícího testovací jednotka rámec ačkoli novější rámců (xSpec styl) pomoci zaměřit jednu chování spíše než testování.

K dispozici je také skupina BDD, který byste mohli najít užitečné:

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

Odpovězeno 10/09/2008 v 17:00
zdroj uživatelem

hlasů
6

Jsem experimentoval trochu s přístupem BDD a moje předčasná závěrem je, že BDD se dobře hodí pro použití implementace case, ale ne na základě podkladových informací. TDD stále skále na této úrovni.

BDD je také používán jako nástroj komunikace. Cílem je napsat spustitelné specifikací, které lze chápat odborníci domény.

Odpovězeno 27/08/2008 v 21:59
zdroj uživatelem

hlasů
5

Test-Driven Development je test-first metodika vývoje software, což znamená, že potřebuje psát test kód před psaním skutečný kód, který bude testován. Kent Beck slova:

Styl je zde napsat pár řádků kódu, pak test, který by měl běžet, nebo ještě lépe, psát test, který nepoběží, pak napsat kód, který bude dělat to běžet.

Po přijít na to, jak psát jeden malý kousek kódu, nyní ne jen kódování dále, chceme získat okamžitou zpětnou vazbu a praxi „kód se trochu testovat trochu kód trochu testovat málo.“ Tak jsme se okamžitě napsat test na to.

Takže TDD je low-level, technický metodika, která programátoři používají k výrobě čistý kód, který funguje.

Chování-Driven Development je metodika, která byla vytvořena na základě TDD, ale se vyvinul do procesu, který se netýká pouze programátory a testery, ale místo toho se zabývá celý tým a všechny významné zúčastněné strany, technické a non-technické. BDD začal z několika jednoduchých otázek, které TDD nefunguje dobře odpověď: kolik testy bych měl psát? Co mám vlastně testovat, a to, co by ne? Který z testů píšu bude ve skutečnosti důležité pro podnikání nebo na celkovou kvalitu výrobku, a které jsou jen moje přes-inženýrství?

Jak můžete vidět, tyto otázky vyžadují spolupráci mezi technologií a podnikání. Obchodní zainteresované strany a odborníci domény často říci inženýry, jaké testy zní jako by byly testy užitečný, ale pouze v případě, že testy jsou na vysoké úrovni, které se zabývají důležitými obchodními aspekty. BDD volá takové podniky jako testy „Příklady“, jak v „řekni mi příklad toho, jak by se tato funkce chovat správně,“ a vyhrazuje si slovo „zkušební“ pro low-level, technické kontroly, jako je ověření dat nebo integrace testování API. Důležitou součástí je, že zatímco testy mohou být vytvořeny pouze programátory a testery, příklady mohou být shromažďovány a analyzovány celá dodávka team-designéry, analytiky, a tak dále.

Ve větě, jeden z nejlepších definic BDD jsem našel tak daleko, že BDD je asi „s rozhovory s odborníky domény a pomocí příkladů získat společné chápání požadovaného chování a objevovat neznámé.“ Tento objev část je velmi důležitá , Vzhledem k tomu, dodávka tým sbírá další příklady, začínají chápat obchodní domény stále více a více, a tím snižují jejich nejistota ohledně některých aspektů výrobků, které budou muset vypořádat s. Jak se snižuje nejistota, tvořivost a samostatnost zvýšení dodávky týmu. Například, mohou nyní začít navrhovat své vlastní příklady, že firemní uživatelé si nemyslel, že byly možné z důvodu jejich nedostatku tech odbornosti.

Nyní, s rozhovory s obchodními a doménových expertů zní skvěle, ale všichni víme, jak to často končí v praxi. Začal jsem svou cestu s tech jako programátor. Jako programátoři, se učíme psát kód -algorithms, návrhové vzory, abstrakce. Nebo, pokud jste designér, budete se učí navrhovat -organize informace a vytvářet krásné rozhraní. Ale když se dostaneme naši práci entry-level, naši zaměstnavatelé očekávají, že budeme „přinést hodnotu pro klienty.“ A mezi těmito klienty může být například ... banky. Ale já jsem mohl vědět téměř nic o bankovnictví-kromě toho, jak účinně snížit zůstatek na svém účtu. Takže budu muset nějak přeložit to, co se ode mě očekává do kódu ... budu muset postavit most mezi bankovními a mé technické znalosti, pokud chci dodat libovolnou hodnotu. BDD mi pomáhá vytvořit takový most na stabilní základ fluidní komunikaci mezi dodávací týmu a odborníkům domény.

Přečtěte si více

Pokud se chcete dozvědět více o BDD, jsem napsal knihu na toto téma. „Psaní Velké specifikace“ zkoumá umění analyzovat požadavky a pomůže vám naučit, jak vybudovat velký BDD zpracovávat a používat příklady jako základní součást tohoto procesu. Kniha vypráví o všudypřítomné jazyka, shromažďování příkladů a vytváření takzvané spustitelné specifikace (automatizované testy), z uvedených příkladů-technik, které pomáhají BDD týmy dodat velkou softeware včas a v rámci rozpočtu.

Máte-li zájem o koupi „Psaní Velké specifikace,“ můžete ušetřit 39% s promo kódem 39nicieja2 :)

Odpovězeno 12/02/2017 v 16:43
zdroj uživatelem

hlasů
2

Zvážit primární výhody TDD být konstrukce. Mělo by být nazýván test Driven Design. BDD je podmnožinou TDD, říkejte tomu Behavior Driven Design.

Nyní zvažovat populární implementaci TDD - jednotkové testy. Podílové jednotky testovací jsou obvykle jeden bit z logiky, která je nejmenší jednotka práce, kterou můžete udělat.

Když dáte tyto jednotky společně ve funkčním způsobem popsat požadované chování ke strojům, musíte pochopit chování, které popisujeme na stroji. Behavior Driven design je zaměřen na ověření pochopení realizátorů používání Cases / Požadavky / cokoliv a ověřuje provádění jednotlivých funkcí. BDD a TDD obecně slouží důležitou účelem informování konstrukce a druhý za účelem ověření správnosti provádění, zejména, když se mění. BDD se dobře zahrnuje biz a dev (a QA), zatímco zkušební jednotka (případně nesprávně vnímána jako TDD, spíše než jeden typ TDD) se obvykle provádí v dev silu.

Dodal bych, že BDD testy slouží jako živé požadavky.

Odpovězeno 28/05/2015 v 22:36
zdroj uživatelem

hlasů
2

BDD je velmi TDD provádí přímo. Nicméně, tam je další hodnota, která BDD nabízí. Zde je odkaz na to:

BDD je víc než „TDD se dobře“

Odpovězeno 29/07/2010 v 11:25
zdroj uživatelem

hlasů
2

S mým nejnovějšími poznatky v BDD, kdy ve srovnání s TDD, BDD se zaměřuje na určení toho, co se bude dít dál, zatímco TDD je zaměřen na zřízení sadu podmínek a pak při pohledu na výstupu.

Odpovězeno 25/05/2009 v 05:09
zdroj uživatelem

hlasů
2

Zdá se mi, že BDD je širší rozsah. To znamená, téměř TDD se použije, že BDD je metodika encompasing která shromažďuje informace a požadavky na použití, amongh jiné TDD postupy s cílem zajistit rychlou zpětnou vazbu.

Odpovězeno 05/08/2008 v 17:11
zdroj uživatelem

hlasů
2

Behavior Driven Development Zdá se více soustředit na interakci a komunikaci mezi vývojáři a také mezi vývojáře a testery.

Wikipedia článek má vysvětlení:

Chování-řízený vývoj

Není sám praktikující BDD ačkoli.

Odpovězeno 05/08/2008 v 17:06
zdroj uživatelem

hlasů
1

Rozdíl mezi vývojem řízený testy (TDD) a vývoj chování-řízený (BDD)

  • BDD se zaměřuje na aspekt chování systému, spíše než
    realizace aspekt systému, který se zaměřuje na TDD.

  • BDD dává jasnější pochopení toho, co by měl systém dělat
    z pohledu developera a zákazníkem. TDD pouze
    dává vývojář pochopení toho, co by měl systém dělat.

  • BDD umožňuje jak developer a zákazník spolupracovat se k požadavkům na analýzu, která je obsažena ve zdrojovém kódu systému.

Odpovězeno 09/06/2017 v 23:49
zdroj uživatelem

hlasů
1

Zde je stručný přehled:

  • TDD je právě proces testování kódu před zápisem to!

  • DDD je proces byl informován o doméně před každým cyklem dotyku kód!

  • BDD je implementace TDD, která přináší v některých aspektech DDD!

Naděje, která pomáhá!

Odpovězeno 18/01/2016 v 03:01
zdroj uživatelem

hlasů
0

Stručně řečeno, existuje velký rozdíl mezi TDD a BDD v TDD jsme majorly zaměřili na data Test na BDD náš hlavní důraz je kladen na chování projektu tak, aby jakýkoli non - programování člověk může pochopit řádek kódu na účet titulu že metoda

Odpovězeno 24/08/2019 v 17:53
zdroj uživatelem

hlasů
0

Volba mezi TDD a BDD je složitá. Záleží na tom, zda je vhodné testování rámec pro daného cílového jazyka, jaké jsou vaše spolupracovníky vyhovuje, a případně i dalších faktorů.

Někteří tvrdí, že BDD je vždy lepší než TDD, protože má možnost eliminovat problémy, které mohou nastat při použití TDD.

Klíčem k BDD je, že by to mohlo zabránit problémy; není zaručeno. Problémy, jako je špatné kódu organizace špatných konstrukčních postupů, atd. Budou i nadále přetrvávat. Budete mít jen menší pravděpodobností kapotu psaní špatné testy a mají tedy více robustní funkce.

Odpovězeno 18/09/2016 v 09:59
zdroj uživatelem

hlasů
0

Není žádný rozdíl betwen TDD a BDD. s výjimkou můžete přečíst vaše testy lépe a můžete je použít jako požadavky. Máte-li psát své požadavky se stejnými slovy jako píšete BDD testy pak můžete přijít Frome svého klienta s některými z vašich testů definovaných připraveni psát kód.

Odpovězeno 07/10/2014 v 09:52
zdroj uživatelem

hlasů
-1

Tento blog poskytuje zajímavý úhel pohledu na rozdíly mezi TDD, BDD a ATDD: http://assertselenium.com/2012/11/05/difference-between-tdd-bdd-atdd/

Odpovězeno 20/05/2014 v 19:32
zdroj uživatelem

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