Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Исполнимые спецификации в тестировании UI

682 views

Published on

Доклад Евгения Говако на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

Исполнимые спецификации в тестировании UI

  1. 1. Software quality assurance days 17 Международная конференция по вопросам качества ПО sqadays.com Минск. 29–30 мая 2015 Говако Евгений Deutsche Bank Technology Center, Санкт-Петебург, Россия Исполнимые спецификации в тестировании UI.
  2. 2. О себе Евгений Говако QA/Test Automation Engineer Deutsche Bank Technology Center Russia, St. Petersburg ◦ В QA с 2004 года ◦ QA Lead/Support Lead ◦ QMS ◦ Test Automation since 2012
  3. 3. Как пишут автотесты для UI App Driver Framework DSL Test Runner Reporting Test cases
  4. 4. Традиционный подход к автотестам Test id Test Actions Expected Results 1 1. Open Control Panel with Red light shown 2. Click Next button 1. Yellow light should be shown [Test] [Scenario("1")] public void 01_RedButtonShouldTurnOnGreenLight() { // Open Control Panel with Red light shown Open.ControlPanel(); TrafficLight.RedLight.IsShown.ShouldBe(true); // Click Next button ControlPanel.NextButton.IsVisible.WaitFor(true); ControlPanel.NextButton.Click(); // Yellow light should be shown TrafficLight.YellowLight.IsShown.ShouldBecome(true); }
  5. 5. Поддержка изменений Test TestAPI App Test Case CR T E S T S U P P O R T
  6. 6. Gherkin – исполнимые спецификации ◦ Автотесты - исполнение спецификации шаг за шагом ◦ Gherkin – язык, позволяющий формализовать исполнение строк спецификации ◦ Gherkin – сам по себе является языком программирования ◦ Ключевые слова Given/When/Then ◦ Предполагает интерпретатор шагов (Cucumber/SpecFlow) ◦ Изначально изобретен в для написания спецификаций для Cucumber
  7. 7. Выполнение Gherkin Строка Поиск метода по шаблону Выполнение с параметрами Scenario: 01 Turn red to Red Yellow Given Red Light is shown When user clicks on Next button Then Yellow light should be shown
  8. 8. Пишем тест на Gherkin Scenario: 01 Turn red to Red Yellow Given Red Light is shown When user clicks on Next button Then Yellow light should be shown [Given(@"Red light is shown")] public void CheckRedLightShown() { TrafficLight.RedLight.IsShown.ShouldBe(true); } [When(@"user clicks on Next button")] public void PressButton() { ControlPanel.NextButton.IsVisible.WaitFor(true); ControlPanel.NextButton.Click(); } [Then(@"Yellow light should be shown")] public void CheckLightVisibility() { TrafficLight.YellowLight.IsShown.ShouldBe(true); }
  9. 9. Вводим параметризацию [Given(@"(.*) light is shown")] public void CheckRedLightShown(Light light) { TrafficLight.GetLight(light).IsShown.ShouldBe(true); } [When(@"user clicks on Next button")] public void PressButton() { ControlPanel.NextButton.IsVisible.WaitFor(true); ControlPanel.NextButton.Click(); } [Then(@"(.*) light should be shown")] public void CheckLightVisibility(Light light) { TrafficLight.GetLight(light).IsShown.ShouldBe(true);; } Scenario: 01 Turn red to Red Yellow Given Red Light is shown When user clicks on Next button Then Yellow light should be shown
  10. 10. Делаем Data Driven test Scenario Outline: 01 Switch Lights Given <original> Light is shown When user clicks on Next button Then <expected> light should be shown Scenarios: | original | expected | | red | green | | greeen | yellow | | yellow | red | [Given(@"(.*) light is shown")] public void CheckRedLightShown(Light light) {} [When(@"user clicks on Next button")] public void PressButton() {} [Then(@"(.*) light should be shown")] public void CheckLightVisibility(Light light) {}
  11. 11. Поддержка изменений Test Case Binding TestAPI App CR T E S T S U P P O R T
  12. 12. Преимущества и недостатки Прямая связь спецификации и автотеста Высокая скорость разработки тестов Разработка новых тестов без участия программистов Поддержка тестов на уровне модификации сценариев Ограничение свободы QA в формулировках тестовых сценариев Спецификации уходят от бизнес-смысла к описанию манипуляций с интерфейсом
  13. 13. Лучшие практики • Переиспользование шагов • Одно действие на шаг • Использование Background • Использование декларативного стиля написания
  14. 14. Что еще? • Создание библиотеки общих шагов • Модификация фреймворка (SpecFlow) • Написание собственного интерпретатора
  15. 15. Q&A mailto: egovako@gmail.com Skype: george.eager

×