juan_gandhi: (Default)
[personal profile] juan_gandhi

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

Так вот только недавно я начал понимать, какой это был (бес)ценный опыт. Потому что обычные программисты, без опыта тестирования - они вроде юзеров. Тыкают пальчиком, вдруг заработает.  

Не, я не предлагаю ссылать в кюеи на год (да и дураков нет, они пойдут в другую контору, где их будут ценить). Но чисто для себя.

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

Date: 2021-12-11 04:22 am (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Я иногда с бухты барахты такие тестовые примеры для нашего компилятора придумываю, что диву можно даться, что получается в результате (например, совершенно безумное сообщение об ошибке, хотя должно работать); но фиксить обнаруженные баги обычно никто не собирается, потому что фикс потребует заметного времени, реальные кастомеры такое не пишут, а ради прикола полировать глюкалу некогда.

Date: 2021-12-11 05:57 am (UTC)
From: [personal profile] dijifi
Эт точно.
Тут есть оргвопрос — тестовый отчет это ведь только исходная информация для принятия решения о качестве продукта, а не окончательный вердикт.

(no subject)

From: [personal profile] spamsink - Date: 2021-12-11 07:06 pm (UTC) - Expand

(no subject)

From: [personal profile] dijifi - Date: 2021-12-11 08:54 pm (UTC) - Expand

(no subject)

From: [personal profile] dijifi - Date: 2021-12-12 12:28 am (UTC) - Expand

(no subject)

From: [personal profile] lomeo - Date: 2021-12-12 04:40 pm (UTC) - Expand

(no subject)

From: [personal profile] dijifi - Date: 2021-12-14 10:36 pm (UTC) - Expand

Date: 2021-12-11 06:02 am (UTC)
From: [personal profile] dijifi
Вообще-то по моему опыту самый полезный курс для поиска программных ошибок были физлабы, ну там теплопроводность померять или вакуумный насос запустить. Такой опыт налаживает умение отделять факты (и методы получения фактов) от фантастических иллюзий.

Date: 2021-12-11 06:02 am (UTC)
fatoff: What? (Default)
From: [personal profile] fatoff
Минимум в половине контор юнит-тест есть часть любого задания.

(no subject)

From: [personal profile] lomeo - Date: 2021-12-12 08:32 pm (UTC) - Expand

Date: 2021-12-11 06:30 am (UTC)
vak: (Default)
From: [personal profile] vak
В моём нынешнем проекте правило: новый код не коммитится, если не покрыт тестом. Дабавили фичу - добавили тест. Уже больше двух тысяч тестов за два года.

Date: 2021-12-11 10:31 am (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Покрытие тестами -- это не гарантия того, что код работает правильно. Это просто надежда на то, что программист сделал, что хотел.

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

(no subject)

From: [personal profile] epimorphisms_split - Date: 2021-12-11 04:07 pm (UTC) - Expand

(no subject)

From: [personal profile] vit_r - Date: 2021-12-11 04:15 pm (UTC) - Expand

(no subject)

From: [personal profile] epimorphisms_split - Date: 2021-12-11 04:48 pm (UTC) - Expand

(no subject)

From: [personal profile] sassa_nf - Date: 2021-12-12 09:02 am (UTC) - Expand

(no subject)

From: [personal profile] lomeo - Date: 2021-12-12 08:40 pm (UTC) - Expand

(no subject)

From: [personal profile] vit_r - Date: 2021-12-11 06:52 pm (UTC) - Expand

(no subject)

From: [personal profile] vak - Date: 2021-12-11 09:58 pm (UTC) - Expand

(no subject)

From: [personal profile] archaicos - Date: 2021-12-12 02:44 am (UTC) - Expand

(no subject)

From: [personal profile] anonim_legion - Date: 2021-12-12 07:02 am (UTC) - Expand

(no subject)

From: [personal profile] archaicos - Date: 2021-12-12 08:13 am (UTC) - Expand

(no subject)

From: [personal profile] vit_r - Date: 2021-12-12 11:39 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/sorcerer-/ - Date: 2021-12-13 05:28 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/sorcerer-/ - Date: 2021-12-13 12:06 pm (UTC) - Expand

(no subject)

From: [personal profile] vit_r - Date: 2021-12-13 07:55 am (UTC) - Expand

Date: 2021-12-11 07:31 am (UTC)
redis: (Default)
From: [personal profile] redis
В старые добрые времена и принципы программирования были другими, оглядываясь назад, не знаю, как бы написал тесты для некоторого из софтов, над которым работал.

Впрочем, полгода поработал тестером, история тоже связана с США, но иначе. У нас тогда был контракт с IBM, и они перепутали количество наших девелоперов. Те, за кого не заплатили, были на полгода переведены в тестеры с сохранением зарплаты. Первое время я тестировал собственный софт, чего делать, в общем-то, нельзя.

Я быстренько всё автоматизировал, после чего быстренько всё сделал и попросил еще. Не дали, зато в конце месяца попало за ничегонеделанье

Date: 2021-12-11 07:47 am (UTC)
From: [personal profile] sidorovmax
Какой продукт в Борланде тестировали?

Visibroker testing

From: [personal profile] dennisgorelik - Date: 2021-12-11 09:32 pm (UTC) - Expand

Re: Visibroker testing

From: [personal profile] dennisgorelik - Date: 2021-12-12 04:57 pm (UTC) - Expand

Date: 2021-12-11 09:06 am (UTC)
elglin: (Default)
From: [personal profile] elglin
Одним из важнейших достижений за прошлый год я для себя считаю усвоенную привычку обмазывать код тестами в процессе написания. Так что полностью согласен.

Date: 2021-12-11 09:42 am (UTC)
beldmit: (Программизм)
From: [personal profile] beldmit
У меня к этому очень сложное отношение. В криптографии без тестов никуда, и писать их приходится.

Но как же ломы! Ну и когда я ловил вот это, у меня был высокоуровневый тест совершенно неудобоваримого вида — но низкоуровневый коллегам, уже знавшим, что ловить, пришлось писать едва ли не больше, чем мне искать проблему. А если усилия не пропорциональны, то очень тяжко.

К счастью, QE тут у нас на полуавтономке, а на низком уровне в Red Hat писать мне не нужно.

(no subject)

From: [personal profile] elglin - Date: 2021-12-11 04:19 pm (UTC) - Expand

(no subject)

From: [personal profile] beldmit - Date: 2021-12-12 07:43 am (UTC) - Expand

Date: 2021-12-11 09:39 am (UTC)
dennisgorelik: 2020-06-13 in my home office (Default)
From: [personal profile] dennisgorelik
В Microsoft разработчики начинали с позиции Software Development Engineer in Test (SDET).
Вероятно, одной из важных причин - было привить привычку тестировать свой код.

Date: 2021-12-12 02:31 am (UTC)
fatoff: What? (Default)
From: [personal profile] fatoff
Те, которые изначально были наняты SDET. А вообще-то скорее нет, чем да.
Edited Date: 2021-12-12 02:32 am (UTC)

(no subject)

From: [personal profile] dennisgorelik - Date: 2021-12-12 04:58 pm (UTC) - Expand

(no subject)

From: [personal profile] fatoff - Date: 2021-12-12 07:20 pm (UTC) - Expand

(no subject)

From: [personal profile] dennisgorelik - Date: 2021-12-12 07:26 pm (UTC) - Expand

(no subject)

From: [personal profile] fatoff - Date: 2021-12-12 07:31 pm (UTC) - Expand

(no subject)

From: [personal profile] dennisgorelik - Date: 2021-12-12 07:50 pm (UTC) - Expand

(no subject)

From: [personal profile] fatoff - Date: 2021-12-12 10:49 pm (UTC) - Expand

Microsoft: SDE vs SDET

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:44 am (UTC) - Expand

Re: Microsoft: SDE vs SDET

From: [personal profile] fatoff - Date: 2021-12-13 04:10 am (UTC) - Expand

Re: Microsoft: SDE vs SDET

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:49 pm (UTC) - Expand

(no subject)

From: [personal profile] archaicos - Date: 2021-12-12 02:48 am (UTC) - Expand

(no subject)

From: [personal profile] dennisgorelik - Date: 2021-12-12 05:01 pm (UTC) - Expand

Date: 2021-12-11 09:48 am (UTC)
norian: (Default)
From: [personal profile] norian
коты в интеле тоже кюэйем начинали, а никлас вирт приезжал в жопу мира нижний новгород типа лекцию про историю йазыков прочитать, жаль тогда нельзя было себячку захуйарить "йа с виртом"

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

(no subject)

From: [personal profile] archaicos - Date: 2021-12-12 02:54 am (UTC) - Expand

Date: 2021-12-11 10:32 am (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Проблема в том, что программизм вырос из университетов и курсов переобучения. А там тактика -- сдал и забыл.

Date: 2021-12-11 12:36 pm (UTC)
chaource: (Default)
From: [personal profile] chaource
Но следующие шесть лет в Борланде я имел репутацию Этого Странного Кюея.
А почему "странный кюэй"? Въ чёмъ была странность? Тестировать кодъ это же и есть задача кюэевъ.

На моей теперешней работѣ я въ группѣ единственный, кто настаиваетъ на тестахъ съ 100% code coverage, и кто пишетъ кодъ для тестированiя сложныхъ баговъ, а не тестируетъ вручную, что багъ пофиксенъ, послѣ деплоя вручную на staging environment, какъ любятъ дѣлать нѣкоторые наши друзья изъ солнечной Индiи.
Edited Date: 2021-12-11 01:30 pm (UTC)

(no subject)

From: [personal profile] chaource - Date: 2021-12-11 08:42 pm (UTC) - Expand

Date: 2021-12-11 12:58 pm (UTC)
ppk_ptichkin: (Default)
From: [personal profile] ppk_ptichkin
Меня этому научили в Dassault в 2000м году. Без unit tests код отвергался, и всё. Дальше там уже были integration tests, multiplatform, и т.д.

Мне, конечно, повезло, что они нас купили. Где бы ещё я этому (и ещё много чему) научился.

Date: 2021-12-11 01:17 pm (UTC)
From: [personal profile] vap
У меня отношение к тестам странное, кощунственное. Я не считаю, что юнит-тесты вообще следует писать для любого кода, кроме сильно абстрактного. По сути, юнит-тест проверяет, что код работает так, как он должен работать по мнению того, кто писал тест. И если код и тест писал один человек - то и смысл теста теряется. Если я не просек, что в задаче есть особый случай - я и в тесте его не проверю.
Исключений из этого моего мнения два: первое - когда код сильно абстрактный и действительно нужно проверять соответствие реального поведения предполагавшемуся. И второе - когда программист знает за собой склонность писать методом тыка, "а если здесь поправить - может, заработает? Не, совсем сломалось. А если здесь?"
К тому же, юнит-тесты ловят только баги в функциональности и тупые падения. А вот нарушения инвариантов - не ловят. Например, если после итерации теста не вся память возвращена - юнит-тест это не поймает, для такого нужно всякие валгринды использовать. И так во всем. А ведь эти баги как раз и есть самые мешающие.

Date: 2021-12-11 07:03 pm (UTC)
ppk_ptichkin: (Default)
From: [personal profile] ppk_ptichkin
Есть третий вариант. Ваш код, включая тесты, просматривают ещё несколько человек.

(no subject)

From: [personal profile] vap - Date: 2021-12-11 09:07 pm (UTC) - Expand

(no subject)

From: [personal profile] vap - Date: 2021-12-12 12:45 am (UTC) - Expand

Regression testing

From: [personal profile] dennisgorelik - Date: 2021-12-12 05:26 pm (UTC) - Expand

Re: Regression testing

From: [personal profile] vap - Date: 2021-12-12 05:52 pm (UTC) - Expand

Re: Regression testing

From: [personal profile] dennisgorelik - Date: 2021-12-12 06:11 pm (UTC) - Expand

Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-12 10:03 pm (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:42 am (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-13 02:24 am (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:45 pm (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-14 06:30 am (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] sassa_nf - Date: 2021-12-13 08:03 am (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:52 pm (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] sassa_nf - Date: 2021-12-13 01:20 pm (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-13 01:39 pm (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-14 07:00 am (UTC) - Expand

30 years prior to Y2K

From: [personal profile] dennisgorelik - Date: 2021-12-14 04:01 pm (UTC) - Expand

Re: Unit tests for null and negative values?

From: [personal profile] dennisgorelik - Date: 2021-12-14 06:58 am (UTC) - Expand

Re: Regression testing

From: [personal profile] lomeo - Date: 2021-12-12 09:35 pm (UTC) - Expand

Unit tests for prototyping

From: [personal profile] dennisgorelik - Date: 2021-12-12 10:06 pm (UTC) - Expand

Date: 2021-12-11 02:14 pm (UTC)
From: [personal profile] sassa_nf
The most important aspects of design are about how you are going to find out what lead to a failure.

(no subject)

From: [personal profile] malyj_gorgan - Date: 2021-12-12 05:59 am (UTC) - Expand

Date: 2021-12-11 02:30 pm (UTC)
ernestine_16: (Default)
From: [personal profile] ernestine_16
кюей, девелопер, баг
Всё собираюсь вести ежегодный словарь новых слов - не знаю, зачем оно мне.
А вот слово западло - уже не новое слово

Date: 2021-12-11 04:09 pm (UTC)
ratomira: (Default)
From: [personal profile] ratomira
Девелопер - это тот, кто написал программу, то есть программист. Кюэй - это тестировщик программы, тестирует, чтобы программа работала. Баг - это ошибка (в программе). Примерно как-то так.

Date: 2021-12-11 04:01 pm (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split

Хочу иногда пойти преподавать программирование в колледж. Как посмотрю иной раз на этот код... С другой стороны, никто же не сказал, что получится преподать что-нибудь путное. И денег мало дают.

Date: 2021-12-11 04:42 pm (UTC)
zakrit_dver: (Default)
From: [personal profile] zakrit_dver
Я не знала, что за океаном тестировщиков называют кюэями. Расшифруйте, плиз.

Date: 2021-12-11 05:14 pm (UTC)
From: [personal profile] dijifi
QA, quality assurance, уверенность в качестве

(no subject)

From: [personal profile] zakrit_dver - Date: 2021-12-11 05:15 pm (UTC) - Expand

(no subject)

From: [personal profile] vit_r - Date: 2021-12-11 06:56 pm (UTC) - Expand

(no subject)

From: [personal profile] anonim_legion - Date: 2021-12-12 07:06 am (UTC) - Expand

Date: 2021-12-11 06:56 pm (UTC)
From: [personal profile] dijifi
Этот Суровый Архангельский Странный Кюэй выглядел а глазах Старших Инженеров как ситуация в этом баянистом анекдоте:

Купили как-то суровым сибирским лесорубам японскую бензопилу.
Собрались в кружок лесорубы, решили ее испытать.
Завели ее, подсунули ей деревце.
«Вжик» — сказала японская пила.
«У, бля...» — сказали лесорубы.
Подсунули ей деревце потолще. «Вж-ж-жик!» — сказала пила.
«Ух, бля!» — сказали лесорубы.
Подсунули ей толстенный кедр. «ВЖ-Ж-Ж-Ж-Ж-Ж-Ж-ЖИК!!!» — сказала пила.
«Ух ты, бля!!» — сказали лесорубы.
Подсунули ей железный лом. «КРЯК!» — сказала пила.
«Ага, бля!!!» — укоризненно сказали суровые сибирские лесорубы! И ушли рубить лес топорами

https://lurkmore.to/%D0%A1%D1%83%D1%80%D0%BE%D0%B2%D1%8B%D0%B5
Edited Date: 2021-12-13 01:16 am (UTC)

Date: 2021-12-12 06:36 am (UTC)
dluciv: (Default)
From: [personal profile] dluciv

Ну так в принципе, чтобы тесты писать, лучше знать, как устроена та софтина, к которой эти тесты. Для чего надо иметьквалификацию программиста таки. Но при этом не воспринимать её код, как совсем родной.

Date: 2021-12-12 07:48 am (UTC)
From: [personal profile] anonim_legion
Проблема с юнит-тестами в том, что их надо сперва писать, а потом переписывать при изменении кода.

Проблема с юнит-тестами в том, что если код в основном работает с внешними системами (80% нынешней разработки), то непонятно, чего тут тестировать, и почему надо писать и переписывать тесты. Интеграционные тесты от этого страдают меньше.

Проблема с интеграционными тестами в том, что если внешняя система сделана поверх микросервисов на монге, то ответы внешней системы могут быть неустойчивы. Особенно когда у внешней системы нет чётко известного набора ответов. В тесте её запросил - она работает, а на проде ИНОГДА у заёмщиков есть пометка, что данные об их сбережениях получены через Plaid, а вот самого ответа от Plaid ещё нету. И надо устраивать опрос в цикле, с задержками, в течении скажем 5 минут. И это не единственные данные, которые могут не придти, стало быть нужно иметь какой-то глобальный механизм повторов, и ещё избежать случая, когда несколько разных событий меняют одни и те же выходные данные одновремннно. Сейчас у меня оно сделано через AWS SQS FIFO, но тесты на такое опять же не напишешь, тут надо какую-то модель делать, не знаю на чём, присматриваюсь к http://verdi.uwplse.org , но это тяжело.

Или например из внешней системы приходят данные, где имеется поле даты. Потом внезапно и без предупреждения в этом же самом текстовом поле вместо даты появляется TBD, to be defined, разумеется чтение из модели на этаких данных начинает падать. Стало быть, нужно теперь читать это поле как строку, проверять не TBD ли там, и если да, то в выходной модели ставить флажок DateXXXIsTBD, а если не TBD, то читать дату и на этом месте уже падать - если там таки не дата.

А ещё бывает такое: некий лендер возжелал, чтобы все запросы кредитных историй шли через их собственный сервис, а они сами уже будут эти запросы проксировать скажем в MeridianLink, или ещё кому, в зависимости от содержания запроса. У них там в ответе внутри JSON прилетает строка, а в ней мегабайтного размера XML, причём JSON-escaped, но это ещё ладно. Сервис этого лендера иногда не отвечает на запросы. То есть, к ним запрос ушёл, и висит, ждёт, по 20-30 секунд на каждого человека, по которому были запрошены данные, как обычно. Вообще так делать не положено, долгие запросы в HTTP, но они делают. Так запрос ушёл - а ответа нет. Что же делать? Можно считать, что запрос был неуспешен и вернуть в результате задания ошибку.

Но в сервисе лендера считают, что у них всё работает, и предлагают запрашивать их ещё раз. Хорошо, делаем цикл, время ожидания ответа - 70 секунд, потом пауза в 10 секунд при неудаче и ещё один запрос, и так 5 раз. Всё заработало! Не с первого раза, так с пятого. Это оказалось проще, чем заставить лендера чинить их сетевые проблемы. Тем более, что проблемы может быть вообще не у них.

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

Юнит-тесты - это хорошо. Когда вы работаете с алгоритмами, которые обрабатывают статические данные. Иначе такие тесты теряют смысл. И не такие - тоже.

В прод.

(no subject)

From: [personal profile] uselessextras - Date: 2021-12-12 07:34 pm (UTC) - Expand

(no subject)

From: [personal profile] dennisgorelik - Date: 2021-12-13 02:37 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/sorcerer-/ - Date: 2021-12-13 12:10 pm (UTC) - Expand

(no subject)

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:59 pm (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/sorcerer-/ - Date: 2021-12-13 01:36 pm (UTC) - Expand

(no subject)

From: [personal profile] dennisgorelik - Date: 2021-12-13 06:28 pm (UTC) - Expand

Unit tests for API?

From: [personal profile] dennisgorelik - Date: 2021-12-14 06:57 am (UTC) - Expand

(no subject)

From: [personal profile] click0 - Date: 2021-12-13 06:16 pm (UTC) - Expand

Date: 2021-12-12 03:26 pm (UTC)
uselessextras: (Default)
From: [personal profile] uselessextras
А вот еще недавний пример. Ногами не бейте только.
Имеем C++:
class blah-bla {
f(string)
f(string, string)
...
Юнит тесты есть. Работает в продакшн лет 20.

Надо добавить еще параметр, и чтобы много не переписывать, даем ему умолчание:
f(string, bool = false)
f(string, string, bool = false)

В древнем коде находится такое место:
f("one", "two")

Век живи, век учись, тестами покрыть один фиг хрен сможешь.


Параметр по умолчанию

Date: 2021-12-12 07:59 pm (UTC)
dennisgorelik: 2020-06-13 in my home office (Default)
From: [personal profile] dennisgorelik
> Надо добавить еще параметр

Зачем "надо добавить еще параметр"?
Может быть лучше добавить отдельный метод, чтобы не создавать путаницы с использованием уже написанных методов?
Этот новый метод может вызывать уже существующий метод, без изменения существующего метода.

> f("one", "two")

Здесь есть какой-то баг?

Re: Параметр по умолчанию

From: [personal profile] uselessextras - Date: 2021-12-13 12:23 am (UTC) - Expand

Re: Параметр по умолчанию

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:51 am (UTC) - Expand

Date: 2021-12-12 06:54 pm (UTC)
From: [personal profile] dijifi
А используем ли мы одинаковую терминологию? Википедии верить не советую.

Типов тестов до хрена, и каждая организация/тусовка вкладывает свой смысл.
Даже я могу с ходу накидать: unit functional conformance regression integration verification validation acceptance и даже quality (как в WHQL).

По моему старому опыту (2000е) иногда приходится перенастраиваться: например юнит-тесты в одном проекте должны бвли проходить при каждой компиляции, и это для кода который обычно бегает а контексте ядра операционки. Это значит: каждый тест (а их десятки тысяч) должен занимать микросекунды; в ядре нельзя гонять, надо а юзере, значит все едреные апи надо мокать; организованно должно быть в билде практически как фаза компиляции. Результат — программисту приходится думать о том, что компилятор мог бы найти, но не может по причине своей тупости.
Edited Date: 2021-12-12 06:55 pm (UTC)

Компилятор и тесты

Date: 2021-12-12 07:54 pm (UTC)
dennisgorelik: 2020-06-13 in my home office (Default)
From: [personal profile] dennisgorelik
> программисту приходится думать о том, что компилятор мог бы найти

Можете привести пример того, что компилятор "мог бы найти"?

Re: Компилятор и тесты

From: [personal profile] uselessextras - Date: 2021-12-13 12:25 am (UTC) - Expand

Re: Компилятор и тесты

From: [personal profile] dennisgorelik - Date: 2021-12-13 12:55 am (UTC) - Expand

Re: Компилятор и тесты

From: [personal profile] dijifi - Date: 2021-12-13 01:11 am (UTC) - Expand

Date: 2021-12-13 05:22 am (UTC)
From: [identity profile] http://users.livejournal.com/sorcerer-/
Большинство юнит тестов бесполезны. Про это есть отличная статья:
https://rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf

Лучше всего писать e2e и regression.
Неплохо: integration.
Все остальное - карго культ.
С изобретением тулзов, допамин от зеленых отметочек пересиливает рационализм.
Основная проблема большинства современных компаний - это "pr-driven development", где из-за засилья бесполезных тестов невозможно разрабатывать код локально (пробежки на лэптопе слишком долгие или незасетаплены нормально) вот с этим тоже надо бороться. Ну и конечно адовейшая фикция - это "полное покрытие", т.к. в общем случае покрытие нельзя посчитать. Хочешь что-то "полное" - юзай фаззеры, но фаззеры 99% не осиливают внедрить.

(no subject)

From: [personal profile] sassa_nf - Date: 2021-12-13 08:16 am (UTC) - Expand

(no subject)

From: [personal profile] anonim_legion - Date: 2021-12-13 08:19 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/sorcerer-/ - Date: 2021-12-13 12:08 pm (UTC) - Expand

(no subject)

From: [personal profile] sassa_nf - Date: 2021-12-14 07:45 am (UTC) - Expand

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
8 9 10 11 121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 16th, 2025 09:48 am
Powered by Dreamwidth Studios