SlideShare a Scribd company logo
BDD Test Structure
Сергей Баранов
User Story
As a [Role]
I want [Feature]
So that I receive [Value]
Scenario: how?
Given [State]
When [Action]
Then [Reaction]
Domain Model
User – зарегистрированный пользователь
Habit – привычка
Message – сообщение от User к User
Chat – место общения двух User
User Story: Send Message
As a User
I want to send Message to another User
who forms the same Habit
So that I receive motivation
Scenario: Send Message
Given User 1 and User 2 have the same
Habit
When User 1 sends Message to User 2
Then Both Users receive the Message
Example
public void bothUsersShouldRecieveMessagesFromEachOther ()
{
User sender = new User();
User recipient = new User();
Chat chat = new Chat(sender, recipient);
given(sender.hasHabit(“Refactoring”));
given(recipient.hasHabit(“Refactoring”));
chat.sendMessage("Aloha!");
then(chat.hasMessage(“Aloha!”));
}
+ sendMessage(User who, User whom, String message)
+ getChat(User, User)
– Map<Chat> chats
(key: username1+username2, val: Chat)
ChatManager
+ sendMessage(User whoSent, String message)
+ List<Message> getMessages()
– List<Message> messages
Chat
+ Message(User user, String message)
+ getUser()
+ getMessage()
– User user
– String message
Message
– String username
– List<Habit>
User
– String name
Habit
<<sendMessage>>
<<creates>>
<<creates>>
Chat with «whom.name»
Message.user: message
Message.user: message
Message.user: message

More Related Content

PDF
MongoDB NoSQL and all of its awesomeness
PPT
Студия «Чипса»: XYZ — три оси генерации идей
PPTX
атлыгина чеклисты для всех-всех-всех
PDF
ткаченко качество без этапа тестирования
PDF
From outsource to productsource!
PPTX
AgileCamp15. Процессный трек
PPTX
Как создать концепцию продукта в виде Lean Canvas
PPTX
Эффективные ретроспективы
MongoDB NoSQL and all of its awesomeness
Студия «Чипса»: XYZ — три оси генерации идей
атлыгина чеклисты для всех-всех-всех
ткаченко качество без этапа тестирования
From outsource to productsource!
AgileCamp15. Процессный трек
Как создать концепцию продукта в виде Lean Canvas
Эффективные ретроспективы

More from Magneta AI (20)

PDF
зотин Scrum, kanban, что дальше. история nokia
PPTX
абраменко как сделать нужный людям продукт
PDF
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
PPTX
тучин как внедрить Agile, чтобы никто не заметил
PPTX
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
PDF
мациевский путь самурая. уволить нельзя оставить
PPTX
лустин статические анализаторы систем 1с ad2015
PDF
лосев контрольные карты шухарта в анализе деятельности Scrum команд
PPTX
корецкий как мы улучшили экспертную оценку проектов
PPSX
зиновьева повышение эффективности команды. ретроспектива как инструмент
PPTX
виноградова внедрение изменений без длинных документов, долгих согласований...
PPTX
верещак. построение культуры Dev ops. v0.5 copy
PPTX
бородин об эмпирической разработке
PPTX
богуславский Agile days непрерывное качество в непрерывной разработке
PDF
арефьева пошаговая инструкция по переходу на спринты 16 к 9
PPTX
филиппов Material design для проектирования продуктов
PDF
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
PPTX
пылаева дана, шоколад лего-скрам
PPTX
мухина коучинг на практике, рабочие примеры
PPTX
филиппов интрапренерство и стартап-культура как инструменты для инноваций
зотин Scrum, kanban, что дальше. история nokia
абраменко как сделать нужный людям продукт
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
тучин как внедрить Agile, чтобы никто не заметил
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
мациевский путь самурая. уволить нельзя оставить
лустин статические анализаторы систем 1с ad2015
лосев контрольные карты шухарта в анализе деятельности Scrum команд
корецкий как мы улучшили экспертную оценку проектов
зиновьева повышение эффективности команды. ретроспектива как инструмент
виноградова внедрение изменений без длинных документов, долгих согласований...
верещак. построение культуры Dev ops. v0.5 copy
бородин об эмпирической разработке
богуславский Agile days непрерывное качество в непрерывной разработке
арефьева пошаговая инструкция по переходу на спринты 16 к 9
филиппов Material design для проектирования продуктов
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
пылаева дана, шоколад лего-скрам
мухина коучинг на практике, рабочие примеры
филиппов интрапренерство и стартап-культура как инструменты для инноваций
Ad

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
top salesforce developer skills in 2025.pdf
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Introduction to Artificial Intelligence
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Essential Infomation Tech presentation.pptx
PDF
Understanding Forklifts - TECH EHS Solution
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
medical staffing services at VALiNTRY
PDF
System and Network Administration Chapter 2
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Reimagine Home Health with the Power of Agentic AI​
top salesforce developer skills in 2025.pdf
L1 - Introduction to python Backend.pptx
Introduction to Artificial Intelligence
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
2025 Textile ERP Trends: SAP, Odoo & Oracle
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Essential Infomation Tech presentation.pptx
Understanding Forklifts - TECH EHS Solution
PTS Company Brochure 2025 (1).pdf.......
medical staffing services at VALiNTRY
System and Network Administration Chapter 2
How to Migrate SBCGlobal Email to Yahoo Easily
How Creative Agencies Leverage Project Management Software.pdf
Odoo POS Development Services by CandidRoot Solutions
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Ad

BDD test structure

  • 2. User Story As a [Role] I want [Feature] So that I receive [Value]
  • 3. Scenario: how? Given [State] When [Action] Then [Reaction]
  • 4. Domain Model User – зарегистрированный пользователь Habit – привычка Message – сообщение от User к User Chat – место общения двух User
  • 5. User Story: Send Message As a User I want to send Message to another User who forms the same Habit So that I receive motivation
  • 6. Scenario: Send Message Given User 1 and User 2 have the same Habit When User 1 sends Message to User 2 Then Both Users receive the Message
  • 7. Example public void bothUsersShouldRecieveMessagesFromEachOther () { User sender = new User(); User recipient = new User(); Chat chat = new Chat(sender, recipient); given(sender.hasHabit(“Refactoring”)); given(recipient.hasHabit(“Refactoring”)); chat.sendMessage("Aloha!"); then(chat.hasMessage(“Aloha!”)); }
  • 8. + sendMessage(User who, User whom, String message) + getChat(User, User) – Map<Chat> chats (key: username1+username2, val: Chat) ChatManager + sendMessage(User whoSent, String message) + List<Message> getMessages() – List<Message> messages Chat + Message(User user, String message) + getUser() + getMessage() – User user – String message Message – String username – List<Habit> User – String name Habit <<sendMessage>> <<creates>> <<creates>> Chat with «whom.name» Message.user: message Message.user: message Message.user: message

Editor's Notes

  • #4: Given [Context | State] When [Event | Action] Then [Outcome | Reaction]
  • #9: Пример модели.