SlideShare a Scribd company logo
Software quality assurance days
17 Международная конференция
по вопросам качества ПО
sqadays.com
Минск. 29–30 мая 2015
Говако Евгений
Deutsche Bank Technology Center, Санкт-Петебург, Россия
Исполнимые спецификации в тестировании UI.
О себе
Евгений Говако
QA/Test Automation Engineer
Deutsche Bank Technology Center Russia, St. Petersburg
◦ В QA с 2004 года
◦ QA Lead/Support Lead
◦ QMS
◦ Test Automation since 2012
Как пишут автотесты для UI
App
Driver
Framework
DSL
Test
Runner
Reporting
Test cases
Традиционный подход к автотестам
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);
}
Поддержка изменений
Test TestAPI App
Test
Case CR
T E S T S U P P O R T
Gherkin – исполнимые спецификации
◦ Автотесты - исполнение спецификации шаг за
шагом
◦ Gherkin – язык, позволяющий формализовать
исполнение строк спецификации
◦ Gherkin – сам по себе является языком
программирования
◦ Ключевые слова Given/When/Then
◦ Предполагает интерпретатор шагов
(Cucumber/SpecFlow)
◦ Изначально изобретен в для написания
спецификаций для Cucumber
Выполнение 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
Пишем тест на 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);
}
Вводим параметризацию
[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
Делаем 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) {}
Поддержка изменений
Test Case
Binding TestAPI App
CR
T E S T S U P P O R T
Преимущества и недостатки
Прямая связь
спецификации и
автотеста
Высокая скорость
разработки тестов
Разработка новых
тестов без участия
программистов
Поддержка тестов на
уровне модификации
сценариев
Ограничение свободы
QA в формулировках
тестовых сценариев
Спецификации уходят
от бизнес-смысла к
описанию
манипуляций с
интерфейсом
Лучшие практики
• Переиспользование шагов
• Одно действие на шаг
• Использование Background
• Использование декларативного стиля написания
Что еще?
• Создание библиотеки общих шагов
• Модификация фреймворка (SpecFlow)
• Написание собственного интерпретатора
Q&A
mailto: egovako@gmail.com
Skype: george.eager

More Related Content

PPTX
Интервью: Пособие к применению
PPTX
Обучение основам тестирования студентов технических специальностей
PDF
Points of View: ключ к общению QAs и архитекторов – видим качество за диаграм...
PPTX
Фокус тест
PPT
Синтетические фокусы-II: что делать за пределами зоны аналитического комфорта
PPTX
10 question business asked me
PDF
Root Cause Analysis in Testing "Dealing with Problems, Not Symptoms! "
PPT
Test Estimation
Интервью: Пособие к применению
Обучение основам тестирования студентов технических специальностей
Points of View: ключ к общению QAs и архитекторов – видим качество за диаграм...
Фокус тест
Синтетические фокусы-II: что делать за пределами зоны аналитического комфорта
10 question business asked me
Root Cause Analysis in Testing "Dealing with Problems, Not Symptoms! "
Test Estimation

Viewers also liked (9)

PPTX
Git для тестировщиков
PPTX
Формирование требований из хотелок заказчика
PDF
Особенности тестирования облачных сервисов
PPTX
Хороший тестировщик может всё
PPTX
Опыт создания системы для внутреннего управления процессами обеспечения качес...
PPT
Эффективное взаимодействие тестировщика и аналитика
PDF
Оценки тестирования - полезные и условные метрики
PDF
Как же научиться программировать, в конце концов?
PPTX
Качественное тестовое задание? Без проблем!
Git для тестировщиков
Формирование требований из хотелок заказчика
Особенности тестирования облачных сервисов
Хороший тестировщик может всё
Опыт создания системы для внутреннего управления процессами обеспечения качес...
Эффективное взаимодействие тестировщика и аналитика
Оценки тестирования - полезные и условные метрики
Как же научиться программировать, в конце концов?
Качественное тестовое задание? Без проблем!
Ad

Similar to Исполнимые спецификации в тестировании UI (11)

PPTX
Путь к чистому и компактному коду исполняемых спецификаций
PPTX
IT-шная история игрушек или feature-driven тестирование в действии
PPT
Автоматизация тестирования встроенного ПО
PPT
зуева татьяна - опыт автоматизации тестирования в Agile проекте
PDF
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
PPTX
Автоматизация.pptx
PPTX
лекция3 QA
PPT
Автоматическое тестирование мобильных приложений на основе скриншотов
PDF
Тестирование весна 2013 лекция 3
PDF
Who is a functional tester
PPTX
Надежный тест-дизайн
Путь к чистому и компактному коду исполняемых спецификаций
IT-шная история игрушек или feature-driven тестирование в действии
Автоматизация тестирования встроенного ПО
зуева татьяна - опыт автоматизации тестирования в Agile проекте
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Автоматизация.pptx
лекция3 QA
Автоматическое тестирование мобильных приложений на основе скриншотов
Тестирование весна 2013 лекция 3
Who is a functional tester
Надежный тест-дизайн
Ad

More from SQALab (20)

PDF
Готовим стажировку
PPTX
Куда приводят мечты? или Искусство развития тестировщика
PPT
Оптимизация Selenium тестов и ускорение их поддержки
PPT
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
PPTX
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
PPTX
Continuous performance testing
PDF
Конфиги вместо костылей. Pytestconfig и зачем он нужен
PPT
Команда чемпионов в ИТ стихии
PPTX
API. Серебряная пуля в магазине советов
PPTX
Добиваемся эффективности каждого из 9000+ UI-тестов
PPT
Делаем автоматизацию проектных KPIs
PDF
Вредные привычки в тест-менеджменте
PPTX
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
PPT
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
PPTX
Стили лидерства и тестирование
PPT
"Давайте не будем про качество"
PDF
Apache.JMeter для .NET-проектов
PPTX
Тестирование геолокационных систем
PPTX
Лидер или босс? Вот в чем вопрос
PPTX
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Готовим стажировку
Куда приводят мечты? или Искусство развития тестировщика
Оптимизация Selenium тестов и ускорение их поддержки
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Continuous performance testing
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Команда чемпионов в ИТ стихии
API. Серебряная пуля в магазине советов
Добиваемся эффективности каждого из 9000+ UI-тестов
Делаем автоматизацию проектных KPIs
Вредные привычки в тест-менеджменте
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Стили лидерства и тестирование
"Давайте не будем про качество"
Apache.JMeter для .NET-проектов
Тестирование геолокационных систем
Лидер или босс? Вот в чем вопрос
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...

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

  • 1. Software quality assurance days 17 Международная конференция по вопросам качества ПО sqadays.com Минск. 29–30 мая 2015 Говако Евгений Deutsche Bank Technology Center, Санкт-Петебург, Россия Исполнимые спецификации в тестировании UI.
  • 2. О себе Евгений Говако QA/Test Automation Engineer Deutsche Bank Technology Center Russia, St. Petersburg ◦ В QA с 2004 года ◦ QA Lead/Support Lead ◦ QMS ◦ Test Automation since 2012
  • 3. Как пишут автотесты для UI App Driver Framework DSL Test Runner Reporting Test cases
  • 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. Поддержка изменений Test TestAPI App Test Case CR T E S T S U P P O R T
  • 6. Gherkin – исполнимые спецификации ◦ Автотесты - исполнение спецификации шаг за шагом ◦ Gherkin – язык, позволяющий формализовать исполнение строк спецификации ◦ Gherkin – сам по себе является языком программирования ◦ Ключевые слова Given/When/Then ◦ Предполагает интерпретатор шагов (Cucumber/SpecFlow) ◦ Изначально изобретен в для написания спецификаций для Cucumber
  • 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. Пишем тест на 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. Вводим параметризацию [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. Делаем 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. Поддержка изменений Test Case Binding TestAPI App CR T E S T S U P P O R T
  • 12. Преимущества и недостатки Прямая связь спецификации и автотеста Высокая скорость разработки тестов Разработка новых тестов без участия программистов Поддержка тестов на уровне модификации сценариев Ограничение свободы QA в формулировках тестовых сценариев Спецификации уходят от бизнес-смысла к описанию манипуляций с интерфейсом
  • 13. Лучшие практики • Переиспользование шагов • Одно действие на шаг • Использование Background • Использование декларативного стиля написания
  • 14. Что еще? • Создание библиотеки общих шагов • Модификация фреймворка (SpecFlow) • Написание собственного интерпретатора