Статьи

Я пробовал тестовую разработку в течение месяца и выжил

То, что не убивает, делает тебя сильнее, и твои испытания проходят.

Когда я впервые услышал о разработке через тестирование (TDD), я сразу же списал ее как метод, который замедлит меня. Как же я должен точно знать, как будет выглядеть мой код, если я часто выполняю рефакторинг во время кодирования? Кроме того, я много лет кодирую и понимаю, как писать код, который «легко» тестируется. Для меня имело смысл игнорировать эту безумную идею.

Тогда я понял, что TDD не означает, что я думал, что это значит. Когда мне впервые объяснили TDD много лет назад, мне сказали: «Сначала ты пишешь все свои юнит-тесты», и это то, что застряло у меня. Даже сейчас, когда я спрашиваю разработчиков, что они понимают о TDD, это ответ, который я получаю.

Так что же такое TDD?

Разработка через тестирование — это процесс итеративного программирования, при котором вы пишете одиночный модульный тест, а затем пишете код, если необходимо, чтобы выполнить тест. Когда тест пройден, вы переделываете код, включая тесты, перед написанием следующего теста.

Доступны более полные определения, но я обнаружил, что этого определения достаточно, чтобы начать разговор, когда разработчики впервые сталкиваются с этим принципом.

Вам также могут понравиться:  4 совета по внедрению тестовой разработки (TDD) 

Как практиковать TDD

Что убедило меня попробовать TDD, так это чтение  книги «Чистый кодер: кодекс поведения для профессиональных программистов  » Роберта К. Мартина (дядя Боб) . Книга посвящает главу TDD и другую главу о практике TDD, где упоминается код игры для игры в боулинг, которую дядя Боб использует для демонстрации TDD. Нахождение этой демонстрации в Интернете и следование за ней было введением в TDD, которое я пропустил. Попробуйте сами, а затем попробуйте применить рабочий процесс к небольшой проблеме с помощью известного решения.

Преимущества TDD

Это то, что я обнаружил за месяц практики TDD в разных контекстах.

Это странно естественно

Так как я начал практиковать написание юнит-тестов в начале своей карьеры, всякий раз, когда я обнаруживал ошибку, у которой не было теста, я создавал новый тест, чтобы сначала воспроизвести ошибку, а только потом менять код программы, пока у меня не появится зеленая сборка. , Оказывается, я делал TDD для ошибок все время.

Это может быть интересным

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

Это хороший способ подобрать старый набор инструментов

Прошло много времени с тех пор, как я написал Java, когда я начал снова, первым делом я создал код-ката, чтобы попробовать TDD. Это заставило меня немедленно рассмотреть инструменты, необходимые для тестирования, а не застрять в конце. Количество раз, когда я говорил менеджеру, что все идет по графику, и только после того, как инструменты модульного тестирования сорвут его с работы в конце долгого дня, когда давление было слишком велико, вероятно, будет выше, чем я хотел бы признать.

Это отличный способ выучить новый язык

«Hello world» — это основной элемент запуска нового языка программирования, но, возможно, он не добавляет достаточной ценности для разработчиков, которые много лет занимались программированием. Рассмотрим эту программу на Python.


питон