Testing
January 15

Какова финансовая стоимость тестирования?

Стоит ли его изучать?

Освоение нового навыка или даже совершенствование уже имеющегося требует вложения времени. А если приобретается книга или курс, то это ещё и денежные вложения.

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

Так что давайте рассмотрим этот вопрос в контексте тестирования. Какова финансовая стоимость тестирования, если она вообще есть?

Ответ на этот вопрос в определённой степени зависит от контекста. Например, работаете ли вы как сотрудник в компании или являетесь фрилансером, или консультантом? Я рассмотрю оба сценария.

Самую большую финансовую ценность я вижу не в самом процессе написания тестов, а в том, что позволяет тестирование:

  1. Быстрое внедрение - После освоения тестирования и приобретения навыков некоторые задачи разработки будут занимать меньше времени. Подумайте о большом обновлении фреймворка или пакета, когда непонятно, что именно сломалось. Хороший набор тестов поможет обнаружить проблемы гораздо быстрее, чем ручное повторное тестирование всего приложения.
  2. Меньше багов - Когда выпускается новая функция, необходимо, чтобы она работала так, как ожидается. Если в сложной функции есть множество различных вещей, которые следует проверить, легко что-то упустить. Тесты помогают логически продумать как счастливые пути, так и все возможные ошибки.
  3. Меньше регрессий - Это частный случай «меньшего количества ошибок». Допустим, функция работала безупречно в первый день, но год спустя после перехода на новую версию PHP, изменения схемы базы данных или рефакторинга какого-то общего класса появляется баг в том, что уже работает. Это очень неприятно, но хороший набор тестов помогает это предотвратить.

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

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

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

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

Для меня тестирование не является отдельной задачей, выполняемой отдельно от разработки. Это неотъемлемая часть моего процесса разработки программного обеспечения, как и контроль версий. Как я не стал бы писать код без коммита в системе контроля версий, так и я не стал бы писать код без тестов.

Если вы давно занимаетесь разработкой, но ещё не освоили тестирование, думаю, в это стоит вложиться. Я бы даже сказал, что это самый важный навык, который необходимо освоить, чтобы улучшить карьеру разработчика.

https://t.me/masteringlaravel/101