Tag Archives: TDD

Тренинг: Test-Driven Development в Java

Test-Driven Development («разработка через тестирование») – это специальная методика разработки ПО, которая основывается на коротких циклах работы, где сначала создаётся тест, а потом функционал.

Создавая тесты до реализации кода, мы создаем модель предметной области в уме, управляем процессом разработки кода, и, наконец, обеспечиваем себя средствами для автоматической проверки корректности кода. В результате мы получаем более безопасный, структурированный, легко читаемый код, уменьшаем количество дефектов и т.д. Этот способ программирования полностью отличается от тех, к которым мы привыкли, и намного приятнее.

(more…)

Read full storyComments { 0 }

Индикатор плохого дизайна

author: b?hringer friedrich, http://commons.wikimedia.org/wiki/File:Seefrosch01.JPG

Если тебе сложно написать тест, то это не проблема тест-фреймворка, моков и т.п. Сложный тест – это признак того, что в дизайне системы есть проблемы. Тесты являются конкретной практикой, которая позволяет делать дизайн лучше даже в тех случаях, когда ты не знаешь, что такое паттерны проектирования.

Бывают моменты, когда приходится прилагать много усилий для написания теста очередной функции. Ты начинаешь писать тест и его код разрастается до невиданных размеров или ты стопоришься на том, что не знаешь, как “замочить” или “застабить” функцию/класс. И тут начинается колдовство и просыпается изобретательность, которые приводят к тому, что коллега, просмотрев тест, с трудом понимает, что в нем происходит.

Если у тебя сейчас так, то тебе нужно остановиться. Убери руки с клавиатуры и взгляни на свою систему. Возможно тебе стоит заменить наследование композицией? Возможно твоя функция берет на себя слишком много обязанностей? А может у тебя слишком много зависимостей? Подумай, что мешает тебе написать простой тест?

Как в истории про лягушку и котел: если лягушку борсить в котел с кипящей водой, то она сразу выпрыгнет от туда. Если в котле будет холодная вода и он будет нагреваться постепенно, то лягушка сварится. Тесты позволяют вам почувствовать момент, когда дизайн системы начинает усложняться и когда следует выпрыгивать из котла 😉

Read full storyComments { 2 }

Итоги 5й встречи сообщества Agile.BY

Коллеги, 26 февраля мы провели очередную встречу сообщества Agile.BY.

Павел Габриель выступил с презентацией на тему разработки через тестирование (Test Driven Development), а Николай Кардаш поделился опытом и информацией о том, как писать модульные тесты и какими инструментами при этом можно пользоваться.

Николай предоставил исходный код и примеры использования фреймворков, которые он продемонстрировал на встрече (в архиве есть инструкция, как все запускать: DemoReam1st.txt).

Презентация Николая:

[slideshare id=1102171&doc=agileinstrumentation-090304154501-phpapp02] (more…)

Read full storyComments { 11 }

5-я встреча сообщества Agile.by

Коллеги, приглашаем вас на  5-ю встречу сообщества Agile.BY!

Встреча будет состоять из 2х лекций и будет посвящена разработке через тестирование (TDD) и модульному тестированию в целом.

Затронем такие вопросы и темы:

  • Что такое TDD?
  • Рабочий цикл TDD
  • Что дает TDD разработчикам?
  • Модульные тесты
  • Каким инструментарием можно воспользоваться для тестирования?
  • Как писать тесты эффективнее?
  • Проблемы применения модульных тестов.

Выступят: Николай Кардаш и Павел Габриель.

>> Регистрация <<

Помните, что количество место ограничено!

Встречаемся 26-го февраля (четверг), в 17:30. Место проведения: Университет Культуры и Искусств (главный вход).

UPD: Адрес Университета Культуры: Рабкоровская, 17. Главный вход находится со стороны улицы Суражской.

Данная встреча проводится совместно с проектом EDU (http://it-job.by). (more…)

Read full storyComments { 1 }

Детские шаги

img_8433В эту пятницу я провел несколько мучительных часов в попытке слегка подкорректировать разрабатываемое нами приложение: вынести часть логики из одного класса в другой (поместить его на уровень выше).

В процессе изменения одной части кода возникало желание поменять ещё и соседние функции, благо все изменения лежали в рамках намеченной цели. Много маленьких модификаций, которые не должны были сильно повлиять на общую работу, повлекли за собой сбой во многих тестах.

Я провел 4 часа в попытках привести тесты и код в порядок. Потерял уверенность в стабильности нашей системы и уже был готов к тому, что проведу все выходные с мыслями о том, как же мне все переделать, чтобы было красиво и работало 🙂 (more…)

Read full storyComments { 1 }

Разработка через тестирование

На первой встрече Agile.by было задано много вопросов по тестированию. Я нашел замечательную презентацию, которая может прояснить многие моменты TDD. В презентации также делается обзор средств для написания модульных тестов на различных языках: PHP, Ruby, Python, Java, Perl, C/C++.А вот и сама презентация:

[slideshare id=181371&doc=test-driven-development-tutorial-11961285135562-4&w=425]

Для “погружения” в тему можно прочитать книгу Кента Бека “Экстремальное программирование: разработка через тестирование”.

Read full storyComments { 12 }