Size: a a a

2020 December 06

ZM

ZLoyer Matveev in pro.jvm
Denis Chikanov
Нет, был поставлен вопрос "как протестировать". Ответ "да тестировать не надо/не всегда надо/бесполезно/етц" не отвечает на вопрос "как тестировать"
Перечитал свои реплики и не нашел ни одного варианта из вами перечисленного. Не пойму откуда такое восприятие.
источник

V

V in pro.jvm
Alexei Vinogradov
Там есть опция "тестировать код не надо, если есть тестировщик" :))
Ну в любом случае чтобы нормально протестировать такой код, нужно знать кол-во диапазонов и их границы. На уровне юнит тестов или нет
источник

ZM

ZLoyer Matveev in pro.jvm
Вариант с моком бессмысленен. Это да. А тестирование не отменялось.
источник

DC

Denis Chikanov in pro.jvm
ZLoyer Matveev
Я вродь сказал что тестирование не спасет в общем случае от проблем. Самое главное воспроизвести ситуацию с прода.
"Тестирование не спасёт от проблем" из сообщения, на которое я уже второй раз отвечаю, не является ответом на задаваемый вопрос
источник

AV

Alexei Vinogradov in pro.jvm
V
Ну в любом случае чтобы нормально протестировать такой код, нужно знать кол-во диапазонов и их границы. На уровне юнит тестов или нет
Ну в принципе формулировка "как протестировать код", подразумевает, что код доступен.
источник

ZM

ZLoyer Matveev in pro.jvm
Denis Chikanov
"Тестирование не спасёт от проблем" из сообщения, на которое я уже второй раз отвечаю, не является ответом на задаваемый вопрос
Не спасет, но не значит что тесты не нужны.
источник

V

V in pro.jvm
Alexei Vinogradov
Ну в принципе формулировка "как протестировать код", подразумевает, что код доступен.
А к чему собсно вопрос был?)) просто соц опрос?
источник

AV

Alexei Vinogradov in pro.jvm
V
А к чему собсно вопрос был?)) просто соц опрос?
Ага
источник

DC

Denis Chikanov in pro.jvm
ZLoyer Matveev
Вариант с моком бессмысленен. Это да. А тестирование не отменялось.
Так почему он бессмысленен-то? Если вы не смогли граничные условия (и классы эквивалентности) определить, виноват не мок.
источник

ZM

ZLoyer Matveev in pro.jvm
Denis Chikanov
Так почему он бессмысленен-то? Если вы не смогли граничные условия (и классы эквивалентности) определить, виноват не мок.
Ну если жить в очень изолированном мире (импортозамещения), то конечно границы в целом определить можно, за какое-то время.

А если пользоваться чужим кодом/сервисом по дороге, то не всегда.
источник

DC

Denis Chikanov in pro.jvm
ZLoyer Matveev
Ну если жить в очень изолированном мире (импортозамещения), то конечно границы в целом определить можно, за какое-то время.

А если пользоваться чужим кодом/сервисом по дороге, то не всегда.
Ну так а что тогда делать с кодом, принимающим случайный инпут (или скорее даже ГПСЧ в качестве инпута), если не мокать-то? Тестировать на случайном инпуте, пока все ветки не исполнятся хоть раз?
источник

ZM

ZLoyer Matveev in pro.jvm
Использовать сиды.
источник

DC

Denis Chikanov in pro.jvm
ZLoyer Matveev
Использовать сиды.
Что не спасает, если
а) ГПСЧ (или скорее даже объекта, ибо не факт, что число, а не более сложная конструкция) из внешнего кода (либа, другая команда,  контракторы, етц) не принимает силы в конструктор
б) подбор сида, который, например, выдаёт значения из каждого класса эквивалентности за обозримое время, сложен
источник

AV

Alexei Vinogradov in pro.jvm
ZLoyer Matveev
Ну если жить в очень изолированном мире (импортозамещения), то конечно границы в целом определить можно, за какое-то время.

А если пользоваться чужим кодом/сервисом по дороге, то не всегда.
Обычно, если код настолько уж чужой, то всё заканчивается еще раньше - на невозможности подменить моком внутреннюю часть имплементации.

Так что давайте всё же считать, что код если и не собственный, то по крайней мере полностью доступный.
источник

ZM

ZLoyer Matveev in pro.jvm
Denis Chikanov
Что не спасает, если
а) ГПСЧ (или скорее даже объекта, ибо не факт, что число, а не более сложная конструкция) из внешнего кода (либа, другая команда,  контракторы, етц) не принимает силы в конструктор
б) подбор сида, который, например, выдаёт значения из каждого класса эквивалентности за обозримое время, сложен
ну с первым сорян, страдать

со вторым уже предлагали не мешать код
источник

DC

Denis Chikanov in pro.jvm
ZLoyer Matveev
ну с первым сорян, страдать

со вторым уже предлагали не мешать код
Я бтв всё равно не понимаю разницы между "найти сид с нужным поведением" и "сделать мок с заведомо нужным поведением"
источник

N

Nick in pro.jvm
Denis Chikanov
Я бтв всё равно не понимаю разницы между "найти сид с нужным поведением" и "сделать мок с заведомо нужным поведением"
+
источник

DC

Denis Chikanov in pro.jvm
Ну то есть если ГПСЧ тестить не надо, то зачем платить больше - его по определению можно подменить на мок в адекватно устроенном коде
источник

IP

Iaroslav Postovalov in pro.jvm
Denis Chikanov
Ну то есть если ГПСЧ тестить не надо, то зачем платить больше - его по определению можно подменить на мок в адекватно устроенном коде
валидность гпсч тестить можно только через статистические методы, которые доказывают равномерность распределения в генераторе. такие тесты длятся часами.
источник

ch

central hardware in pro.jvm
а почему ГПСЧ, может там данные беруться из /dev/random
источник