Разработка через тестирование (TDD и BDD)

Preview:

DESCRIPTION

Задорная презентация, посвещенная введению в разработку через тестирование. В частности, рассмотрены такие методологии как TDD (Test-Driven Development) и BDD (Behavior-Driven Devopment), их несомненные достоинства и недостатки, а также практическое применение. Презентация подготовлена по материалам прошедшей 10.10.2013 конференции "Developers Software Conference 2013" в Витебске, организатором которой выступила компания "EPAM Systems".

Citation preview

через тестирование

Presented by Вячеслав Лялькин

Excellence in Software Engineering

Уровни тестирования

Unit Tests

Integration Tests

Acceptance Tests

GUI Tests

Manual Tests

Test-driven development

* Test-Driven Development

* Test first

Red-Green-Refactor

RED

GREENREFACTOR

RED

RED

GREENREFACTOR

GREEN

RED

GREENREFACTOR

REFACTOR

КАЧЕСТВО ТЕСТОВ:

(1) 100% покрытие тестами;

(2) модульные тесты;

(3) изменения без страха.

КАЧЕСТВО КОДА:(1) модульный, гибкий и расширяемый код;

(2) всегда работающий код;

(3) меньшее время отладки;

(4) поощряет рефакторинг.

*

KEEP CALM,THINKAND

BE CAREFUL!

(1) высокий порог вхождения;

(2) время при integration-тестировании;

(3) ошибочный тест = ошибочный код;

(4) поддержка большого количества тестов.

НЕДОСТАТКИ TDD:

When TDD «smells»

Пропускается стадия неработающего теста;

Меряется «покрытие кода»;

Отсутствие «зеленого» теста последние 10 минут;

Много времени тратится на рефакторинг;

Игнорируются слишком простые/сложные сценарии.

FAILS

Behavior-drivendevelopment

BDD

• Behavior-Driven Development;

• ответвление TDD

• связь кода с требованиями;

• фокус не на тестах, а на поведении;

• запись требований с помощью обычных фраз.

Concordion

Инструменты BDD

BDD – как это работает

1 Описание поведения заказчиком;

Исходное состояние

Событие

Проверка реакции

Реализация функционала;2

1 Описание поведения заказчиком;

BDD – как это работает

Реализация функционала;2

1 Описание поведения заказчиком;

Проверка соответствия требованиям

(тест прошел/не прошел).3

BDD – как это работает

доступен для многих платформ

<Java, C++, JS, PHP и другие>

http://cukes.info

ПРИМЕР

add_product.feature:

AddProductStepdefs.java:

• Web-application

• Continuous Integration

• Acceptance-tests

• TestNG

• Cucumber

• Selenium

• Smoke/full-tests

ПРИМЕР ИНФРАСТРУКТУРЫ

THANKS!

Recommended