![Page 1: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/1.jpg)
Девятая независимая научно-практическая конференция «Разработка ПО 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описания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/2.jpg)
Проблемы
Регрессия Теряются знания о
проекте
Невозможность четко спроектировать полную
архитектуру проекта
![Page 3: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/3.jpg)
Пирамида автоматизации тестов (Майк Кон)
unit testing
Обслуживание
Пользова-
тельский
интерфейс
![Page 4: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/4.jpg)
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описания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/5.jpg)
BDD (behavior-driven development) – разработка, основанная на функционировании.
Сценарий
Код
![Page 6: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/6.jpg)
Преимущества подхода:
Однозначная трактовка бизнес-логики
Облегчение процесса разработки
Тестирование работоспособности кода, ранний поиск багов и регрессий
На написание автотестов, как правило, не требуется много времени
Четкое описание бизнес-логики в пользовательских историях
Безопасный рефакторинг кода
![Page 7: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/7.jpg)
Пользовательская история – это способ описания требований к разрабатываемой системе,
сформулированный как одно или более предложений на простом языке пользователя.
Формат пользовательских историй (Майк Кон):
Как <роль пользователя>, мне необходимо <поведение>, чтобы получить <ценность бизнеса>
![Page 8: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/8.jpg)
Gherkin language – синтаксис, созданный специально для описания поведения
системы, пользовательских сценариев.
![Page 9: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/9.jpg)
Структура тестов:
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описания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/10.jpg)
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описания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/11.jpg)
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описания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/12.jpg)
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описания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/13.jpg)
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описания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/14.jpg)
Плюсы использования технологии:
Автоматизированная генерация тестов на базе описания приемочных тестов
Гибкость
Жесткая формализация критерия готовности истории, упрощение работы для QA-специалиста
Код тестов легко читаем
Масштабирование.
![Page 15: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/15.jpg)
Сложности использования технологии:
Требуется крайняя вовлеченность PO и его интерес к этому (technical skills background)
Жесткие требования на оформление мыслей в виде текста
Требуется большой разогрев команды, прежде чем BDD будет эффективно работать
unit-тесты все еще нужны.
![Page 16: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/16.jpg)
Definition Of Done
Для истории
Имеет приоритет
Имеет приемочные тесты
Имеет сценарий демонстрации.
Для задачи:
Прошла code review
Написаны автотесты
Все тесты успешно пройдены.
![Page 17: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/17.jpg)
Внедрение BDD
В проект, разрабатываемый
с нуля
В середине проекта
![Page 18: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/18.jpg)
Проблемы внедрения BDD в проект, разрабатываемый с нуля:
Команда договорилась о критериях готовности, но не выполняет их
РО пытается вмешиваться в процесс разработки.
![Page 19: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/19.jpg)
Проблемы внедрение BDD в середине проекта:
Оценка объема необходимых автотестов для полного покрытия системы
Постоянное отслеживание динамики изменения ситуации по автотестам.
![Page 20: Gherkin language как эффективный способ …2013.secrus.org/2013/files/078_voronovich.pdfописания приемочных тестов Гибкость Жесткая](https://reader030.vdocuments.mx/reader030/viewer/2022040615/5f0d78c57e708231d43a8610/html5/thumbnails/20.jpg)
Девятая независимая научно-практическая конференция «Разработка ПО 2013» 23 - 25 октября, Москва
Олеся Воронович,
«Universal Software» E-mail: [email protected]
Skype: Olesya_Voronovich
БЛАГОДАРЮ ЗА ВНИМАНИЕ!