LINUX.ORG.RU
ФорумTalks

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

 


0

2

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

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

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

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

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



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

А я не делаю никаких «уборок в комнате». Просто если видишь что где-то лежит мусор надо его отнести в мусорку, а не ждать каких-то уборок чтобы это сделать.

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

От уверенности что в доме нет мусора - прекрасно вылечивает белый глянец ;)

windows10 ★★★★★
()

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

goingUp ★★★★★
()

Спасибо, что рассказал. Кстати, ещё вода мокрая, а если ударить по пальцу молотком, то будет больно.

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

А откуда ты узнаешь, что оно сломанное? После того, как сердитый клиент нажалуется менеджменту?)

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

Но ведь ты реально не понимаешь зачем это делается.

  1. Ого, оказывается я не знаю зачем писать тесты, нифига какой я тупой!

  2. Так и не в этом вопрос.

lesopilorama
() автор топика
Ответ на: комментарий от cobold

Расскажи чувакам, которым виртуалки из облака удалили без возможности восстановления ))

Полностью их поддерживаю. Данных в интернете и так дофига, пора бы и поудалять что-нибудь. А людишки ещё насрут.

lesopilorama
() автор топика
Ответ на: комментарий от Lordwind

Кек, ты даже не понял о чем речь, IBM только исследование делал, Integrating Software Assurance into the Software Development Life Cycle (SDLC). Спорить с апологетами «херак-херак и в продакшен» не собираюсь. Это уровень говностартапов и монополистов.

Зощитываем те слив тогда.

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

писания тестов без необходимости

Просто у него был опыт написания кода не в идеальных условиях.

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

для функции умножения 8-битных чисел, то тебе надо написать 65536 тестов

Это фигня. Я вот с C# на Java вручную Decimal портировал. У мелкомягких тесты на этот класс очень слабенькие. Так я думал целый кластер поднимать, чтобы протестить все арифметические операции на всех разрядах числа.

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

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

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

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

Бизнес потеряет деньги, исковеркает людям судьбы, а мелкомягкие по лицензии не несут ответственности.

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

Единственные вещи, которые надо тестировать в гриву и хвост:

  1. банки и платёжные системы
  2. движки субд
  3. авионика
  4. радары и ракеты
  5. всё шифрование
  6. ядро OS
  7. алгоритмы консенсусов - все реализации paxos, raft, TRR
  8. прошивки станков и лифтов и кардиостимуляторов
  9. фиреволлы, роутеры (магистральные)
  10. коНпеляторы

Остальное - делай жопой и кати в прод, господь рассортирует!

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

Тестирование нужно тем, кто не умеет писать сразу правильно.

Psilocybe ★★★★★
()

Упадёт на проде - тогда и починим (убьют - тогда и приходите). Бизнесу дешевле полдня полежать

Прикинь, сколько стоит это лежание, если в организации работает 10к сотрудников. Просто в плане того, что все сотрудники получили зарплату за эти пол-дня простоя, но де-факто нормально работать не могли.

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

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

как экономят - на ваших зарплатах, времени на тесты и на зарплаты технических писателей и архитекторов - их бабло - имеют полное право

Не, ну если бизнес сознательно принимает риски вида «пол-дня полежит» и «будут взломы», то разговор совсем другой, конечно.

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