5 лекция. презентация

23
IT-Академия Алексея Сухорукова Разработка, управляемая поведением

Transcript of 5 лекция. презентация

IT-Академия Алексея Сухорукова

Разработка, управляемая поведением

Agile

Методология Agile - TDD

• Test-driven development – Разработка через тестирование

• техника разработки ПО, которая основывается на повторении очень коротких циклов разработки: – Написание теста– Написание кода– рефакторинг нового кода к

соответствующим стандартам

Итерации TDD

Плюсы TDD

• Более приспособленный для тестирования код

• Рефакторинг кода без риска его испортить

• Большое количество тестов• Более модульный, гибкий и

расширяемый код• Тесты могут быть использованы в

качестве документации

Минусы TDD

• Большое количество кода• Большее время на разработку• Ложное ощущение надежности• Инверсия ответственности без

изменения ответственного• Существуют задачи, которые

невозможно решить только тестами (безопасность данных и взаимодейсвие между процессами)

TDD для тестировщика

• Написание Тест-плана ДО получения продукта на тестирование

• Метод Черного ящика на основе спецификации

• В Agile документация не является сильной стороной

• Частое изменение требований нарушает принципы TDD

От TDD к BDD

• Behavior-driven development (BDD) - Разработка через поведение

• техника разработки ПО, которая основывается на TDD, но в основу берутся не тесты, а поведение системы

• Поведение описывается на «обычном» языке по шаблонам – User story

Сильные стороны

• Более полная спецификация за счет «User story»

• «User story» можно показать конечному пользователю

• Меньшее количество тестов, по сравнению с TDD, при более плотном покрытии функционала

Недостатки BDD

• Постоянное общение с заказчиком (не всегда возможно)

• Не для всех проектов

User story

• Одно или несколько предложений, на «обычном» языке, понятных конечному пользователю

• Описывает «Кто», «Что» и «Почему» требует от системы

• Простое и короткое описаниеКак (As a) Я хочу (I want) Чтобы (so that)

Пример User story Банкомат

Название: Клиент изымает наличныеКак клиент,Я хочу получить наличные из банкомата,чтобы мне не пришлось стоять в очереди в банке.

Сценарии для User story

• описание поведения системы, которым она отвечает на внешние запросы

• сценарий использования описывает, «кто» и «что» может сделать с рассматриваемой системой

• На одну User story может быть от одного до нескольких сценариев

Критерии хороших сценариев

• Независимые

• Конфигурируемые (таблицы, параметры)

• Конкретные имена

• Одно действие (пользователя) = один шаг (сценария)

• Одинаковые действия = одинаковое имя шага

User story и Сценарии

• User story содержат небольшие детали, оставаясь открытыми для интерпретации. Они помогают понимать что должна делать система.

• Сценарии описывают процесс и его шаги подробно. Обеспечивает всю необходимую информацию и детали для понимания

Примеры сценариев

Сценарий 1: На счету есть деньги

• Допустим на счету есть деньгиИ Карточка валиднаяИ в банкомате есть наличностьЕсли Клиент запрашивает наличностьТо Убедиться в том, что сумма вычтена со счетаИ убедиться в том, что деньги выданыИ убедиться в том, что карточка возвращена

Примеры сценариев

Сценарий 2: счет превышен за рамки лимита

• Допустим счет превышенИ карточка валиднаяЕсли клиент запрашивает наличностьТо убедиться в том, что показано сообщение об отказеИ убедиться в том, что наличность не выданаИ убедиться в том, что карточка возвращена

Жизненный цикл User story

BDD для тестировщика

• Написание Сценариев совместно с аналитиком и заказчиком

• Нефункциональное тестирование (UI, локализации, совместимости, безопасности, производительности и т.д.)

Инструменты

• JBehave

• Cucumber

• Specflow

• NBehave

ПримерБонусная программа на

автозаправке• Бонусы получают клиенты после каждой

совершенной покупки. Количество бонусов зависит от статуса карты.

• Серебряный – 3 бонуса за каждые 100р

• Золотой - 4 бонуса за каждые 100р

• Платиновый - 5 бонусов за каждые 100р

Пример (продолжение)

• Новые участники получают статус Серебряный, который меняется в начале каждого месяца.

Серебряный – менее 5999,99р

Золотой – от 6000 до 11999,99р

Платиновый – более 12000р