SlideShare a Scribd company logo
Behavior-driven
development in Python
Egor Fedorov
D A T A A R T
План на сегодня:
1. Идея подхода BDD
2. Язык Gherkin
3. Фреймворк Behave для Python
4. Интеграция с IDE
5. Пример тестирования веб-сайта через BDD
6. Выполнять тесты в IDE, в CLI, в CI
7. О внедрении
BDD зачем это вообще?
Бывает так:
Кент Бек - ~2000 г. изобрел TDD
(ну, или заново изобрел)
Экстремальное
пограммирование.
Разработка через тестирование.
Соавтор jUnit Testing Framework.
Программист:
Functions, Endpoints, requests, schemas
Тестировщик:
Test Case, Coverage, Regression, Smoke
Аналитик:
Business Policy, Data Flow, Goals, Features
Заказчик:
Продажи, закупки, доля рынка, сотрудники,
конкуренты
Нужен
единый
язык
Нужна точка сборки:
Что будем описывать? Поведение!
1. Выделяем случай использования (Scenario)
2. Исходное состояние (Given)
3. Событие (When)
4. Итоговое состояние (Then)
Представляем язык Gherkin
Что дальше:
● Берем BDD framework
● Кодируем выполнение шагов
● Profit
преимущества BDD:
● Все могут писать, всем понятен
● Снижается коммуникационный барьер
● Без привязки к технологии реализации
● Живая документация требований
● Возможность внедрения автотестов
● Требования и код хранятся в одном месте
● можно хранить вместе с кодом (ревью, версии и т.д.)
Чем готовить BDD:
● cucumber.io (Java/Kotlin, JS, Ruby)
● Godog (Go)
● behave, pytest-bdd (Python)
● specflow (.NET)
● JBehave (Java)
● spockframework.org (Java/Groovy)
● Cypress.io preprocessor (JS)
Link:
https://cucumber.io/docs/installation/
● Jira / Confluence plugin
● Number of Text Editors: Sublime, vim,
Notepad++, gedit
● also JS tests can be written in BDD
style in Postman and Cypress
Итоги внедрения:
Report from Belatrix
Decreased failed tests
from 30% to 5%
Better communication
Best results combining BDD
and TDD
Let’s have some code…
(посмотрим как оно в деле)
Тесты для веб-сайта
Напишем тесты для todomvc.com
Код здесь:
http://github.com/bestchanges/BDD-python-behave-example
Используем:
● Python - best programming language (ever)
● Behave - BDD framework (github)
● Selenium - web automation library (github)
● IDE PyCharm Pro / IDEA Ultimate
● Travis - CI automation (just for example)
Почему behave?
1. Mature (since 2012)
2. Активно развивается (Latest commit 4 hours ago)
3. Поддерживается во многих IDE
a. IDEA / PyCharm community: Plugin
b. IDEA Ultimate / PyCharm Professional: included for Behave (9$/month c’mon)
4. Полная поддержка возможностей Gherkin
5. Расширения
a. behave-django (and IntelliJ IDE support)
b. flask integration
План обзора:
1. Feature, Scenario, Steps, And, But, Background, Comments, Tags
2. Behave: files structure, steps decorators,
3. IDE Setup, Navigation, Step Generation
4. run with IDE / Debug
5. behave fixtures, selenium configuration
6. BDD Localization
7. Scenario Templates
8. Data structures: Tables, Doc Strings
9. run in CLI, CI pipeline
Поговорим о внедрении
Предлагаемый workflow
1. Customer request in Jira/Confluence/etc. as Gherkin feature
2. Update by Developer (Automation Tester)
3. Review process
4. Implementation by Developer
5. Inclusion in CI pipeline
Q&A
Thanks!
Егор Fedorov
Email: egor.fedorov@gmail.com
Telegram: @efedorov
Egor Fedorov "Behavior-driven development in Python"

More Related Content

What's hot

Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
ScrumTrek
 
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest
 
l10n, или особенности локализации программного обеспечения, Александр Денисо...
 l10n, или особенности локализации программного обеспечения, Александр Денисо... l10n, или особенности локализации программного обеспечения, Александр Денисо...
l10n, или особенности локализации программного обеспечения, Александр Денисо...
it-people
 
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
Ontico
 
XP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureXP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architecture
Anton Katkov
 

What's hot (20)

Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
 Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья... Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
 
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
 
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромКак писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодером
 
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
 
Enter: code style
Enter: code styleEnter: code style
Enter: code style
 
Design by Contract basics
Design by Contract basicsDesign by Contract basics
Design by Contract basics
 
Иван Кочуркин. Теория и практика парсинга формальных языков
Иван Кочуркин. Теория и практика парсинга формальных языковИван Кочуркин. Теория и практика парсинга формальных языков
Иван Кочуркин. Теория и практика парсинга формальных языков
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
 
Язык программирования GO
Язык программирования GOЯзык программирования GO
Язык программирования GO
 
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
 
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
 
Copy of презентация
Copy of презентацияCopy of презентация
Copy of презентация
 
l10n, или особенности локализации программного обеспечения, Александр Денисо...
 l10n, или особенности локализации программного обеспечения, Александр Денисо... l10n, или особенности локализации программного обеспечения, Александр Денисо...
l10n, или особенности локализации программного обеспечения, Александр Денисо...
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
 
Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)
 
Kotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
Kotlin Native. Святослав Щербина, Senior Software Developer, KotlinKotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
Kotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
 
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
 
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
 
Преимущества и недостатки языка Swift
Преимущества и недостатки языка SwiftПреимущества и недостатки языка Swift
Преимущества и недостатки языка Swift
 
XP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureXP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architecture
 

Similar to Egor Fedorov "Behavior-driven development in Python"

Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
Wodby - хостинг полного цикла
Wodby - хостинг полного циклаWodby - хостинг полного цикла
Wodby - хостинг полного цикла
DrupalSib
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Krivoy Rog IT Community
 

Similar to Egor Fedorov "Behavior-driven development in Python" (20)

Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
 
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский..."IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word press
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.js
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Wodby - хостинг полного цикла
Wodby - хостинг полного циклаWodby - хостинг полного цикла
Wodby - хостинг полного цикла
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
Создай свое первое Android приложение.
Создай свое первое Android приложение. Создай свое первое Android приложение.
Создай свое первое Android приложение.
 
Python-технология которую легко продавать!
Python-технология которую легко продавать!Python-технология которую легко продавать!
Python-технология которую легко продавать!
 
Console application with ZF 2.0
Console application with ZF 2.0Console application with ZF 2.0
Console application with ZF 2.0
 

More from Fwdays

More from Fwdays (20)

"What I learned through reverse engineering", Yuri Artiukh
"What I learned through reverse engineering", Yuri Artiukh"What I learned through reverse engineering", Yuri Artiukh
"What I learned through reverse engineering", Yuri Artiukh
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
"Micro frontends: Unbelievably true life story", Dmytro Pavlov
"Micro frontends: Unbelievably true life story", Dmytro Pavlov"Micro frontends: Unbelievably true life story", Dmytro Pavlov
"Micro frontends: Unbelievably true life story", Dmytro Pavlov
 
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
 
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
 
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 

Egor Fedorov "Behavior-driven development in Python"

  • 2. План на сегодня: 1. Идея подхода BDD 2. Язык Gherkin 3. Фреймворк Behave для Python 4. Интеграция с IDE 5. Пример тестирования веб-сайта через BDD 6. Выполнять тесты в IDE, в CLI, в CI 7. О внедрении
  • 3. BDD зачем это вообще?
  • 4. Бывает так: Кент Бек - ~2000 г. изобрел TDD (ну, или заново изобрел) Экстремальное пограммирование. Разработка через тестирование. Соавтор jUnit Testing Framework.
  • 5. Программист: Functions, Endpoints, requests, schemas Тестировщик: Test Case, Coverage, Regression, Smoke Аналитик: Business Policy, Data Flow, Goals, Features Заказчик: Продажи, закупки, доля рынка, сотрудники, конкуренты Нужен единый язык Нужна точка сборки:
  • 6. Что будем описывать? Поведение! 1. Выделяем случай использования (Scenario) 2. Исходное состояние (Given) 3. Событие (When) 4. Итоговое состояние (Then)
  • 8. Что дальше: ● Берем BDD framework ● Кодируем выполнение шагов ● Profit
  • 9. преимущества BDD: ● Все могут писать, всем понятен ● Снижается коммуникационный барьер ● Без привязки к технологии реализации ● Живая документация требований ● Возможность внедрения автотестов ● Требования и код хранятся в одном месте ● можно хранить вместе с кодом (ревью, версии и т.д.)
  • 10. Чем готовить BDD: ● cucumber.io (Java/Kotlin, JS, Ruby) ● Godog (Go) ● behave, pytest-bdd (Python) ● specflow (.NET) ● JBehave (Java) ● spockframework.org (Java/Groovy) ● Cypress.io preprocessor (JS) Link: https://cucumber.io/docs/installation/ ● Jira / Confluence plugin ● Number of Text Editors: Sublime, vim, Notepad++, gedit ● also JS tests can be written in BDD style in Postman and Cypress
  • 11. Итоги внедрения: Report from Belatrix Decreased failed tests from 30% to 5% Better communication Best results combining BDD and TDD
  • 12. Let’s have some code… (посмотрим как оно в деле)
  • 13. Тесты для веб-сайта Напишем тесты для todomvc.com Код здесь: http://github.com/bestchanges/BDD-python-behave-example
  • 14. Используем: ● Python - best programming language (ever) ● Behave - BDD framework (github) ● Selenium - web automation library (github) ● IDE PyCharm Pro / IDEA Ultimate ● Travis - CI automation (just for example)
  • 15. Почему behave? 1. Mature (since 2012) 2. Активно развивается (Latest commit 4 hours ago) 3. Поддерживается во многих IDE a. IDEA / PyCharm community: Plugin b. IDEA Ultimate / PyCharm Professional: included for Behave (9$/month c’mon) 4. Полная поддержка возможностей Gherkin 5. Расширения a. behave-django (and IntelliJ IDE support) b. flask integration
  • 16. План обзора: 1. Feature, Scenario, Steps, And, But, Background, Comments, Tags 2. Behave: files structure, steps decorators, 3. IDE Setup, Navigation, Step Generation 4. run with IDE / Debug 5. behave fixtures, selenium configuration 6. BDD Localization 7. Scenario Templates 8. Data structures: Tables, Doc Strings 9. run in CLI, CI pipeline
  • 18. Предлагаемый workflow 1. Customer request in Jira/Confluence/etc. as Gherkin feature 2. Update by Developer (Automation Tester) 3. Review process 4. Implementation by Developer 5. Inclusion in CI pipeline
  • 19. Q&A