Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TDD

Материалы третьего дня тренинга "Refactoring. Unit Testing. TDD", который проводился 11 Декабря 2013 г. в Нижнем Новгороде

  • Be the first to comment

  • Be the first to like this

TDD

  1. 1. TDD Антон Бевзюк Дмитрий Павлов
  2. 2. Контакты http://get.cardmone.net
  3. 3. Правила Перерывы Жест Никаких мобил Ноуты только на упражнениях Парковка
  4. 4. Проверка домашней работы
  5. 5. УПРАЖНЕНИЕ
  6. 6. Напишите StringCalculator Вход Выход “” 0 “1,2n3,4n5,1000” 15 “-1,2,-3” Exception “Negatives -1, -3 are not allowed.” “//[**][%%%]n1**2%%%3” 6
  7. 7. ЧТО ТАКОЕ TDD?
  8. 8. TDD - методология дизайна
  9. 9. RED/GREEN/REFACTOR Начало Подумать!!! Написать тест Рефакторинг Скомпилировать 10 мин Исправить Запустить тест ошибки компиляции Убедиться, что он прошел Написать код Запустить тест Убедиться, что он упал
  10. 10. Assert First
  11. 11. TDD Kata Step 1: int Add(string numbers) “”  0 “2112”  2112 “2,3”  5 Step 2: Any amount of numbers “1,2,3,4,5”  1+2+3+4+5 Step 3: n delimiter “1n2,3”  1+2+3 Step 4: Custom delimiters “//;n1;2”  1+2 Step 5: Negatives not allowed “-1,2,-3”  Exception “Negatives -1, -3 are not allowed.” Step 6: Ignore numbers > 1000 “1,1000,1001”  1001 Step 7: Multichar delimiter “//[***]n1***2***3”  1+2+3 Step 8: Multiple multichar delimiters “//[**][%%%]n1**2%%%3”  1+2+3
  12. 12. TDD - методология заработка
  13. 13. TDD == юнит тестирование?
  14. 14. TDD == Test First?
  15. 15. TDD это … Test Driven Development Test Oriented Development Test Driven Design Test Driven Development & Design
  16. 16. В Чем Прикуп? • Описание системы • Регрессионное тестирование • Рефакторинг • Мгновенное обнаружение проблем • Простой дизайн • Маленькие шаги Unit Testing • Видно «плохой» дизайн TDD
  17. 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
  18. 18. TDD - методология продаж
  19. 19. Вы любите дебажить?
  20. 20. “Debuggers are a wasteful Timesink” Robert C. Martin Время
  21. 21. TDD - методология вождения
  22. 22. УПРАЖНЕНИЕ
  23. 23. Чистый домен Выберите себе домен Идеи  Жизнь  Боулинг  Нестандартный футбол
  24. 24. Легенды и Мифы о TDD • TDD = Unit Testing • TDD = 100% test coverage • TDD = Объем работ * 2 • Unit tests – это все, что нужно
  25. 25. Что TDD НЕ делает Не учит писать красивые тесты Не гарантирует поддерживаемость тестов Не гарантирует читаемость тестов
  26. 26. Что TDD делает Тесты, которым доверяешь Дизайн (внезапно)  Понятный домен Покрытие тестами Простоту кода Постепенную разработку Поставку раньше и чаще Высокое качество кода
  27. 27. Чему мы научились
  28. 28. TDD - методология чего?
  29. 29. Чему мы научились?
  30. 30. День 1. Рефакторинг Что такое рефакторинг Рефакторинг – это непрерывный процесс Рефакторинг – это просто Основные рефакторинги Маленькие шаги Как рефакторить старый код Технический долг
  31. 31. День 2. Юнит тестирование Зачем тестировать? Структура теста Именование DSL Stub, Fake, Spy, Mock Тесты на поведение и состояние Хороший тест Пирамида тестирования
  32. 32. День 3. TDD TDD это просто TDD это методология дизайна TDD > Unit Testing
  33. 33. Мы не пишем тесты и не рефакторим… У нас нет на это времени Исторически так сложилось У нас своя «специфика» проекта Запрещает менеджер Мы сразу пишем идеальный код Мы наняли Чака Норриса Придумайте свою «уникальную» причину
  34. 34. Рефакторинг, Unit Testing и TDD можно применять и в вашем проекте
  35. 35. Рефакторинг, Unit Testing и TDD можно применять и в вашем проекте
  36. 36. Рефакторинг, Unit Testing и TDD можно применять и в вашем проекте
  37. 37. Что дальше? Как внедрять изменения? Метод Джоэла Спольски (7+1) http://www.joelonsoftware.com/articles/fog00 00000332.html
  38. 38. Книги
  39. 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
  40. 40. Вопросы?
  41. 41. Контакты http://get.cardmone.net

    Be the first to comment

    Login to see the comments

Материалы третьего дня тренинга "Refactoring. Unit Testing. TDD", который проводился 11 Декабря 2013 г. в Нижнем Новгороде

Views

Total views

601

On Slideshare

0

From embeds

0

Number of embeds

4

Actions

Downloads

8

Shares

0

Comments

0

Likes

0

×