Я настоятельно рекомендую добавить модульное тестирование в существующий проект, который находится в производстве. Он был запущен 18 месяцев назад, прежде чем я действительно смог увидеть какую-либо пользу от TDD (лицо ладони) , так что теперь это довольно большое решение с рядом проектов, и я Туманная идея, с чего начать добавление юнит-тестов. Что заставляет меня задуматься об этом, так это то, что иногда старая ошибка, кажется, всплывает наружу, или ошибка фиксируется как исправленная без действительно исправления. Модульное тестирование уменьшит или предотвратит возникновение этих проблем.
Прочитав похожих вопросов по SO, я увидел такие рекомендации, как запуск на трекере ошибок и написание тестового примера для каждой ошибки, чтобы предотвратить регрессию. Тем не менее, я обеспокоен тем, что в конечном итоге мне не хватит общей картины и я пропущу фундаментальные тесты, которые были бы включены, если бы я использовал TDD с самого начала.
Существуют ли какие-либо процессы / этапы, которые необходимо соблюдать, чтобы гарантировать, что существующие решения должным образом проверены модулем, а не просто загружены? Как я могу гарантировать, что тесты хорошего качества и не просто случай любого теста лучше, чем отсутствие тестов .
Так что я думаю, что я тоже спрашиваю;
- Стоит ли усилий для
существующее решение, которое находится в производстве?
- Было бы лучше проигнорировать тестирование
для этого проекта и добавить его в
возможное будущее переписать?
- Что будет более полезным; расходы
несколько недель, добавляя тесты или несколько
недель добавляется функциональность?
(Очевидно, что ответ на третий пункт полностью зависит от того, говорите ли вы с руководством или разработчиком)
Причина получения награды
Добавление щедрости, чтобы попытаться привлечь более широкий диапазон ответов, которые не только подтверждают мое существующее подозрение, что это хорошая вещь, но и некоторые веские причины против.
Я собираюсь позже написать этот вопрос с плюсами и минусами, чтобы попытаться показать руководству, что стоит потратить человеческие часы на перенос будущей разработки продукта на TDD. Я хочу подойти к этому вызову и развить свои рассуждения без моей предвзятой точки зрения.