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