Тренинг "TDD-Test Driven Development"

Минск, 1 Февраля 02:00 - 02:00

Тренинг отменен

Разработка через тестирование (Test-Driven Development, TDD) - это значительно больше, чем просто автоматизация unit-тестирования. Прежде всего, TDD - это подход к дизайну программного обеспечения, позволяющий победить одну из ключевых болезней современных сложных систем: сильную связанность (coupling) отдельных компонентов кода между собой. Как следствие, использование TDD гарантирует, что ваше ПО будет не только подробно оттестировано, но и что его будет легко и дешево сопровождать и развивать. TDD наделяет шаблоны Inversion-of-Control (IoC) и Dependency Injection особым смыслом и значимостью, превращая их из просто модных словечек в повседневную необходимость.

Если вы так или иначе уже применяете автоматизированное тестирование с использованием xUnit-фреймворков, то этот материал будет в особенности полезен. Во-первых,TDD значительно эффективнее в борьбе за повышение степени автоматизации тестирования и улучшение внутреннего качества кода, чем традиционный замер и мониторинг таких метрик, как процент покрытия кода тестами, различные характеристики связанности, размеры методов и классов и т.д. А во-вторых, вы узнаете массу полезных практических советов, как сделать ваши тесты более простыми, эффективными и понятными.

Отдельная часть тренинга посвящена работе с унаследованным (legacy) кодом: как постепенно его делать тестопригодным за счет устранения взаимопроникающих зависимостей между классами (coupling), с чего начать и как двигаться по мере развития и исправления ошибок. Без этого сопровождение и развитие legacy-кода рискует превратиться в кошмар: в код страшно вносить изменения, никто не понимает как что работает, команда разработки деморализована и теряет ключевых специалистов, количество дефектов растет катастрофическими темпами, при этом скорость их исправления и внесения новых функций неуклонно падает.

В результате тренинга вы не только разовьете эрудицию и вдоволь пообщаетесь с коллегами, но и:

  • изменится ваше отношение к unit-тестам: их написание станет не только полезным, но и увлекательным занятием;
  • эволюционирует взгляд на объектно-ориентированный дизайн;
  • целый набор шаблонов проектирования приобретут совершенно особенные смысл и ценность.

Содержание тренинга:

Введение

  • виды автоматизированного тестирования: unit, функциональные, интеграционные
  • краткое введение в использование xUnit-фреймворков
  • почему написание тестов с использованием xUnit-фреймворков не есть TDD

TDD

  • основная мантра TDD: "red-green-refactor"
  • как быть с тестированием связанных классов
  • способы уменьшения связанности и повышения тестопригодности: Inversion-of-Control (IoC), Dependency Injection, Message Bus
  • Mock-и и Stub-ы
  • почему в языке Go отсутствует наследование в привычном понимании

TDD в реальной жизни

  • полезные фреймворки и инструменты
  • организация тестов
  • использование custom assert-ов
  • использование builder-ов для создания окружения
  • как быть с СУБД и внешним окружением
  • тестирование UI (шаблоны MVС и MVP)
  • про процент покрытия кода тестами
  • время выполнения тестов, CI
  • mock hell

Полезные элементы BDD:

  • should-именование тестов
  • шаблон given-when-then

Работа с унаследованным (legacy) кодом:

  • как модифицировать существующую функциональность
  • как исправлять ошибки

С чего начать завтра на работе:

  • философия Shu-Ha-Ri
  • тестирование отдельных классов
  • рефакторинг с использованием Dependency Injection
  • Defenition-of-Done

Ключевые ресурсы и книги

Формат тренинга:

Тренинг построен по принципу "live coding first", т.е. прежде всего показывается разработка отдельных фрагментов кода, и только потом подтягивается "теория". Это помогает эффективно усваивать материал, так как подавляющее большинство программистов мыслят "от кода". Кроме того, в процессе тренинга предлагается выполнить несколько учебных упражнений.

Целевая аудитория:

разработчики, ведущие разработчики, team lead-ы, системные архитекторы

Языки и среды:

  • C# 3.0 + MS Visual Studio 2008
  • Java 1.6 + ItelliJ IDEA / NetBeans IDE

Тренер: Дмитрий Лобасев

Дмитрий опытнейший разработчик и талантливый тренер. В настоящий момент является руководителем Agile проектов. Ему очень нравится Agile и нравится помогать проектным командами выстраивать наиболее эффективные процессы, основываясь на принципах Scrum и инженерных практиках XP, таких как Test Driven.

Дмитрий закончил МЭИ, также он сертифицированный Scrum Master.

Работал в Люксофт agile коуч, помогал компаниям перейти с waterfall-based процесса на Agile-based

Стоимость тренинга: 450 000 белорусских рублей, без НДС, при оплате 2х и более человек - скидка 10% (скидки суммируются).

Стоимость участия

Бесплатно

Место проведения

Минск, Минск

Идут 0

© 2008–2021 ЗАО «Дев Бай Медиа»
Перепечатка материалов dev.by возможна только с письменного разрешения редакции.
При цитировании обязательна прямая гиперссылка на соответствующие материалы. Пишите на [email protected].