Смотрите какой лол - сразу две статьи в которых говорят что тесты не нужныhttps://www.reddit.com/r/programming/comments/4lovcv/testing_considered_evil/https://www.reddit.com/r/programming/comments/4lqni5/why_most_unit_testing_is_waste/И в каментах большинство в целом согласно. И даже не видно тестоманек у которых> все просто охуенно, а вы тупые неосиляторыЧто это? Наконец происходит переворот в умах, сдвиги тектонических плит?
> https://www.reddit.com/r/programming/comments/4lqni5/why_most_unit_testing_is_waste/Это статья про юнит-тесты. Ты слышал, что кроме юнит-тестов бывают другие виды тестов?Я, например, юнит-тестов почти не пишу, но это не мешает мне покрывать тестами всё, что я делаю.> https://www.reddit.com/r/programming/comments/4lovcv/testing_considered_evil/Около 0 апвотов на реддите и мало комментариев. Не показатель. Попробуй вбросить на Hacker News - там тебе всё пояснят (или промолчат в знак уважения к умирающему Хинченсу).
Обе статьи, кстати, многолетней давности. Для слоупоков завезли на бис.
>>758129 (OP)Стоит помнить, что юнит-тесты придумали клованы использующие динамическую типизацию. И они же больше всех кукарекают про их священные тесты, чего только стоит их религия где тесты надо писать ДО написания программы. Впрочем, неудивительно, ведь без 10000000 тестов их говно будет вылетать через строку
>>758141> Стоит помнить, что юнит-тесты придумали клованы использующие динамическую типизацию.Вообще-то вся история про юнит-тесты и прочий аджайл растёт из джавы. В питоне даже стандартная библиотека для тестирования склонирована из джава-мирка с точностью до имён методов.
У меня вопрос к тем, кто не использует тесты.Как вы узнаёте, что написанный вами код в принципе работает?Вот вы написали новый метод к вашему HTTP API. Вы что, запускаете сервер и долбитесь в него каким-нибудь curl'ом? Написали двачеватель капчи - скармливаете ему капчи по одной и глазами проверяете результат?Вот, серьёзно?
>>758129 (OP)Переворот в умах больше отражает статья: http://shaffner.us/cs/papers/tarpit.pdfИ да, в Clojure недавно добавил test.spec, в котором из спецификаций автоматически могут создаваться генеративные тесты.
>>758141Ни одна система типов не может доказать всех свойств, которые проверяют простейшие тесты.
>>758318А схуяли ему не работать?И то, что ты описал, это интеграционный тест, а не юнит.
>>758318Интерактивная разработка: поменял что-то - потрогал, ещё поменял - ещё потрогал.Ах да, есть же язычки которые КОНПЕЛИРУЮТСЯ по нескольку минут... Так вот, они для петухов конченых.
>>758365Если еще добавить вагранты/докеры и hot reload, то проблем не возникает вообще.
>>758361> А схуяли ему не работать?Мистер безупречность в треде, все в виртуальную машину.> И то, что ты описал, это интеграционный тест, а не юнит.В том и дело, что личности вроде ОПа, похоже, не видят разницы. Когда им говорят "подумайте, нужны ли вам юнит-тесты" они радостно визжат "ураа, тесты отменили, теперь я могу катать говнокод 8 часов в день".>>758365> Интерактивная разработка: поменял что-то - потрогал, ещё поменял - ещё потрогал.То есть ты не только руками долбишься в свою программу, ты ещё и делаешь это каждую минуту?
>>758373>им говорят "подумайте, нужны ли вам юнит-тесты"Смотрите как зажатая в угол тестоманька резко меняет риторику. Куда же так бесследно пропали мантры:>тесты должны писаться вперед>каждая функциональность должна быть покрыта>красный-зеленый циклА теперь вон оно как - "подумайте, нужны ли вам юнит-тесты".Теперь еще осталось солидманек на их законное место у параши поставить.
>>758425> не понимать разницы между юнит-тестами и другими тестами даже после того, как её пять раз упомянули в тредеЭто уже какой-то новый уровень необучаемости.
>>758318Как вы узнаёте, что написанный вами код в принципе работает?Конпелирую в голове. Если есть возиожность сразу проверяю работоспособность.Если долго пишешешь вырабатывается норм чутье и просто помедитировав на код можно сразу заметить все проёбы в синтаксисе или логике.
>>758445> помедитировав на кодДамы и господа, уровень индустрии на 2016 год.
>>758440Эта "разница" - искусственная. Где интересно по-вашему кончается юнит и начинается интеграция? Метод? Класс? Библиотека?
>>758449Не, я не в индустрии. Так што будь спокоен.
>>758449няшная, хотел бы такую индустрию
>>758129 (OP)Да, от тестов надо отказываться, также, как и от байтоебских языков в целом. Программист обязан предоставить формальное ДОКАЗАТЕЛЬСТВО алгоритма, а не сделать тест для отлова своих байтоебских ошибок.ТОЛЬКО ЯЗЫКИ С ЗАВИСИМЫМИ ТИПАМИ@ТОЛЬКО ДОКАЗАТЕЛЬСТВА
>>758459Ты хоть сам читал статью Коплина, на которую ссылаешься?> Turn unit tests into assertions [...] that’s one half of a unit test. The other half is the driver that executes the code: count on your stress tests, integration tests, and system tests to do that.Точная граница между юнит- и интеграционными тестами ебёт только анальных тимлидов. Важно, чтобы ты понимал, что тебе даёт тот или иной тест, а не писал их для галочки.
ПАЦАНЫ, Я СЕГОДНЯ ШЁЛ КОРОЧЕ ПО РЫНКУ И УВИДЕЛ ДЖАВА-МАКАКУ В МАЙКЕ "ЯЛЮБЛЮ ЮНИТ ТЕСТЫ", НУ Я ПОДСКОЧИЛ И РЕЗКО ПЕРЕЕБАЛ ЕМУ В ЩЩИ С ВЕРТУШКИ И ПОЯСНИЛ ЕГО КРИКОМ "НЕ ЛЮБЛЮ ОРАКЛ", ПОТОМУ ЧТО Я УГОРЕЛ ПО БЕНДЖАМИНУ ПИРСУ, ПАЦАНЫ ДУХ СТАРОЙ ШКОЛЫ ЖИВЁТ ТОЛЬКО В УНИВЕРСИТЕТЕ ПЕНСИЛЬВАНИИ, ГДЕ ЕБАШАТСЯ ПО ХАРДКОРУ, ГДЕ ПАЦАНЫ ЖИВУТ ЭНЕРГИЕЙ, МОЛОДОСТЬЮ И ЕБУТ СИСТЕМУ В РОТ! ТОЛЬКО SOFTWARE FOUNDATIONS, ТОЛЬКО ХАРДКОР!!! BASIC CATEGORY THEORY FOR COMPUTER SCIENTISTS УЛЬТРАХАРДКОР!!! пацаны ебашьте крестоблядков, джава-макак, растопидарасню, угорайте на ncatlab.org, любите свою Семью, пацанов и Сцену! ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В ЛИЦО! CIS670: Advanced Martial Arts in Coq!
>>758475>Важно, чтобы ты понимал, что тебе даёт тот или иной тест, а не писал их для галочки.>Хорошо поступать хорошо. По уму, по совести.Ну тут я не буду спорить. Главное для меня если хотя бы одна тестоманька на минутку призадумается и вынет изо рта хуец дядюшки Боба - то значит тред был создан не зря.
>>758497> тесты не нужны> ко-ко-ко по уму по совестиОчередной неосилятор лопнул, найс.Следующий твой тред будет "статический анализ не нужен" или "фаззинг не нужен", но ничего, это всё пройдёт.
>>758505Только после волны тредов о том что "все кто не используют статический анализ - быдлокодеры" или "пишем HelloWorld с помощью AFL".
>>758467This. Поэтому я никогда не пишу никакие тесты и не использую ничего, кроме C++.
Вы не понимаете суть юнит-тестов. Есть огромная куча бизнес-лапши. Кода очень много и он весь очень простой. Код постоянно меняется в связи с меняющимися требованиями извне. Смысл тестов в том, что после измений покрытого тестами кода есть уверенность, что основные юз кейсы не перестали работать. Этого достаточно, абсолютная корректность ненужна и недостижима.Доказательства нужны, когда нельзя протестить, например, когда пишешь что-то многопоточное.Еще доказательства нужны людям, которые придумывают какие-то новые алгоритмы, но это уже наука, а юнит-тесты к индустрии относятся.
Пишу кое-что многопоточное, тестами покрыл почти весь код, перед каждым релизом гоняю все тесты на всех архитектурах, без исключений.Иногда нахожу баги, просто медитируя над кодом, а то и без него.В таких случаях приходится переписывать старые и добавлять новые тесты.Необходимость постоянного переписывания тестов - главный тормоз моего проекта.школьник-кун
>>761217> юнит-тестов> основные юз кейсы не перестали работатьЕщё один.
>>761255> нахожу баги> приходится переписывать старые [...] тестыЗачем?Если тебе постоянно приходится переписывать тесты, возможно ты тестируешь на слишком низком уровне, то есть опять же делаешь излишний упор на юнит-тесты.
>>758129 (OP)Все нормальные пацаны итак понимают, что тесты ради тестов не нужны.Например, если ты пишешь функцию, которая реализует какой-то алгоритм или его часть, которую ты сам не до конца понимаешь - юнит тесты сэкономят тебе кучу времени.
>>761256По существу-то есть что сказать или только вскукареки? В ссылках в оп-посте ниче не написано по поводу отлавливания регрессий, а именно для этого юнит-тесты и нужны. То, что с помощью них нельзя убедиться в корректности, и так понятно.
>>761311>>758440
>>761338Я тебе именно про юнит-тесты говорю. Я считаю, что если у тебя есть метод в одну строчку, который содержит тупо логику и не делает никаких обращений никуда, его все равно надо тестить.
>>761404А. Ну и сколько % времени ты на них тратишь? Особенно когда метод делает много обращений куда-нибудь, да ещё и> постоянно меняется в связи с меняющимися требованиями извне.
>>758318>Как вы узнаёте, что написанный вами код в принципе работает?Быдлокодер детектед. Знаю таких - даешь им задание, и они сразу с горящими глазами идут к IDE, тыц-тыц по клавишам, хуяк-хуяк, запустим тест, тааак, тест не пройден, это же очевидно как это решить, загуглим эксепшн, посмотрим че пишут на стаковерфлоу, еще раз! Таак, теперь другая ашибка, таак, повторим пока не заработает. Stackoverflow-driven development.Я когда делаю проект, еще до того как открыть IDE знаю как будут называться методы, как будут называться переменные, какие подводные камни и так далее. Поэтому со стороны это выглядит как будто я получив задание несколько дней аутирую, вообще не стуча по клавишам, а потом быстро делаю один точный коммит, в котором всё работает с первого раза. Могу через какой-нибудь SOAP UI проверить разок (у меня платная extended лицензия на работе), но в 99,999% оно и без него будет работать.
>>761263>на слишком низком уровнеhttps://github.com/shkolnick-kun/bugurtosНасмешил, содомит!
>>761474А у меня еще веселей: сначала я задумываю протоколы алгоритмы и структуры данных, потом рисую их на бумаге, там же ризрисовываю юзкейсы, и только когда в голове все срастается - сажусь за комп.Но тесты все равно нужны, региессии ловить...
>>761474А я начинаю свой язык пилить.
>>761474> я получив задание несколько дней аутирую, вместо того, чтобы за несколько часов его нормально решитьМолодец, ты у мамы самый умный архитектор.
>>761524А я свою ОС.
>>761420> Особенно когда метод делает много обращений куда-нибудьМоки надо делать. Ну и иногда не получается протестить, ниче не поделаешь.> Ну и сколько % времени ты на них тратишь?В 2 раза больше чем на код. Но оно того стоит. У меня была ситуация на работе, когда мне надо было в относительно большом проекте заменить одну хуевину на другую хуевину с похожей функциональностью. После удаления ссылки на старую хуевину у меня появились ошибки в больше чем 100 файлах. Везде надо было внести простые правки, мозгом думать не надо было, но делать так дохуя изменений довольно страшно. Когда после этих правок я запустил 2к тестов и они все были зеленые, мне стало заметно спокойнее. Это, конечно, вырожденная ситуация, но все равно суть какая-то такая.Бывало еще, что я правил кусок проекта, в котором было просто анриал разобраться полностью, потому что код там был старый и хуевый, но там было дохуища тестов. Я сделал свою работу и за счет тестов получил какую-то степень уверенности в том, что я ниче не сломал (ну или сломал не очень много всего).
>>761577> После удаления ссылки на старую хуевину у меня появились ошибки в больше чем 100 файлах.Ты уверен, что это были именно юнит-тесты? Хуле они у тебя затрагивали ссылки между хуёвинами?
>>761500Как стать таким умным, как ты? Надо есть растишку?
>>761610Надо понять, зачем тебе нужно делать что-то?Если ты найдешь для себя причину, и она будет достаточно веской, тогда не надо никакой растишки.
>>761700На си шарпе пишу, там что-то типа> public T Hui { get; private set; }Их не тещу.
Любопытная тема. Я, так сказать, представитель двух миров: с одной стороны, синьор-помидор примерно с 15-летним опытом коммерческой разработки да, я уже немолод, с другой - моя нынешняя работа тесно связана с QA даже на ISTQB пришлось сдать. Временами приходится наблюдать а то и разруливать конфликты довольно любопытной природы, в том числе и тестосрач.Посижу пока в рид-онли, послушаю, какие настроения нынче обуревают школьников :3
>>761787> выебоны> выебоны> выебоны> школьников
>>761787ну я в щель и смотрю, а там батя на карачиках сидит и в щель смотрит, и мне говорит: ты чё? ебанутый? чё ты там делаешь? батя кстати всё время какие-то травы пьёт, чтобы срать часто, срёт по 5 раз в день, а потом говорит, что жопу жжёт, и ещё пердит он. пиздец короче! реальная история. я не тролль
>>761787Знавал я одного программистишку с 15-летним опытом коммерческой разработки, который не слышал ни про паттерны, ни про системы контроля версий. А другой программистишка на javatalks.ru, проработавший столько же (по его словам), не осилил лямбды в 8-й жабе. Надеюсь, его в этот кризис сократили.
>>761878ну я в монитор и смотрю, а там погромист в ide сидит и на assert 2+2=4 смотрит, и мне говорит: ты чё? ебанутый? чё ты там делаешь? погромист кстати всё время какие-то тесты пишет, чтобы коммитить часто, коммитит по 5 раз в день, а потом говорит что тесты не проходят, и еще пердит он. пиздец короче! реальная история. я не тролль
>>761894Visual Studio научилась постить в pr?
>>761894> погромист кстати всё время какие-то тесты пишет, чтобы коммитить часто, коммитит по 5 раз в день, а потом говорит что тесты не проходятпроиграл
>>761474когда перестанешь пилить гостевухи, поймешь зачем нужны тесты.
Даун-ОП даже не осилил прочитать собственные статьи. Жаль, до сентября придется эту хуйню терпеть.> People have pointed out that I use test-driven design of APIs myself. This is true.> So if you try to submit a patch to a stable ZeroMQ version, I'll ask you for a before and after test case, a Jira issue, and a third person acting as problem owner.