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

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

Upload: vyacheslav-lyalkin

Post on 13-Dec-2014

1.442 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

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

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

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

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

Excellence in Software Engineering

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

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

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

Unit Tests

Integration Tests

Acceptance Tests

GUI Tests

Manual Tests

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

Test-driven development

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

* Test-Driven Development

* Test first

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

Red-Green-Refactor

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

RED

GREENREFACTOR

RED

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

RED

GREENREFACTOR

GREEN

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

RED

GREENREFACTOR

REFACTOR

Page 11: Разработка через тестирование (TDD и BDD)
Page 12: Разработка через тестирование (TDD и BDD)
Page 13: Разработка через тестирование (TDD и BDD)

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

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

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

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

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

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

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

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

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

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

*

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

KEEP CALM,THINKAND

BE CAREFUL!

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

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

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

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

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

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

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

When TDD «smells»

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

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

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

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

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

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

FAILS

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

Behavior-drivendevelopment

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

BDD

• Behavior-Driven Development;

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

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

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

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

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

Concordion

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

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

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

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

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

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

Событие

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://cukes.info

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

ПРИМЕР

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

add_product.feature:

AddProductStepdefs.java:

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

• Web-application

• Continuous Integration

• Acceptance-tests

• TestNG

• Cucumber

• Selenium

• Smoke/full-tests

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

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

THANKS!