которая на большинстве проектов оказывается "неправильно использованной".
Не знаю про какое большинство проектов вы придумали. На ВСЕХ сколь-нибудь значимых проектах тесты есть, и они хорошие. Без автоматических тестов на код невозможно поддерживать проект где больше одного разработчика сколь-нибудь долгое время. Если в проекте покрыто 20% кода тестами, а на 80 забили - он станет помойкой очень быстро и его выкинут и начнут все писать заново.
инвестирование усилий в интеграционные тесты даёт больше измеряемой выгоды, чем юнит-тестирование самого простого кода.
Про выбор между интеграционными тестами и юнит действительно можно долго говорить. Тем более что грань там довольно размыта на самом деле.
Про удаление юнит тестов не очень понял. Зачем? Они бесплатно гоняются. Тем более если никто не собирается менять ничего, их и поддержитвать не надо. А если вдруг соберется менять - эти тесты будут бесценными.
Как и про уровни тестирования. Тесты не проверяют отсутствие багов же. Тесты проверяют отсутствие регрессии.
тестировщик. уже пишет тесты.
Тестировщик пишет юнит тесты? Что? Это правда такое где-то есть?
По поводу девопсов конечно можно спорить. Но сеньор не понимающий о том, где и как выполняется его код, как происходит вообще процесс запуска тестов, как разворачивается приложение не может писать нормальное приложение и видеть проблему в целом.
Как такой человек будет принимать какие-то решения, как мелкие, которые возникают каждый день, так и крупные, архитектурные? Он не знает на какой машине и где работает его приложение, в контейнере оно, или на железе. Он не знает как оно деплоится. Как он будет писать какие-то вещи связанные с пользовательскими сессиями? Миграции данных? Невозможно написать миграцию пользовательских данных, не зная процесс деплоймента.
Это очень умный способ ведения спора. Приписать собеседнику идиотскую мысль, а потом ее опровергнуть.
К хирургу который только проводит операцию, и ни диагноз и показания к операции, ни дальнейшее состояние пациента его не волнуют, вы вряд ли хотели бы попасть на стол.
Считаете unit тесты как серебряной пулей программирования?
Нет конечно, зачем вы приписываете мне то, что я не говорил? Юнит тесты не серебряная пуля.
А человек заявляющий, что юнит тесты как-то связаны с количеством тестировщиков, или заявляющий что они тормозят разработку - просто некомпетентен.
GetById(id)?
Вы не расписали, что этот метод делает и откуда. Предположу, что он вытаскивает кортеж из какого-то хранилища по ключу. Конечно же, такой метод должен быть покрыт юнит тестами.
Там проблема в том, что Петя как программист малокомпетентен, зато обладает большим самомнением.
"Мы уже два года пытаемся разобрать вековой монолит на микросервисы, но заказчик почти не видит в этом профита, — хотя после перехода на микросервисы в самых критичных местах стало раз в 100 меньше отказов."
Как связаны микросервисы и количество отказов? Я тоже не вижу пока что профита.
Но, увы, заморозки по разработке в монолите нет
Конечно нет. Людям надо работать и развивать продукт, а не ждать пока некомпетентная команда перепишет все на микросервисы, не понимая зачем они вообще нужны.
"У нас в два раза меньше тестировщиков, чем тестовых серверов. Поэтому 2/3 времени при разработке чего-то нового уходит на полное покрытие юнит-тестами."
Ох да, правда? Каждому тестировщику обязательно нужен свой сервер? Вторая часть фразы вообще никак не связана с первой. Какое отношение юнит тесты имеют к наличию или отсутствию тестировщиков или тестовых серверов?
Нет, это неплохо, многие бы о таком мечтали, — но это невероятно сильно тормозит работу.
"Юнит тесты сильно тормозят процесс разработки" (c) Сеньор Петя.
Без комментариев.
Девопсов как таковых у нас нету, поэтому будьте добры знать Kubernetes\докер\CI\CD\bash\powershell
Ну да. Сениор разработчик обязан знать среду где работает его код и отвечать за его сборку, деплой и работу. Подход "я написал невесть что, перекинул через забор девопсам, плевать как оно там собирается и деплоится" не работает в приличных местах.
Комментарии
Не знаю про какое большинство проектов вы придумали. На ВСЕХ сколь-нибудь значимых проектах тесты есть, и они хорошие. Без автоматических тестов на код невозможно поддерживать проект где больше одного разработчика сколь-нибудь долгое время. Если в проекте покрыто 20% кода тестами, а на 80 забили - он станет помойкой очень быстро и его выкинут и начнут все писать заново.
Про выбор между интеграционными тестами и юнит действительно можно долго говорить. Тем более что грань там довольно размыта на самом деле.
Про удаление юнит тестов не очень понял. Зачем? Они бесплатно гоняются. Тем более если никто не собирается менять ничего, их и поддержитвать не надо. А если вдруг соберется менять - эти тесты будут бесценными.
Как и про уровни тестирования. Тесты не проверяют отсутствие багов же. Тесты проверяют отсутствие регрессии.
Вы со своими голосами в голове разговариваете? От того что вы мешаете все умные слова в одну кучу, ваши аргументы умнее не выглядят
По поводу девопсов конечно можно спорить. Но сеньор не понимающий о том, где и как выполняется его код, как происходит вообще процесс запуска тестов, как разворачивается приложение не может писать нормальное приложение и видеть проблему в целом.
Как такой человек будет принимать какие-то решения, как мелкие, которые возникают каждый день, так и крупные, архитектурные? Он не знает на какой машине и где работает его приложение, в контейнере оно, или на железе. Он не знает как оно деплоится. Как он будет писать какие-то вещи связанные с пользовательскими сессиями? Миграции данных? Невозможно написать миграцию пользовательских данных, не зная процесс деплоймента.
Это очень умный способ ведения спора. Приписать собеседнику идиотскую мысль, а потом ее опровергнуть.
К хирургу который только проводит операцию, и ни диагноз и показания к операции, ни дальнейшее состояние пациента его не волнуют, вы вряд ли хотели бы попасть на стол.
Нет конечно, зачем вы приписываете мне то, что я не говорил? Юнит тесты не серебряная пуля.
А человек заявляющий, что юнит тесты как-то связаны с количеством тестировщиков, или заявляющий что они тормозят разработку - просто некомпетентен.
Вы не расписали, что этот метод делает и откуда. Предположу, что он вытаскивает кортеж из какого-то хранилища по ключу. Конечно же, такой метод должен быть покрыт юнит тестами.
Там проблема в том, что Петя как программист малокомпетентен, зато обладает большим самомнением.
Как связаны микросервисы и количество отказов? Я тоже не вижу пока что профита.
Конечно нет. Людям надо работать и развивать продукт, а не ждать пока некомпетентная команда перепишет все на микросервисы, не понимая зачем они вообще нужны.
Ох да, правда? Каждому тестировщику обязательно нужен свой сервер? Вторая часть фразы вообще никак не связана с первой. Какое отношение юнит тесты имеют к наличию или отсутствию тестировщиков или тестовых серверов?
"Юнит тесты сильно тормозят процесс разработки" (c) Сеньор Петя.
Без комментариев.
Ну да. Сениор разработчик обязан знать среду где работает его код и отвечать за его сборку, деплой и работу. Подход "я написал невесть что, перекинул через забор девопсам, плевать как оно там собирается и деплоится" не работает в приличных местах.