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

5

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

Методология разработки через тестирование, или TDD (Test Driven Development), появилась в нашей отрасли уже более 10 лет. Изначально она применялась на волне экстремального программирования (XP, eXtreme Programming), но с тех пор была принята на вооружение Scrum и практически всеми остальными гибкими (Agile) методологиями. Даже группы, не использующие гибкие методологии, применяют TDD.

Когда в 1998 году я впервые услышал о «упреждающем тестировании», я отнесся к нему скептически. Да и кто бы поступил иначе? Кто начинает работу с написания модульных тестов? Кто будет делать подобные глупости?

Но к тому времени у меня был уже 30-летний опыт профессионального программирования; я видел, как в отрасли появляются и исчезают новые идеи. Я прекрасно понимал, что ничего не стоит отвергать заранее, особенно если рекомендует такой человек, как Кент Бек.

Так в 1999 году я отправился в Медфорд, штат Орегон, чтобы встретиться с Кентом и научиться у него новой методологии. Результат был просто поразительным!

Мы с Кентом сели у него в офисе и начали программировать простую задачу на Java. Я хотел просто написать свой примитивный код, но Кент воспротивился и провел меня по всему процессу шаг за шагом. Сначала он написал крошечную часть модульного теста, которую и кодом-то нельзя было назвать. Затем он написал код, достаточный для того, чтобы тест компилировался. Затем он написал еще один тест и еще немного кода.

Такой рабочий цикл полностью противоречил всему моему опыту. Я привык писать код не менее часа, прежде чем пытаться откомпилировать или запустить его. Но Кент буквально выполнял свой код каждые 30 секунд или около того. Это было невероятно! Но самое интересное, что этот рабочий цикл был мне знаком! Я сталкивался с ним много лет назад, когда еще ребенком[19] программировал игры на интерпретируемых языках вроде Basic или Logo. В этих языках не было сборки как таковой: вы просто добавляли строку кода и запускали программу. Рабочий цикл проходил очень быстро. И по этой причине программирование на этих языках бывало очень производительным.

Но в настоящем программировании такой рабочий цикл казался абсурдным. В настоящем программировании вы тратили много времени на написание кода, а потом еще больше времени на то, чтобы заставить его компилироваться. И еще больше времени на отладку. Я ведь был программистом C++, черт побери! А в C++ процессы сборки и компоновки могли длиться минутами, а то и часами. Тридцатисекундные рабочие циклы казались немыслимыми. Тем не менее передо мной сидел Кент, который писал свою программу на Java с 30-секундными циклами – и без малейшего намека на то, что работа замедлится. И тогда до меня дошло, что эта простая методология позволяет программировать на настоящих языках с продолжительностью рабочего цикла, типичной для Logo! И я капитально «подсел» на TDD!

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Разработка формы

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

Разработка формы Создадим новый проект Delphi и разработаем интерфейс программы. Измените значение свойства Caption главной формы на Статистика. Разместите на форме компонент Label категории Standard, и присвойте его свойствам значения согласно табл. 3.1.Таблица 3.1. Свойства


Разработка формы

Из книги Человеческий фактор в программировании автора Константин Ларри Л

Разработка формы Создайте новый проект Delphi. Разместите на форме компонент Image категории Additional, который будет служить для отображения рисунка. Для того чтобы при любых размерах окна рисунок всегда заполнял всю форму, следует изменить значение свойства Align на alClient.Для


Разработка формы

Из книги Scrum и XP: заметки с передовой автора Книберг Хенрик

Разработка формы Создадим новый проект Delphi. Интерфейс программы сделаем похожим на интерфейс стандартного блокнота. Разместите на форме компонент Memo (многострочное текстовое поле) категории Standard. Для того чтобы при любых размерах окна этот компонент заполнял всю форму,


Разработка формы

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

Разработка формы Создадим новый проект Delphi. Мелькающее окно у нас будет необычным: оно будет без заголовка и не прямоугольным, а эллиптической формы. Измените свойства формы согласно табл. 8.1.Таблица 8.1. Свойства формы игры "Успей щелкнуть" Свойство Значение


Разработка формы

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

Разработка формы Создайте новый проект Delphi и измените свойства формы согласно табл. 10.1.Таблица 10.1. Свойства формы программы входа в систему Свойство Значение Пояснение Caption Очистить заголовок Align alCustom Запрет на перемещение окна ВorderStyle bsNone Убираем границу и


Разработка формы

Из книги Первые шаги с Windows 7. Руководство для начинающих автора Колисниченко Денис Н.

Разработка формы Создайте новый проект Delphi и присвойте свойству Caption формы значение Memory Info.Для вывода различной информации о памяти мы будем использовать компонент Label категории Standard. Разместите на форме один над другим семь таких компонентов, присвоив свойству Left


Разработка формы

Из книги C++ для начинающих автора Липпман Стенли

Разработка формы Создайте новый проект Delphi. Присвойте свойству Caption формы значение Настройка ОС Windows. Разместите на форме компонент GroupBox категории Standard и присвойте его свойству Caption значение Опции. На компоненте GroupBox разместите один над другим три компонента CheckBox


Разработка формы

Из книги Как тестируют в Google автора Уиттакер Джеймс

Разработка формы Создайте новый проект Delphi. Присвойте свойству Caption формы значение Tester, а свойству BorderStyle — bsNone. У верхнего края формы разместите компонент Label категории Standard, присвоив его свойству Caption значение Первый вопрос:.Ниже разместите компонент Memo категории Standard, с


I Групповая разработка

Из книги Все секреты Minecraft автора Миллер Меган

I Групповая разработка 1 Решения, решения Путей- есть два и больше. Путей всегда есть два и больше. Всю мою профессиональную жизнь этот простой принцип служил практическим ориентиром, который побуждал меня искать различные альтернативы при разработке программного


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

Из книги автора

Разработка через тестирование (TDD) Наконец-то! Разработка через тестирование для меня важнее, чем Scrum и XP вместе взятые. Можете отнять у меня дом, телевизор, собаку, но только попробуйте запретить использование TDD! Если вам не нравится TDD, тогда просто не подпускайте меня


Разработка макета

Из книги автора

Разработка макета При разработке макета необходимо ответить на вопрос: «Как вы доведете до совершенства то, что наметили во время предыдущего этапа?»Именно здесь ваш каркас начинает обрастать контентом. Создавая макет, вы ищете слова, которые привлекут внимание


8.2. Подключаться через телефон или через модем?

Из книги автора

8.2. Подключаться через телефон или через модем? Вы можете использовать для подключения к телефону как мобильный телефон, так и EDGE/3G-модем. Какой вариант выбрать? Тут нужно решить, что для вас важнее — экономия или удобство. Ведь сотовый телефон есть у каждого и можно


7.4.1. Передача данных через параметры и через глобальные объекты

Из книги автора

7.4.1. Передача данных через параметры и через глобальные объекты Различные функции программы могут общаться между собой с помощью двух механизмов. (Под словом “общаться” мы подразумеваем обмен данными.) В одном случае используются глобальные объекты, в другом –


Нагрузочное тестирование, продолжительное тестирование и тестирование стабильности

Из книги автора

Нагрузочное тестирование, продолжительное тестирование и тестирование стабильности Команда тестирования создает и выполняет продолжительные тесты на физическом оборудовании в лаборатории. Не забыть про внедрение неисправностей (fault


Разработка пещеры

Из книги автора

Разработка пещеры Если вы без проблем сражаетесь с мобами или играете в режиме Мирный (Peaceful), используйте в качестве шахт пещеры и овраги. Разрабатывая пещеры (это называется спелеологией), вы меньше копаете, так что дело идет гораздо быстрее! Спускайтесь по ветвям