Как не нужно писать Gherkin         сценарии!           или о том, как извлечь           максимальную пользу            от...
Andrii DzyniaTest Engineer/Consultant/Trainer                @adzynia         http://adzynia.com
Клиенты
О чем будем говорить    Что такое приемочные            тесты?       Что такое BDD?    Примеры написания    приемочных тес...
Разработка через приемочное       тестирование
Что такое приемочный тест?Acceptance testing is a test conducted todetermine if the requirements of a specificationor cont...
Приемочный тест от тестировщикаGiven scrum master open main pageAnd click Backlog linkThen he should see a list of user st...
Приемочный тест от разработчикаGiven “scrum master” open “main” pageAnd click “Backlog” linkThen should see an “empty” lis...
Приемочный тест от бизнес аналитикаGiven I am scrum masterWhen I am adding new user story into productbacklogThen I should...
“3 Amigos Meeting” «Начиная, представляйте конечную цель» (с) Стивен Кови
Золотая серединаGiven a Scrum Master wants to add new userstory to product backlogWhen adding new user story into productb...
ПараметрыGiven a Scrum Master wants to add new user story toproduct backlogWhen adding new user story into product backlog...
ТаблицыGiven a Scrum Master wants to add new userstory to product backlogWhen adding new user story into product backlogwi...
Регулярные выражения@Given(“^a Scrum Master wants to add new user story to product backlog$”)public void aScrumMasterWants...
Functionality Matrix                                 Functional Block 1                      Feature Feature Feature Featu...
src/test/recources/acceptance/functional-block-1/-   Feature-1.feature-   Feature-2.feature-   Feature-3.feature-   Featur...
Feature 1@doneFeature:@UserStory1 @UserStory3Scenario:@Pending @UserStory2Scenario:
Инструменты
РекомендацииПопробуйте правило 3-х амиго     для сложных задачНе пишите приемочные тесты на    работу UI компонентов Пишит...
http://adzynia.com   @adzynia  me@adzynia.com
Upcoming SlideShare
Loading in …5
×

Как не нужно писать Gherkin сценарии

8,805 views

Published on

“Очень часто, внедряя Behavior Driven Development на проекте, думаешь только о быстрых выгодах и о краткосрочной перспективе. На первый взгляд нету ничего сложного в том, чтобы написать приемочный сценарий в стиле Given When Then, простым языком и дальше связывать эти конструкции с языком программирования. Но как показывает практика у многих возникают сложности с составлением непосредственного сценария. Если написать сценарий не правильно, это может повлиять на весь процесс разработки как приемочных тестов, так и на логику работы самого приложения. В докладе я расскажу о том с какими проблемами сталкивается каждый проект, внедряя практику Acceptance Test Driven Development используя Gherkin синтаксис для написания приемочных тестов. На примерах мы рассмотрим частые ошибки при написании приемочных сценариев и разберем основные правила, которые нужно использовать для того, чтобы Acceptance Test-ы помогали каждому члену команды. Доклад будет интересен как тестировщикам, так бизнес аналитикам и разработчикам.”.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,805
On SlideShare
0
From Embeds
0
Number of Embeds
2,817
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Как не нужно писать Gherkin сценарии

  1. 1. Как не нужно писать Gherkin сценарии! или о том, как извлечь максимальную пользу от Acceptance Tests
  2. 2. Andrii DzyniaTest Engineer/Consultant/Trainer @adzynia http://adzynia.com
  3. 3. Клиенты
  4. 4. О чем будем говорить Что такое приемочные тесты? Что такое BDD? Примеры написания приемочных тестов
  5. 5. Разработка через приемочное тестирование
  6. 6. Что такое приемочный тест?Acceptance testing is a test conducted todetermine if the requirements of a specificationor contract are met
  7. 7. Приемочный тест от тестировщикаGiven scrum master open main pageAnd click Backlog linkThen he should see a list of user storiesWhen he clicks on “Add New” linkThen he should see Add Story formWhen he types “US-309 Create new user” under user storyname fieldAnd he types “Description-Test” under user story descriptionfieldAnd he types …..And click submit buttonThen message “User Story added” should be present
  8. 8. Приемочный тест от разработчикаGiven “scrum master” open “main” pageAnd click “Backlog” linkThen should see an “empty” list of user storiesWhen click “Add New” linkThen should see “Add Story” formWhen he types “US-309 Create new user” under “storyName”fieldAnd type “Description-Test” under “storyDescription” fieldAnd type …..And click “submit” buttonThen message “User Story added” should be present
  9. 9. Приемочный тест от бизнес аналитикаGiven I am scrum masterWhen I am adding new user story into productbacklogThen I should have an ability to manage all userstories
  10. 10. “3 Amigos Meeting” «Начиная, представляйте конечную цель» (с) Стивен Кови
  11. 11. Золотая серединаGiven a Scrum Master wants to add new userstory to product backlogWhen adding new user story into productbacklog with name “US-309 Create new user”and description “Description-Test”Then system should show “User Story added”message
  12. 12. ПараметрыGiven a Scrum Master wants to add new user story toproduct backlogWhen adding new user story into product backlog withname <storyName> and description <storyDescription>Then system should show “User Story added” messageExamples:| storyName | storyDescription || US-309 Create new user | Description-Test || US-310 Edit user | Full Description |
  13. 13. ТаблицыGiven a Scrum Master wants to add new userstory to product backlogWhen adding new user story into product backlogwith data| storyName | storyDescription || US-309 Create new user | Description-Test || US-310 Edit user | Full Description |Then system should show “User Story added”message
  14. 14. Регулярные выражения@Given(“^a Scrum Master wants to add new user story to product backlog$”)public void aScrumMasterWantsToAddUserStory()@When(“^adding new user story into product backlog with name ”(.*)” anddescription ”(.*)” $”)public void addNewUserStoryIntoProductBacklog(List<String> list)@When(“^adding new user story into product backlog with data”)public void addNewUserStoryIntoProductBacklog(List<UserStory> list)@Then(“^system should show ”(.*)” message”)public void systemShouldShowMessage(String message)
  15. 15. Functionality Matrix Functional Block 1 Feature Feature Feature Feature Feature 1 2 3 4 5 User Story 1 X User Story 2 XEpic 1 User Story 3 X User Story 4 XEpic 2 User Story 5 X X
  16. 16. src/test/recources/acceptance/functional-block-1/- Feature-1.feature- Feature-2.feature- Feature-3.feature- Feature-4.feature- Feature-5.feature
  17. 17. Feature 1@doneFeature:@UserStory1 @UserStory3Scenario:@Pending @UserStory2Scenario:
  18. 18. Инструменты
  19. 19. РекомендацииПопробуйте правило 3-х амиго для сложных задачНе пишите приемочные тесты на работу UI компонентов Пишите приемочные тесты на бизнес логику приложения Делайте рефакторинг приемочных тестов
  20. 20. http://adzynia.com @adzynia me@adzynia.com

×