LINUX.ORG.RU
ФорумTalks

Культура разработки. Написание тестов на каждый пук своего кода, фаззинг и т.п. Почему это НЕНУЖНО.

 


0

3

Некоторые разводят срачи, мол как можно в 2025 писать без полного покрытия тестами, фаззинга и не на Rust. Стоит бурлёж до неба. Факт бурлежа указывает на неоднозначность вопросика и на отсутствие чётких формулировок у каждой из сторон, скорее всего у той, которая предлагает забить на тесты хрен.

Пришла в голову чёткая понятная формулировка НЕНУЖНОСТИ. Потому, что это как предварительная оптимизация. Аналогия абсолютно точна! Утверждать, что всё должно быть покрыто тестами и фаззингом и быть написано на rust - то же самое, что утверждать, что всё должно быть написано крайне оптимально сразу, ведь ты не знаешь решат ли твою функцию повызвать 1 млн раз в наносекунду и дадут ли потом время переделать!

И предварительно оптимизировать можно, и писать на всё тесты, но у этого есть ЦЕНА. В среднем платить её никому не усралось, ценнее выкатить фичу. Упадёт на проде - тогда и починим (убьют - тогда и приходите). Бизнесу дешевле полдня полежать, чем инвестировать в сотни кнопкодаво-часов, которые будут полгода всё обмазывать своими автоматическими технологиями доказательсва корректности всех веток кода на всех данных, а потом потерять бизнес вообще по другой причине.

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

Короче, краткий ответ: НЕНУЖНО, потому что не бесплатно.



Последнее исправление: lesopilorama (всего исправлений: 5)
Ответ на: комментарий от Chiffchaff

И вот когда покрытие тестами близко к 100%, комфорт от работы намного выше, потому что уже знаешь из опыта, что если тесты прошли успешно, то после выкатки на прод проблем скорее всего не будет.

Да. А потом натравливаешь какую-нибудь PVS-Studio, и она так ругается, так ругается… ;)

tiinn ★★★★★
()
Ответ на: комментарий от Stanson

который полностью покрывает весь диапазо возможных аргументов.

Полное покрытие, упоминавшееся в треде, это полное покрытие кода тестами, а не то, что вы с @firkax подумали) Т.е. определяется, какие строчки кода выполняются при выполнении тестов (автоматом, при помощи дебаггера), потом это делится на общее количество строк кода, и получают допустим покрытие в 80%. И пока вы не начали опять что-то ассумить, 100% покрытие не гарантирует 100% корректности, но когда у тебя покрытие 15%, или растет или падает, какие-то выводы все же можно сделать)

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от goingUp

Полное покрытие, упоминавшееся в треде, это полное покрытие кода тестами

Бгг. :) Похер что там и насколько правильно считается, зато «полное покрытие кода тестами».

Как показывает практика, внедрение всевозможейших «панацей» от всяких растов до вот этих «покрытий тестами» неизбежно приводит к падению качества кода.

И аргументы апологеты этих панацей приводят совершенно идентичные:

100% покрытие не гарантирует 100% корректности, но когда у тебя покрытие 15%…

А потом у них синусы принимают значения вплоть до 1e38, или валидность FQDN определяется по наличию хотя бы одной точки в строке. Зато «безопасно» и/или «покрыто». А то что в итоге получается говно - так это не они, у них всё «безопасно» и «покрыто» же, а «насралося» оно само, ага.

Stanson ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)