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

Post on 13-Dec-2014

1.455 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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!

top related