Test Driven Development

  • Заставляет ваш код быть более модульным.
  • Улучшает архитектуру.
  • Упрощает поддержку кода и рефакторинг.
  • Помогает предотвратить дефекты - ну, по крайней мере, это помогает вам найти проблемы с дизайном или требованиями в самом начале.
  • Помогает программистам действительно понимать их код.
  • Создает набор автоматических регрессионных тестов, в основном бесплатно.
  • Это помогает прояснить требования, потому что вам нужно конкретно выяснить, какие входные данные вам нужно предоставить, и какие результаты вы ожидаете.
  • Модульные тесты особенно полезны в качестве проверки системы безопасности, когда код необходимо изменить, чтобы либо добавить новые функции, либо исправить существующую ошибку. Так как на техническое обслуживание приходится от 60 до 90% жизненного цикла программного обеспечения, трудно переоценить, как время, затраченное на создание приличного набора модульных тестов, может снова и снова оплачиваться в течение всего жизненного цикла проекта.
  • «Глупые» ошибки будут распознаны почти сразу.
  • TDD не позволяет механически продемонстрировать адекватность разработанного кода в области безопасности данных и взаимодействия между процессами.
  • Разработку через тестирование сложно применять в тех случаях, когда для тестирования необходимо прохождение функциональных тестов. Примерами может быть: разработка интерфейсов пользователя, программ, работающих с базами данных, а также того, что зависит от специфической конфигурации сети.
  • Требуется больше времени на разработку и поддержку.
  • Если разработчик неправильно истолковал требования к приложению, и тест, и тестируемый модуль будут содержать ошибку.
  • Большое количество используемых тестов может создать ложное ощущение надежности, приводящее к меньшему количеству действий по контролю качества.
  • Тесты сами по себе являются источником накладных расходов.
  • Исходные тесты становятся всё более ценными с течением времени. Если неудачные архитектура, дизайн или стратегия тестирования приводят к большому количеству непройденных тестов, важно их все исправить в индивидуальном порядке. Простое удаление, отключение или поспешное изменение их может привести к необнаруживаемым пробелам в покрытии тестами.

TDD

By Sania Sutula

TDD

  • 373