Test Driven Development

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