Легко представить, что написание тестов занимает слишком много времени, в отличие от того, чтобы сразу перейти к реализации.

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

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

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

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

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

Вы должны попытаться найти несколько профессиональных принципов, которых вы сможете придерживаться, несмотря ни на что. Вы должны сделать все возможное, чтобы убедить своего менеджера в важности передового опыта и в том, как он окупается в долгосрочной перспективе. А если вашего менеджера нельзя убедить, вы можете подумать о смене работы.

Отговорка №2: боязнь писать тесты

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

Многие уверены, что у них уже достаточно опыта и что они способны охватить все возможные сценарии без особых усилий.

Внутри они могут испытывать чувство незащищенности. А подвергание их кода тестам может привести к обострению этой незащищенности.

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

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

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

Найдите время для тестирования

Тесты никогда не смогут выявить 100% ошибок, но они будут способствовать безопасности, стабильности и правильности вашего кода. Найдите для них время.

Спасибо за прочтение. Если вы нашли эту статью полезной, нажмите 💚 ниже, чтобы другие люди тоже могли ее услышать и извлечь из нее пользу.

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

В настоящее время я ищу удаленную работу по Ruby on Rails. Пожалуйста, свяжитесь со мной, чтобы узнать о новых возможностях.