15. TDD это …
Test Driven Development
Test Oriented Development
Test Driven Design
Test Driven Development & Design
16. В Чем Прикуп?
• Описание системы
• Регрессионное тестирование
• Рефакторинг
• Мгновенное обнаружение проблем
• Простой дизайн
• Маленькие шаги
Unit
Testing
• Видно «плохой» дизайн
TDD
17. Цитаты
“Test-Driven Development is a powerful way to produce
well designed code with fewer defects”
Martin Fowler
“The best way that I know to write code is to shape it from
the beginning with tests”
Ron Jeffries
“Fewer defects, less debugging, more confidence, better
design, and higher productivity in my programming
practice”
Kent Beck
24. Легенды и Мифы о TDD
• TDD = Unit Testing
• TDD = 100% test coverage
• TDD = Объем работ * 2
• Unit tests – это все, что нужно
25. Что TDD НЕ делает
Не учит писать красивые тесты
Не гарантирует поддерживаемость тестов
Не гарантирует читаемость тестов
26. Что TDD делает
Тесты, которым доверяешь
Дизайн (внезапно)
Понятный домен
Покрытие тестами
Простоту кода
Постепенную разработку
Поставку раньше и чаще
Высокое качество кода
30. День 1. Рефакторинг
Что такое рефакторинг
Рефакторинг – это непрерывный процесс
Рефакторинг – это просто
Основные рефакторинги
Маленькие шаги
Как рефакторить старый код
Технический долг
31. День 2. Юнит тестирование
Зачем тестировать?
Структура теста
Именование
DSL
Stub, Fake, Spy, Mock
Тесты на поведение и состояние
Хороший тест
Пирамида тестирования
32. День 3. TDD
TDD это просто
TDD это методология дизайна
TDD > Unit Testing
33. Мы не пишем тесты и не рефакторим…
У нас нет на это времени
Исторически так сложилось
У нас своя «специфика» проекта
Запрещает менеджер
Мы сразу пишем идеальный код
Мы наняли Чака Норриса
Придумайте свою «уникальную» причину
39. Ссылки
AgileRussia http://agilerussia.ru/
Roy Osherove http://osherove.com/
Top 100 книг про agile http://habrahabr.ru/company/scrumtrek/blog/201740/
Pluralsight http://www.pluralsight.com/training
SmartStepGroup http://www.smartstepgrp.com/
Презентация про технический долг http://penxy.com/kyle