Ночью не спалось что-то, в голову лезли мысли про тестирование.
Вот есть, например, код (допустим микросервис с http-эндпоинтами), и к нему написаны какие-то тесты. Уверен ли я, что тестов достаточно? Могу ли я серьёзно отрефакторить код и быть уверенным, что ничего не поломал?
Если честно, почти всегда паранойа заставляет быть готовым к любым неожиданностям. Тестов всегда маловато.
Но с другой стороны, покрывать всё тестами на 100.0% (например, анализируя через мутационное тестирование) - слишком дорого. Действительно, зачем покрывать ветки кода, где, например, в случае ошибки при отправке тела ответа сервера, в лог пишется какой-то текст. Ну пишется и пишется, что там тестировать. Особенно, если это некритичная часть системы.
В итоге подумалось, что неплохо было бы иметь такую штуку. Собирать каким-то магическим образом статистику с прода, какие участки кода чаще всего используются. И их потом покрывать тестами с особой тщательностью. Если частые участки покрыты, то можно рефакторить без проблем. Т.е. даже когда что-то пойдет не так - это пойдет не так в малоиспользуемом месте.
А еще лучше каждому эндпоинту назначить сумму в деньгах, а потом важность строчек кода анализировать в рублях в час. И можно сравнить затраты на программиста на написание тестов с затратами на потери при некорректной работе данной строки кода.
Еще лучше, чтобы такая система сразу автоматически выдавала на блюдечеке дорогие места, не покрытые тестами.
Таким образом, всякая херня не будет тестироватсья никогда - и слава богу. А сверхважные денежные куски кода будут покрыты тестами на 146%
Вот такие у меня эротические фантазии по ночам
Вот есть, например, код (допустим микросервис с http-эндпоинтами), и к нему написаны какие-то тесты. Уверен ли я, что тестов достаточно? Могу ли я серьёзно отрефакторить код и быть уверенным, что ничего не поломал?
Если честно, почти всегда паранойа заставляет быть готовым к любым неожиданностям. Тестов всегда маловато.
Но с другой стороны, покрывать всё тестами на 100.0% (например, анализируя через мутационное тестирование) - слишком дорого. Действительно, зачем покрывать ветки кода, где, например, в случае ошибки при отправке тела ответа сервера, в лог пишется какой-то текст. Ну пишется и пишется, что там тестировать. Особенно, если это некритичная часть системы.
В итоге подумалось, что неплохо было бы иметь такую штуку. Собирать каким-то магическим образом статистику с прода, какие участки кода чаще всего используются. И их потом покрывать тестами с особой тщательностью. Если частые участки покрыты, то можно рефакторить без проблем. Т.е. даже когда что-то пойдет не так - это пойдет не так в малоиспользуемом месте.
А еще лучше каждому эндпоинту назначить сумму в деньгах, а потом важность строчек кода анализировать в рублях в час. И можно сравнить затраты на программиста на написание тестов с затратами на потери при некорректной работе данной строки кода.
Еще лучше, чтобы такая система сразу автоматически выдавала на блюдечеке дорогие места, не покрытые тестами.
Таким образом, всякая херня не будет тестироватсья никогда - и слава богу. А сверхважные денежные куски кода будут покрыты тестами на 146%
Вот такие у меня эротические фантазии по ночам