SlideShare a Scribd company logo
1 of 27
Хотите драйва? Вам в TDD! Сергей Калинецhttp://tdd4.net @skalinets
Обо мне > 10 лет в разработке > 6 лет в .Net Фанат TDD
Счастье это.. Когда утром хочется на работу,  а вечером хочется домой
Культ пятницы
Драйв Не драйв
Что печалит Внешние ограничения G-Код Лишний код Начальный тупняк Медленная обратная связь Отладка
Пути спасения Другой проект Другая компания Другой подход
TDD работает Для всех основных языков Для всех методологий С любым (почти) менеджментом
TDD способствует Ускорению разработки Улучшению кода Изучению новых фишек Dependency Injection Unit Test Framework Test Doubles Framework Design Patterns Continuous Integration
Ускорение Быстрая обратная связь Меньше отладчика Ad-hoc тесты «Список покупок»
Уверенность Система постоянно в порядке Ощущение движения вперед Безболезненное улучшение кода
Типы тестов Unit tests Integration tests Ad-hoc tests
Red Green Refactor Пишем тест на несуществующее поведение Запускаем – он падает Пишем нужное поведение Запускаем тест – зеленый Рефакторим поведение, очищая код Запускаем тест – зеленый  Комитим наши изменения.
Принципы Сначала тест – потом код!!! Минимум кода в тесте Проверяемый метод содержит кода ровно столько, чтобы тест проходил
Integration Tests Тестируют части системы Могут взаимодействовать с внешним миром
А где QAs?
Препятствия Отрицание Неправильное понимание Неприятие командой Неприятие менеджментом
Ошибки внедрения Тесты после кода Тестируем старый код Отсутствие опыта
Больше драйва? Парное программирование Agile Modeling Continuous deployment
Заключение Не используете TDD – попробуйте Не получается – спрашивайте  Получается – делитесь опытом
Спасибо! Сергей Калинец http://tdd4.net Skype: sergiikalinets kalinets@gmail.xom Twitter: @skalinets

More Related Content

What's hot

Эффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитикаЭффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитикаSQALab
 
Пополняем арсенал тестировщика. Учимся применять новые техники
Пополняем арсенал тестировщика. Учимся применять новые техникиПополняем арсенал тестировщика. Учимся применять новые техники
Пополняем арсенал тестировщика. Учимся применять новые техникиSQALab
 
Sq adays 2010_balashenko
Sq adays 2010_balashenkoSq adays 2010_balashenko
Sq adays 2010_balashenkoAlexei Lupan
 
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяцаДелимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяцаSQALab
 
Как вводить нового тестировщика в команду
Как вводить нового тестировщика в командуКак вводить нового тестировщика в команду
Как вводить нового тестировщика в командуSQALab
 
Управление виртуальной командой аналитиков
Управление виртуальной командой аналитиковУправление виртуальной командой аналитиков
Управление виртуальной командой аналитиковSQALab
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Все грани рецензирования требований
Все грани рецензирования требованийВсе грани рецензирования требований
Все грани рецензирования требованийSQALab
 
Гибкое тестирование
Гибкое тестированиеГибкое тестирование
Гибкое тестированиеRina Uzhevko
 
Как аналитика помогает тестировщику
Как аналитика помогает тестировщикуКак аналитика помогает тестировщику
Как аналитика помогает тестировщикуSQALab
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.Mad Devs
 
Очередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFOОчередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFOSQALab
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибкиQA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибкиQAFest
 
Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)
Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)
Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)Rina Uzhevko
 
Роль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаРоль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаSQALab
 
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...QAFest
 
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...GTestClub
 

What's hot (20)

Эффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитикаЭффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитика
 
Пополняем арсенал тестировщика. Учимся применять новые техники
Пополняем арсенал тестировщика. Учимся применять новые техникиПополняем арсенал тестировщика. Учимся применять новые техники
Пополняем арсенал тестировщика. Учимся применять новые техники
 
Tdd
TddTdd
Tdd
 
Sq adays 2010_balashenko
Sq adays 2010_balashenkoSq adays 2010_balashenko
Sq adays 2010_balashenko
 
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяцаДелимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
 
Test
TestTest
Test
 
Как вводить нового тестировщика в команду
Как вводить нового тестировщика в командуКак вводить нового тестировщика в команду
Как вводить нового тестировщика в команду
 
Управление виртуальной командой аналитиков
Управление виртуальной командой аналитиковУправление виртуальной командой аналитиков
Управление виртуальной командой аналитиков
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Все грани рецензирования требований
Все грани рецензирования требованийВсе грани рецензирования требований
Все грани рецензирования требований
 
Гибкое тестирование
Гибкое тестированиеГибкое тестирование
Гибкое тестирование
 
Как аналитика помогает тестировщику
Как аналитика помогает тестировщикуКак аналитика помогает тестировщику
Как аналитика помогает тестировщику
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.
 
Очередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFOОчередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFO
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибкиQA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки
 
Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)
Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)
Доклад Очира Абушинова на встрече клубе MSTC (17/05/2014)
 
Роль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаРоль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщика
 
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...
 
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
 

Similar to Хотите драйва? Вам в TDD!

Рефакторинг
РефакторингРефакторинг
РефакторингSmartStepGroup
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agilesef2009
 
Постановка процесса тестирования в Agile
Постановка процесса тестирования в AgileПостановка процесса тестирования в Agile
Постановка процесса тестирования в AgileSQALab
 
Тест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеТест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеVasiliy Burov
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014it-people
 
Путь XP практика
Путь XP практикаПуть XP практика
Путь XP практикаSerhiy Kalinets
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
 
Успешная карьера в современной разработки программного обеспечения
Успешная карьера в современной разработки программного обеспеченияУспешная карьера в современной разработки программного обеспечения
Успешная карьера в современной разработки программного обеспеченияSergey Morgunov
 
путь Xp практика
путь Xp практикапуть Xp практика
путь Xp практикаSerhiy Kalinets
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1sgdread
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgilePavel Veinik
 
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии ПучнинойSCRUMguides
 
Построение процесса тестирования
Построение процесса тестированияПостроение процесса тестирования
Построение процесса тестированияAlexander Byndyu
 
Автотесты и образ мышления
Автотесты и образ мышленияАвтотесты и образ мышления
Автотесты и образ мышленияAndrei Zubov
 

Similar to Хотите драйва? Вам в TDD! (20)

Tdd from the middle
Tdd from the middleTdd from the middle
Tdd from the middle
 
Рефакторинг
РефакторингРефакторинг
Рефакторинг
 
Keyword driven testing
Keyword driven testingKeyword driven testing
Keyword driven testing
 
Code review psyhology
Code review psyhologyCode review psyhology
Code review psyhology
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agile
 
Постановка процесса тестирования в Agile
Постановка процесса тестирования в AgileПостановка процесса тестирования в Agile
Постановка процесса тестирования в Agile
 
Тест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеТест-план и исследовательское тестирование
Тест-план и исследовательское тестирование
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
 
Путь XP практика
Путь XP практикаПуть XP практика
Путь XP практика
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
Успешная карьера в современной разработки программного обеспечения
Успешная карьера в современной разработки программного обеспеченияУспешная карьера в современной разработки программного обеспечения
Успешная карьера в современной разработки программного обеспечения
 
TDD
TDDTDD
TDD
 
путь Xp практика
путь Xp практикапуть Xp практика
путь Xp практика
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы Agile
 
What Tests Are For?
What Tests Are For?What Tests Are For?
What Tests Are For?
 
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
 
Построение процесса тестирования
Построение процесса тестированияПостроение процесса тестирования
Построение процесса тестирования
 
Автотесты и образ мышления
Автотесты и образ мышленияАвтотесты и образ мышления
Автотесты и образ мышления
 

More from Serhiy Kalinets

Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET МіфиSerhiy Kalinets
 
менеджеры против разработчиков
менеджеры против разработчиковменеджеры против разработчиков
менеджеры против разработчиковSerhiy Kalinets
 
Уберинструментарий для тех, кому надоел MSBuild
Уберинструментарий для тех, кому надоел MSBuildУберинструментарий для тех, кому надоел MSBuild
Уберинструментарий для тех, кому надоел MSBuildSerhiy Kalinets
 
Xp в brown field разработке
Xp в brown field разработкеXp в brown field разработке
Xp в brown field разработкеSerhiy Kalinets
 
Functional programming in C#
Functional programming in C#Functional programming in C#
Functional programming in C#Serhiy Kalinets
 
Fubu mvc -- нафига оно мне
Fubu mvc -- нафига оно мнеFubu mvc -- нафига оно мне
Fubu mvc -- нафига оно мнеSerhiy Kalinets
 
Даёшь асинхронность в массы, или как ускориться нашару
Даёшь асинхронность в массы, или как ускориться нашаруДаёшь асинхронность в массы, или как ускориться нашару
Даёшь асинхронность в массы, или как ускориться нашаруSerhiy Kalinets
 
Зачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версийЗачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версийSerhiy Kalinets
 
вкалывают роботы, счастлив человек (Team city)
вкалывают роботы,  счастлив человек (Team city)вкалывают роботы,  счастлив человек (Team city)
вкалывают роботы, счастлив человек (Team city)Serhiy Kalinets
 
TDD: Arrange Act Assert на примере Rhino Mocks
TDD: Arrange Act Assert на примере Rhino MocksTDD: Arrange Act Assert на примере Rhino Mocks
TDD: Arrange Act Assert на примере Rhino MocksSerhiy Kalinets
 

More from Serhiy Kalinets (16)

CI adventures in .NET
CI adventures in .NETCI adventures in .NET
CI adventures in .NET
 
Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET Міфи
 
менеджеры против разработчиков
менеджеры против разработчиковменеджеры против разработчиков
менеджеры против разработчиков
 
Уберинструментарий для тех, кому надоел MSBuild
Уберинструментарий для тех, кому надоел MSBuildУберинструментарий для тех, кому надоел MSBuild
Уберинструментарий для тех, кому надоел MSBuild
 
Xp fun
Xp funXp fun
Xp fun
 
Xp в brown field разработке
Xp в brown field разработкеXp в brown field разработке
Xp в brown field разработке
 
Functional programming in C#
Functional programming in C#Functional programming in C#
Functional programming in C#
 
Fubu mvc -- нафига оно мне
Fubu mvc -- нафига оно мнеFubu mvc -- нафига оно мне
Fubu mvc -- нафига оно мне
 
Ready for prod
Ready for prodReady for prod
Ready for prod
 
Solid code via tdd
Solid code via tddSolid code via tdd
Solid code via tdd
 
Даёшь асинхронность в массы, или как ускориться нашару
Даёшь асинхронность в массы, или как ускориться нашаруДаёшь асинхронность в массы, или как ускориться нашару
Даёшь асинхронность в массы, или как ускориться нашару
 
Clean code
Clean codeClean code
Clean code
 
Зачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версийЗачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версий
 
Мой Скрамбат
Мой СкрамбатМой Скрамбат
Мой Скрамбат
 
вкалывают роботы, счастлив человек (Team city)
вкалывают роботы,  счастлив человек (Team city)вкалывают роботы,  счастлив человек (Team city)
вкалывают роботы, счастлив человек (Team city)
 
TDD: Arrange Act Assert на примере Rhino Mocks
TDD: Arrange Act Assert на примере Rhino MocksTDD: Arrange Act Assert на примере Rhino Mocks
TDD: Arrange Act Assert на примере Rhino Mocks
 

Хотите драйва? Вам в TDD!