QR code

Write Unit Tests, Don't Waste Our Money!

  • Translated by to

Автоматизированные тесты помогают нам писать код быстрее. Юнит-тесты сразу сообщают нам, когда мы что-то сломали. Интеграционные тесты успокаивают нас, уменьшая страх перед отправкой ошибки пользователю. Но кто такие “мы”? Программисты. А как автоматизированные тесты помогают нашим работодателям? Они защищают их инвестиции.

Каждое изменение, которое мы вносим в кодовую базу, стоит деньги нашему работодателю. Неважно, платят ли они нам ежемесячно или за строку кода, суть одна: это код, который попадает в репозиторий и в конечном итоге выпускается для конечного пользователя.

Именно на это бизнес делает ставку - новые функции или исправления ошибок. Именно тот код, который написан и выпущен, имеет для них значение.

Даже когда они говорят, что инвестируют в людей, на самом деле они хотят получить код. Люди - это всего лишь промежуточный продукт. Основным активом является кодовая база.

Они хотят защитить этот актив.

Потеря инвестиций может быть в том, что сто строк кода, написанных сегодня, перестанут работать завтра. Подумайте так: мы ожидаем, что автомобиль будет работать после того, как мы заплатили в автосервисе за его починку. Мы не против заплатить снова, если что-то сломается, но не если это точно та же деталь, которую они чинили вчера. Мы ожидаем, что отремонтированная деталь будет работать должным образом во время движения. Мы хотим гарантию на то, что уже было починено.

Точно так же наши работодатели ожидают, что наш код будет работать, когда мы его загрузим и получим за это деньги. Они хотят гарантии, что код не сломается снова после того, как он был исправлен. Автоматизированные тесты могут предложить эту гарантию.

Продолжая метафору: “вождение” кодовой базы означает активное изменение ее частей - рефакторинг или расширение. Чем более агрессивно мы это делаем, тем выше риск сломать что-то. Части кода, не покрытые тестами, первыми ломаются.

Покрытие тестами гарантирует, что то, что работало раньше - и за что уже заплатили, - продолжит работать даже под напряжением рефакторинга.

Таким образом, любой вклад в кодовую базу без поддерживающего теста является трата денег работодателя.

Translated by ChatGPT gpt-3.5-turbo/42 on 2025-06-08 at 08:26

sixnines availability badge  GitHub stars