Tech talk in Grid Dynamics on unit testing, TDD, BDD

Сегодня выступал с докладом в харьковском офисе компании Grid Dynamics на тему How to build better software with unit testing, TDD, BDD. Иначе говоря, как эти методологии помогают создавать ПО и делать его лучше. Пару слов о содержании презентации и самооценке результатов.

Содержание презентации

Саму презентацию решил делать при помощи сервиса prezi.com. Несмотря на то, что были отзывы, что есть проблемы с демонстрацией ее с проектора. С проектором подружились, хотя за время презентации он пару раз отключался, и приходилось ждать некоторое время, после чего включать его снова.

Презентации, созданные в prezi.com - построены на использовании технологии Flash. И в целом такие презентации выглядят поживее и подинамичней, чем их PowerPoint собратья. Можно создавать неплохие анимационные эффекты, которые могут удачно подчеркнуть идею, например делая zoom in/zoom out при переходе между master/detail слайдами. Главное, не переборщить с поворотами, особенно, если слайды меняются довольно часто - может закружится голова. Короче говоря, лучше один раз увидеть, чем что раз услышать.

Изначально, идея была рассказать о "Behavior driven development", но по мере создания презентации фокус сместился в сторону unit-тестов и test-driven development.

  1. Важность методик unit-testing, TDD, BDD. Их цель.
  2. Unit testing: why, how, what's in practice?
  3. Понятие test-first development. Шаги к его пониманию.
  4. Test driven development. TDD as a software development process. Как использование TDD улучшает дизайн приложения, как помогает при рефакторинге, как помогает фокусироваться на поведение и другие вопросы?
  5. Пример написания кода в BDD-стиле из проекта MemcacheIt с применением BDD-framework SimpleSpec.

Результаты

Если проанализировать результаты, то я пришел к таким выводам, а именно - что бы я изменил, если бы делал презентацию еще раз.

  1. Сократить время выступления до 20 минут против порядка 40.
  2. Убрать раздел о unit-тестах. Все и так знают, что это такое. Сосредоточиться на TDD и BDD.
  3. Сократить объем теории и показывать больше примеров.
  4. Возможно, показать живой пример создания тестов, написания кода модуля, и запуска тестов в IDE, нежели показывать принт-скрины кода на слайдах.

Как бы там ни было, спасибо ребятам из Grid Dynamics, которые проявили гостепреимство и посвятили почти час своего времени моему докладу. Надеюсь, было интересно.