gherkin language как эффективный способ...

20
Девятая независимая научно-практическая конференция «Разработка ПО 2013» 23 - 25 октября, Москва Олеся Воронович, «Universal Software» E-mail: [email protected] Skype: Olesya_Voronovich Gherkin language как эффективный способ написания приемочных тестов для пользовательских историй

Upload: others

Post on 25-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Девятая независимая научно-практическая конференция «Разработка ПО 2013» 23 - 25 октября, Москва

Олеся Воронович,

«Universal Software» E-mail: [email protected]

Skype: Olesya_Voronovich

Gherkin language как эффективный способ написания приемочных тестов

для пользовательских историй

Page 2: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Проблемы

Регрессия Теряются знания о

проекте

Невозможность четко спроектировать полную

архитектуру проекта

Page 3: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Пирамида автоматизации тестов (Майк Кон)

unit testing

Обслуживание

Пользова-

тельский

интерфейс

Page 4: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

3 Agile Testing Quadrants (Brian Marick, Lisa Crispin)

Бизнес-ориентированное

Функциональные тесты Примеры Истории Прототипы Симуляции

Исследовательские тесты Сценарии Тестирование usability

Пользовательские тесты

Unit-тесты

Интеграционные тесты

Нагрузочное тестирование Проверка защищенности

Технологически-ориентированное

1

2 3

4

Автотесты

Авто + ручное Ручное

Спец. инструменты

Помощь

команде

Критика

продукта

Page 5: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

BDD (behavior-driven development) – разработка, основанная на функционировании.

Сценарий

Код

Page 6: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Преимущества подхода:

Однозначная трактовка бизнес-логики

Облегчение процесса разработки

Тестирование работоспособности кода, ранний поиск багов и регрессий

На написание автотестов, как правило, не требуется много времени

Четкое описание бизнес-логики в пользовательских историях

Безопасный рефакторинг кода

Page 7: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Пользовательская история – это способ описания требований к разрабатываемой системе,

сформулированный как одно или более предложений на простом языке пользователя.

Формат пользовательских историй (Майк Кон):

Как <роль пользователя>, мне необходимо <поведение>, чтобы получить <ценность бизнеса>

Page 8: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Gherkin language – синтаксис, созданный специально для описания поведения

системы, пользовательских сценариев.

Page 9: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Структура тестов:

Scenario: Some determinable business situation

Given some precondition

And some other precondition

When some action by the actor

And some other action

And yet another action

Then some testable outcome is achieved

And something else we can check happens too

Page 10: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

User Story:

As a scheduling user i would like to export all patient demographics in one single file to provide for reading physician before test will be performed for reading physician usage.

Page 11: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Acceptance Criteria: Scenario: Processing patient demographics form

Given opened processing module

And selected scheduled patient

And patient has more than one study

And reading assigned for all studies

When click on print/Patient Demographics

Then Patient Demographics form opened in new tabs without downloading

And pdf contains all studies with related information

And pdf looks like superbill but billing information is not rendered and title have different name

And diagnoses are displayed

And studies are displayed even if reading is not assigned

Page 12: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Scenario: Billing demographics form for selected study Given opened billing module

And group by service option not enabled

And selected scheduled patient

And patient has more than one study

And only first study selected

When click on print/Patient Demographics

Then Patient Demographics form will contain just one selected study

Page 13: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Scenario: Billing demographics form for service

Given opened billing module

And group by service option enabled

And selected scheduled patient

And patient has more than one study

When click on print/Patient Demographics

Then Patient Demographics form will contain all patient studies

Page 14: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Плюсы использования технологии:

Автоматизированная генерация тестов на базе описания приемочных тестов

Гибкость

Жесткая формализация критерия готовности истории, упрощение работы для QA-специалиста

Код тестов легко читаем

Масштабирование.

Page 15: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Сложности использования технологии:

Требуется крайняя вовлеченность PO и его интерес к этому (technical skills background)

Жесткие требования на оформление мыслей в виде текста

Требуется большой разогрев команды, прежде чем BDD будет эффективно работать

unit-тесты все еще нужны.

Page 16: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Definition Of Done

Для истории

Имеет приоритет

Имеет приемочные тесты

Имеет сценарий демонстрации.

Для задачи:

Прошла code review

Написаны автотесты

Все тесты успешно пройдены.

Page 17: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Внедрение BDD

В проект, разрабатываемый

с нуля

В середине проекта

Page 18: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Проблемы внедрения BDD в проект, разрабатываемый с нуля:

Команда договорилась о критериях готовности, но не выполняет их

РО пытается вмешиваться в процесс разработки.

Page 19: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Проблемы внедрение BDD в середине проекта:

Оценка объема необходимых автотестов для полного покрытия системы

Постоянное отслеживание динамики изменения ситуации по автотестам.

Page 20: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая

Девятая независимая научно-практическая конференция «Разработка ПО 2013» 23 - 25 октября, Москва

Олеся Воронович,

«Universal Software» E-mail: [email protected]

Skype: Olesya_Voronovich

БЛАГОДАРЮ ЗА ВНИМАНИЕ!