Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как Вы боритесь с тестами Шрёдингера?

Если кому само слово не знакомо, то поясню: на неформальном сленге выражением "Тест Шрёдингера" обозначают Юнит тест, который находится в состоянии суперпозиции. То есть в независимости от количества успешных/провальных запусков Вы не можете гарантировать, что он на самом деле работает или не работает. Вы ничего не можете о нём сказать. Явление может иметь и другие названия, но мне лично известно именно под таким.
Собственно вопрос к тем программистам, которые сталкивались с такими явлениями. Реально интересно, кто как с этим борется?
Это, по сути, опрос мнений. Но выполнен в виде простого вопроса, поскольку я хочу услышать именно мнения, а не получить статистику по выбору из вариантов.
ПрограммированиеМнениеЮнит тесты
Юрий Михайлуц
Юнит тесты
  · 985
Разработчик мобильных приложений, Dart/Flutter. Энтузиаст IoT.  · 7 окт 2021
Звучит как необходимость перехода к интеграционному тестированию.
Если подумать, то причиной может быть хардкод, который остался незамеченным, ну или тест составлен неправильно, например, моками лишнее переопределено.
В мобильной разработке вообще юнит-тесты на два типа делятся - локальные, которые "в песочнице" выполняются, и инструментальные, которые прогоняются на реальном устройстве, которое может сильно влиять на процесс. Локальные могут врать, потому что выполняются в идеальной среде и не учитывают косяков API. Вплоть до того доходило, что release и debug версии выполнялись по-разному, из-за того, что в работу вмешивались оптимизаторы кода и ошибки проявлялись по причине того, что отваливалась часть (не вся!) сторонней библиотеки.
Как итог, когда научился не писать спагетти-код, от юнит-тестов практически отказался.
1 эксперт согласен
Люто бешено плюсую за ответ, основанный на реальном опыте тестирования.
Веб-разработчик, геймер, специалист по этике  · 7 окт 2021
Подпись к вопросу, дословно: > Если кому само слово не знакомо, то поясню: на неформальном сленге выражением "Тест Шрёдингера" обозначают Юнит тест, который находится в состоянии суперпозиции. То есть в независимости от количества успешных/провальных запусков Вы не можете гарантировать, что он на самом деле работает или не работает. Вы ничего не можете о нём сказать... Читать далее
Простите, но Вы реально не видите разницы между успешным прохождением теста и реальной работоспособностью того... Читать дальше
программист  · 15 окт 2021
Если кому само слово не знакомо, то поясню: на неформальном сленге выражением "Тест Шрёдингера" обозначают Юнит тест...
  1. Мне больше знакомо название "гейзенбаг".
  2. По-моему если в вашем тесте завёлся гейзенбаг (который ещё и непонятно как исправлять - судя по вопросу) - то это уже не unit-test. Либо вы тестируете больше одного юнита либо юниты у вас слишком толстые.
Проект слишком жирный. И много старых тестов, которые постепенно приходят в негодность, по мере развития проекта... Читать дальше