SlideShare une entreprise Scribd logo
1  sur  84
Запускаем TDD с середины проекта
Павел Габриель alovak@gmail.comМинск, Беларусьруководитель проектов, программист«Смартсистемз» 2
Вопросы
О чем пойдет речь?
о проблемах и возможных решениях
Компания
Команда
Код
С чего начать?
Стоит ли внедрять?
Возможно НЕТ, если
Проблемы с командой
Детальное проектирование
Нет изменений
Через неделю релиз
Один джедай
Один джедай и это вы ;)
Мифы и реальность
Мифы
Полное отсутствие багов
Все должно быть протестировано
Многократное увеличение объема кода
Время разработки значительно увеличится
15-20% на новом проекте
Качественный код по TDD может написать любой
Можно отказаться от тестировщиков
Реальность
Более качественный код
Меньшая связанность
Узкая специализация
Хорошие интерфейсы
Легкая интеграция
Уменьшение времени отладки
Легкие миграции
Частые релизы
Условия для TDD
Вера в разработчиков
Возможность принимать решения
Команда
Причины отказа
Это не моя работа
TDD - это тестирование
TDD - это тестированиепроектирование
TDD - это тестированиепроектированиеулучшение кода
Я не знаю зачем писать тесты
Доверие
Код
Коллеги
Клиенты
Смелость и уверенность
Мой мозг может больше
Нет времени
Это невозможно протестировать
Проще написать код, чем тест
Мой код работает и так! на моем компьютере ;)
Доносим суть TDD
Кент Бек "Разработка черезтестирование"
Тренер/опытный лидер
Учебный проект
Итого
Понимаем
Хотим
Учимся писать тесты
Код
С чем боремся?
Дублирование
Сложность
Зависимость
Тестовая среда
Независимая
Легко воспроизводимая
Максимально реальная
Автоматическиефункциональные тесты для ядра
Пишем по TDD
Новый код
Модифицируемый старый код
Найденные баги
Метрики
Правильные инструменты
Спасибо за внимание! Вопросы?

Contenu connexe

Tendances

Эволюция тестирования в QA
Эволюция тестирования в QAЭволюция тестирования в QA
Эволюция тестирования в QARina Uzhevko
 
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Ontico
 
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Alina Dolgikh
 
Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?SQALab
 
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui testsBdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui testsautomated-testing.info
 
Траблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QA
Траблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QAТраблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QA
Траблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QAОлег Чебулаев
 
Человек со стокгольмским синдромом
Человек со стокгольмским синдромомЧеловек со стокгольмским синдромом
Человек со стокгольмским синдромомSQALab
 
сергей андреев
сергей андреевсергей андреев
сергей андреевAlexei Lupan
 
Документация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйДокументация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйDataArt
 
Скандалы, расследования, тестирование
Скандалы, расследования, тестированиеСкандалы, расследования, тестирование
Скандалы, расследования, тестированиеSQALab
 
Технопарк_Управление Web-проектом_3 занятие
Технопарк_Управление Web-проектом_3 занятиеТехнопарк_Управление Web-проектом_3 занятие
Технопарк_Управление Web-проектом_3 занятиеАртём Шихарев
 
Оптимизируем тест кейсы
Оптимизируем тест кейсыОптимизируем тест кейсы
Оптимизируем тест кейсыSQALab
 
QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...
QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...
QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...QAFest
 
некоторые правила управления проектами. часть I
некоторые правила управления проектами. часть Iнекоторые правила управления проектами. часть I
некоторые правила управления проектами. часть Iprigarov
 
юнит тестирование Fork
юнит тестирование Forkюнит тестирование Fork
юнит тестирование ForkSergey Oreshkov
 
Простой взгляд на автоматизацию или Как не изобретать велосипед
Простой взгляд на автоматизацию или Как не изобретать велосипедПростой взгляд на автоматизацию или Как не изобретать велосипед
Простой взгляд на автоматизацию или Как не изобретать велосипедSQALab
 
UAT не для слабаков
UAT не для слабаковUAT не для слабаков
UAT не для слабаковSQALab
 
Yaroslava Bagrii “Тестувати можна все….Навіть людей”
Yaroslava Bagrii “Тестувати можна все….Навіть людей” Yaroslava Bagrii “Тестувати можна все….Навіть людей”
Yaroslava Bagrii “Тестувати можна все….Навіть людей” Dakiry
 
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии ПучнинойSCRUMguides
 

Tendances (20)

Эволюция тестирования в QA
Эволюция тестирования в QAЭволюция тестирования в QA
Эволюция тестирования в QA
 
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
 
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
 
Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?
 
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui testsBdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
 
Траблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QA
Траблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QAТраблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QA
Траблшутинг в IT компании: и все горит, и ты горишь и ты в аду. BA, PM, DEV, QA
 
Человек со стокгольмским синдромом
Человек со стокгольмским синдромомЧеловек со стокгольмским синдромом
Человек со стокгольмским синдромом
 
сергей андреев
сергей андреевсергей андреев
сергей андреев
 
Документация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйДокументация тестировщика - Александр Трибушный
Документация тестировщика - Александр Трибушный
 
Скандалы, расследования, тестирование
Скандалы, расследования, тестированиеСкандалы, расследования, тестирование
Скандалы, расследования, тестирование
 
Технопарк_Управление Web-проектом_3 занятие
Технопарк_Управление Web-проектом_3 занятиеТехнопарк_Управление Web-проектом_3 занятие
Технопарк_Управление Web-проектом_3 занятие
 
Оптимизируем тест кейсы
Оптимизируем тест кейсыОптимизируем тест кейсы
Оптимизируем тест кейсы
 
QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...
QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...
QA Fest 2018. Андрей Ладутько. Доменное тестирование – новое или хорошо забыт...
 
некоторые правила управления проектами. часть I
некоторые правила управления проектами. часть Iнекоторые правила управления проектами. часть I
некоторые правила управления проектами. часть I
 
юнит тестирование Fork
юнит тестирование Forkюнит тестирование Fork
юнит тестирование Fork
 
Простой взгляд на автоматизацию или Как не изобретать велосипед
Простой взгляд на автоматизацию или Как не изобретать велосипедПростой взгляд на автоматизацию или Как не изобретать велосипед
Простой взгляд на автоматизацию или Как не изобретать велосипед
 
UAT не для слабаков
UAT не для слабаковUAT не для слабаков
UAT не для слабаков
 
Yaroslava Bagrii “Тестувати можна все….Навіть людей”
Yaroslava Bagrii “Тестувати можна все….Навіть людей” Yaroslava Bagrii “Тестувати можна все….Навіть людей”
Yaroslava Bagrii “Тестувати можна все….Навіть людей”
 
TDD
TDDTDD
TDD
 
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
 

En vedette

Immutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWSImmutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWSPavel Gabriel
 
ActiveRecord::Callbacks. Готовим правильно.
ActiveRecord::Callbacks. Готовим правильно.ActiveRecord::Callbacks. Готовим правильно.
ActiveRecord::Callbacks. Готовим правильно.Pavel Gabriel
 
Successful development without QA
Successful development without QASuccessful development without QA
Successful development without QAPavel Gabriel
 
10 reasons I love RubyOnRails
10 reasons I love RubyOnRails10 reasons I love RubyOnRails
10 reasons I love RubyOnRailsPavel Gabriel
 
Обязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППОбязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППPavel Gabriel
 
Social factors in groups
Social factors in groupsSocial factors in groups
Social factors in groupsPavel Gabriel
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

En vedette (8)

Pomodoro technique
Pomodoro techniquePomodoro technique
Pomodoro technique
 
Immutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWSImmutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWS
 
ActiveRecord::Callbacks. Готовим правильно.
ActiveRecord::Callbacks. Готовим правильно.ActiveRecord::Callbacks. Готовим правильно.
ActiveRecord::Callbacks. Готовим правильно.
 
Successful development without QA
Successful development without QASuccessful development without QA
Successful development without QA
 
10 reasons I love RubyOnRails
10 reasons I love RubyOnRails10 reasons I love RubyOnRails
10 reasons I love RubyOnRails
 
Обязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППОбязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ППП
 
Social factors in groups
Social factors in groupsSocial factors in groups
Social factors in groups
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similaire à Tdd from the middle

Хотите драйва? Вам в TDD!
Хотите драйва? Вам в TDD!Хотите драйва? Вам в TDD!
Хотите драйва? Вам в TDD!Serhiy Kalinets
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Код-ревью в Drupal
Код-ревью в DrupalКод-ревью в Drupal
Код-ревью в DrupalShvetsGroup
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
Continuous integration with TeamCity
Continuous integration with TeamCityContinuous integration with TeamCity
Continuous integration with TeamCityAndrei Ivanov
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосноватьMaksym Bezuglyi
 
Правила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил ТабуновПравила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил ТабуновCoub
 
Things To Unlearn In Software Development
Things To Unlearn In Software DevelopmentThings To Unlearn In Software Development
Things To Unlearn In Software DevelopmentAlexey Krivitsky
 
Тестирование наукоёмких SDK
Тестирование наукоёмких SDKТестирование наукоёмких SDK
Тестирование наукоёмких SDKSQALab
 
Никита Галкин "Spec driven development in Microservices"
Никита Галкин "Spec driven development in Microservices"Никита Галкин "Spec driven development in Microservices"
Никита Галкин "Spec driven development in Microservices"Fwdays
 
Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"Startup_Technologies
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииCEE-SEC(R)
 
Как не сойти с ума при разработке крупных проектов на WordPress
Как не сойти с ума при разработке крупных проектов на WordPressКак не сойти с ума при разработке крупных проектов на WordPress
Как не сойти с ума при разработке крупных проектов на WordPressYevhen Kotelnytskyi
 
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0AlexeyParhomenko
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.Pavel Tsukanov
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияzheldak
 
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...Dev_Party
 

Similaire à Tdd from the middle (20)

Хотите драйва? Вам в TDD!
Хотите драйва? Вам в TDD!Хотите драйва? Вам в TDD!
Хотите драйва? Вам в TDD!
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Код-ревью в Drupal
Код-ревью в DrupalКод-ревью в Drupal
Код-ревью в Drupal
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Continuous integration with TeamCity
Continuous integration with TeamCityContinuous integration with TeamCity
Continuous integration with TeamCity
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
 
Правила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил ТабуновПравила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил Табунов
 
Things To Unlearn In Software Development
Things To Unlearn In Software DevelopmentThings To Unlearn In Software Development
Things To Unlearn In Software Development
 
Тестирование наукоёмких SDK
Тестирование наукоёмких SDKТестирование наукоёмких SDK
Тестирование наукоёмких SDK
 
Никита Галкин "Spec driven development in Microservices"
Никита Галкин "Spec driven development in Microservices"Никита Галкин "Spec driven development in Microservices"
Никита Галкин "Spec driven development in Microservices"
 
Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
What Tests Are For?
What Tests Are For?What Tests Are For?
What Tests Are For?
 
Как не сойти с ума при разработке крупных проектов на WordPress
Как не сойти с ума при разработке крупных проектов на WordPressКак не сойти с ума при разработке крупных проектов на WordPress
Как не сойти с ума при разработке крупных проектов на WordPress
 
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы применения
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
 

Tdd from the middle