BDD vs TDD vs ATDD: Klíčové rozdíly
Tento průvodce má za cíl popsat různé testovací metody nebo postupy, jako je Behavioral Driven Development (BDD), Test-Driven Development (TDD) ), Acceptance Test-Driven Development (TDD). Pomůže také objasnit klíčové rozdíly mezi těmito technikami. Na konci tohoto článku se očekává, že pochopíme, jak jednotlivé metody fungují, klíčové rozdíly a jejich konkrétní role ve vývojovém procesu.
Nejprve začneme vývojem řízeným testem.
Co je Test-Driven Development (TDD)?
Test-Driven Development je testovací metodika nebo programovací praxe implementovaná z pohledu vývojáře. V této technice začne inženýr QA navrhovat a psát testovací případy pro každou malou funkčnost aplikace. Tato technika se pokouší odpovědět na jednoduchou otázku – Je kód platný? Hlavním záměrem této techniky je upravit nebo napsat nový kód, pouze když test selže. Výsledkem je tedy menší duplikace testovacích skriptů. Tato technika je velmi populární v agilních rozvojových ekosystémech. V přístupu TDD se automatizované testovací skripty zapisují před funkční části kódu. Metodika TDD zahrnuje následující kroky:
- Na základě požadavků uvedených v dokumentech vývojář zapíše automatizovaný testovací případ
- Tyto testy se provedou a v některých případech selžou, protože jsou vyvíjeny před vývojem skutečné funkce.
- Vývojový tým poté znovu provede faktor pro úspěšné absolvování testu.
Refaktoring odkazuje na proces úpravy kódu beze změny jeho hlavní funkce nebo chování.
Výhody vývoje řízeného testem:
- Pomáhá snižovat čas potřebný k přepracování
- Pomáhá velmi rychle prozkoumat chyby nebo chyby
- Pomáhá získat rychlejší zpětnou vazbu
- Podporuje vývoj čistších a lepších návrhů
- Zvyšuje produktivitu programátora
- Umožňuje kterémukoli členovi týmu začít pracovat na kódu v nepřítomnosti konkrétního člena týmu. To podporuje sdílení znalostí a spolupráci
- Dává důvěru programátora snadno změnit velkou architekturu aplikace
- Výsledkem je vytvoření rozsáhlého kódu, který je flexibilní a snadno se udržuje
Pojďme nyní pochopit vše o vývoji založeném na chování.
Co je vývoj na základě chování (BDD)?
Vývoj na základě podnikání (BDD) je testovací přístup odvozený z metodologie Test-Driven Development (TDD). V BDD jsou testy založeny hlavně na chování systémů. Tento přístup definuje různé způsoby, jak vyvinout funkci na základě jejího chování. Ve většině případů se pro psaní testovacích případů používá přístup daný-kdy-pak. Vezměme si příklad pro lepší pochopení:
- Vzhledem k tomu, že uživatel zadal platné přihlašovací údaje
- Když uživatel klikne na přihlašovací tlačítko
- Poté se zobrazí zpráva o úspěšném ověření
Jak je uvedeno výše, chování je znázorněno ve velmi jednoduchém anglickém jazyce, známém také jako sdílený jazyk. To pomáhá všem členům týmu odpovědným za vývoj pochopit chování funkcí.
Například se můžete pokusit spustit snadný test mezi prohlížeči založený na sadě pokynů k testování napříč více zařízeními, jak je uvedeno v video.
Vyzkoušejte bezplatné testování prohlížeče v reálném cloudu zařízení
Klíčové výhody chování založené na chování Vývojový přístup:
- Pomáhá oslovit širší publikum použitím netechnických jazyků.
- Zaměřuje se na to, jak by se systém měl chovat z pohledu zákazníka a vývojáře
- BDD je nákladově efektivní technika
- Snižuje úsilí potřebné k ověření případných vad po nasazení
Obrázek níže zobrazuje typickou operaci BDD:
Zdroj obrázku: Tutorialspoint
Jak BDD pomáhá v SDLC?
Ladění chyb v pozdějších fázích životního cyklu vývoje se často ukazuje jako velmi nákladné ive. Ve většině případů je hlavní příčinou nejednoznačnost v porozumění požadavkům. Je třeba zajistit, aby veškeré vývojové úsilí zůstalo v souladu s plněním předem stanovených požadavků. BDD umožňuje vývojářům provádět výše uvedené:
- Umožnění definování požadavků standardním přístupem pomocí jednoduché angličtiny
- Poskytování několika způsobů, jak ilustrovat reálné scénáře pro porozumění požadavky
- Poskytování platformy, která umožňuje technickým a netechnickým týmům spolupracovat a porozumět požadavkům
Co je vývoj Acceptance Test-Driven?
V technice Acceptance Test-Driven Development (ATDD) je z hlediska uživatele napsán jeden akceptační test.Zaměřuje se hlavně na uspokojení funkčního chování systému. Tato technika se pokouší odpovědět na otázku – Funguje kód podle očekávání?
Tato technika zvyšuje spolupráci mezi vývojáři, uživateli a QA se společným zaměřením o definování kritérií přijatelnosti. Níže jsou uvedeny některé z klíčových postupů v ATDD:
- Analýza a diskuse o scénářích reálného světa
- Rozhodování o kritériích přijetí pro tyto scénáře
- Automatizace případů akceptačních testů
- Zaměření na vývoj těchto případů požadavků
Výhody ATDD
- Požadavky jsou velmi jasně analyzovány bez libovolná nejednoznačnost
- Podporuje spolupráci mezi členy různých týmů
- Akceptační test slouží jako vodítko pro celý vývojový proces
Klíčové rozdíly: TDD vs BDD vs ATDD
Parametry | TDD | BDD | ATDD |
Definice | TDD je vývojová technika, která se více zaměřuje na implementaci funkce | BDD je vývojová technika zaměřená na chování systému | ATDD je technika podobná BDD zaměřená spíše na zachycení požadavků |
Účastníci | Vývojář | Vývojáři, Zákazník, QA | Vývojáři, Zákazníci, QA |
Použitý jazyk | Psaný v jazyce podobném jazyku použitému pro vývoj funkcí (např. Java, Python atd.) | jednoduchá angličtina, (okurka) | jednoduchá angličtina, okurka |
hlavní zaměření | Testy jednotek | Porozumění požadavkům | Testy přijetí zápisu |
Použité nástroje | JDave, Okurka , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse | Gherkin, Dave, Cucumber, JBehave, Spec Flow, BeanSpec, Concordian | TestNG, FitNesse, EasyB, Spectacular, Concordian, Thucydides |
Porozumění tomu, jak tyto metody fungují, může pomoci vývojářům a dalším jednotlivcům zapojeným do softwaru rozvoje zjistit, která strategie funguje nejlépe, aby sloužila jejich účelu. V závislosti na druhu projektu a výsledcích, kterých má dosáhnout, lze nasadit správnou metodu (nebo dokonce kombinaci metod), která splní konkrétní požadavky nejúčinnějším způsobem.