Конспект і таймкоди
0:00
BDD у контексті способів розробки
Waterfall, Scrum, Kanban і Lean описують організацію delivery process. TDD, BDD і Domain-Driven Design деталізують, як команда формує implementation: через tests, observable behavior або domain model. Це різні площини, хоча в реальних процесах вони поєднуються.
Початкова проблема однакова для різних індустрій: business має пояснити engineering team, який результат потрібен. Для цього використовуються user stories, diagrams, domain language і examples. Gherkin — лише один формат такої комунікації.
Термін
BDD
Collaborative, iterative process із practices Discovery, Formulation та Automation; executable documentation є наслідком shared understanding, а не заміною discovery.
3:25
Three Amigos і справжня цінність Gherkin
BDD працює, коли product/business analyst, developer і tester разом розбирають examples, assumptions та edge cases до написання коду. У відео це описано як Three Amigos practice, до якої за потреби долучають інших ролей.
Given/When/Then допомагає зафіксувати передумову, дію та очікувану behavior мовою, зрозумілою business і engineering. Цінність виникає під час розмови та static testing requirements, а не від самого факту, що текст збережено у .feature file.
Уточнення
Застереження
Оцінюйте Cucumber не за наявністю .feature files, а за реальним спільним обговоренням behavior, наявністю людей, які читають examples, і feedback loop після automation.
Термін
Gherkin
Domain-oriented language для concrete examples: Given задає known state, When — event, Then — observable outcome. Implementation details не повинні домінувати в scenario language.
Практика
Перевірити, чи потрібен Cucumber
- Візьміть один existing E2E scenario і назвіть його реальних readers.
- Перепишіть його technology-neutral Given/When/Then із observable outcome.
- Якщо reader і discovery loop відсутні, порівняйте maintenance cost із direct automated test.
Результат: Один scenario, список readers і аргументоване рішення залишити або прибрати Cucumber layer.
6:30
Business example не замінює engineering task
Після узгодження behavior загальний scenario треба декомпозувати. Frontend task описує component, validation і UI states; backend task — endpoint, contract і business rule; test task — ризики й потрібне coverage. Для інженера прямий технічний опис часто коротший і точніший за повторення кожної умови через Given/When/Then.
Проблема починається, коли один формат примусово використовують для всіх ролей. Business не має керувати деталями automation code, а automation engineer не повинен перекладати вже зрозумілий technical contract у довший Gherkin лише для формальної відповідності процесу.
9:30
Антипатерн: Cucumber живе тільки в automation
Типовий невдалий варіант: manual test cases уже містять steps, але автоматизатор повторно перекладає їх у Gherkin, а потім створює step definitions. Одна дія існує як feature text, regex/parameterized step і code implementation. Різні автори формулюють однакові steps по-різному, тому повторне використання швидко руйнується.
Management може вимагати кількість automated scenarios або «читабельний для business report», але потім не відкривати ці reports. У такій ситуації Cucumber не забезпечує BDD: він лише додає maintenance cost команді automation. Ознака справжнього BDD — scenarios використовуються для спільних рішень, а не лежать наприкінці pipeline.
Термін
Feature-coupled step definitions
Step definitions, організовані навколо окремих feature files замість shared domain language; Cucumber описує цей підхід як anti-pattern через duplication і explosion of steps.
15:25
Що насправді потрібно продукту
Business зазвичай цікавить, чи можна продемонструвати й продати ключовий flow, чи стабільний продукт і чи не блокують bugs інвестиції або клієнтів. Формат внутрішньої документації другорядний, доки він допомагає команді передбачувано delivery-ити результат.
Додаткові process artifacts стають виправданими, коли зменшують реальну проблему: часті incidents, втрату domain knowledge, складний onboarding або неоднозначні requirements. Сам по собі Gherkin не виправляє низьку якість implementation чи відсутність coverage.
18:40
Balanced coverage замість сотень E2E scenarios
Надійність продукту потребує coverage на кількох рівнях: static analysis, unit, integration/component і невеликий набір системних E2E tests. E2E найдовші, найдорожчі в підтримці та найповільніші для локалізації failure, тому ними не варто дублювати всі permutations.
На системному рівні залишають business-critical flows, а exhaustive rules перевіряють ближче до коду. Це не фіксована «піраміда заради піраміди»: розподіл залежить від architecture і того, де виникає ризик.
21:25
Де Cucumber усе ж доречний
Невеликий набір Gherkin scenarios може бути корисним як зрозумілий business report: користувач може оформити замовлення, створити event, виконати payment або отримати потрібну analytics. Це має сенс, якщо stakeholders справді читають report і scenarios є спільним контрактом.
Для детальної діагностики developers зазвичай потрібні не довгі Gherkin steps, а точні request data, curl, response, credentials для test environment, frontend/backend logs і stack trace. Тому практичний висновок відео: використовуйте BDD для спільного уточнення поведінки, а Cucumber — лише там, де його додаткова мова реально має читача й покриває невеликий набір стабільних business flows.
Джерела та додаткові матеріали
- Behaviour-Driven Development ↗Cucumber · перевірено 2026-07-31
Підтверджує, що BDD починається з collaboration і discovery, а не з automation syntax.
- Cucumber Anti-patterns ↗Cucumber · перевірено 2026-07-31
Дає first-party warning про feature-coupled step definitions і duplication, центральні для критики уроку.