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

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

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

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