Поддерживает вас за то, что вы научились чему-то на этом опыте. Я уверен ты будешь.
Первое, что вы должны усвоить, это то, что необходимость модульного тестирования не имеет ничего общего с тем, насколько вы опытны . Лучшим разработчиком станет также один из лучших юнит-тестеров:
Билл Веннерс: Вы говорите в своей книге «Рефакторинг»: «Если вы хотите провести рефакторинг, обязательным условием является проведение серьезных тестов». Означает ли это, что если у вас нет тестов, вы не должны проводить рефакторинг?
Мартин Фаулер: Вы должны думать об этом как о том, чтобы идти по канату без сети. Если вы хорошо ходите по канату, и он не так высок, тогда вы можете попробовать это. Но если вы никогда раньше не ходили по канату, и это из-за Ниагарского водопада, вам, вероятно, нужна хорошая сеть.
С http://www.artima.com/intv/refactorP.html
Я писал PHP без юнит-тестирования. Затем, после нескольких лет практики модульного тестирования в Java, я обнаружил, что не могу работать над чем-то намного более сложным, чем отдельные страницы в PHP, без модульного тестирования. Причина? Производительность . Без модульного тестирования я не смог бы с уверенностью провести рефакторинг - это означало, что либо А) мне пришлось бы гораздо больше разрушать и работать над всем с самого начала, либо Б) , мне приходилось иметь дело с уродливым, унаследованным кодом.
Когда вы делаете ставку, нужно ли учитывать время для тестирования? Да . Кажется ли интуитивно понятным, что это займет больше времени? Да, опять . Вы, вероятно, как и некоторые другие приблизительные оценки, должны оценить на 50-100% больше, чем без модульных тестов.
Однако!...
- Вы будете ловить и устранять пробелы спецификации ранее
- Это означает, что вы будете разрабатывать более чистые и надежные спецификации
- Вы сможете быстро и уверенно реагировать на изменения в спецификациях.
- У вас будет меньше ошибок
- Ваши ошибки будут пойманы раньше и их легче будет исправить
И в результате ваши оценки будут более точными . Если вы будете взимать почасовую оплату, вы будете больше удивлять своих клиентов и сможете повышать ставки. Если вы будете платить фиксированную ставку, вы будете зарабатывать больше денег в час.
Без тестирования, ваши оценки, скорее всего, сумасшедшие. Ошибки, заказы на изменения и переопределения - все это ужасно для точной оценки. Тестирование является ключом к минимизации воздействия всех трех!