Size: a a a

2020 December 06

ZM

ZLoyer Matveev in pro.jvm
Nick
Это зависит от вашего кода. Как правило обращение к генерации случайной величины сводится к конечному числу диапазонов сгенерированных чисел. Вот эти диапазоны вы и должны протестировать и тут вам неважно рендомно или фиксировано вы получаете число из диапазона
Или наоборот к условно бесконечному, лол.
источник

N

Nick in pro.jvm
ZLoyer Matveev
Или наоборот к условно бесконечному, лол.
Условно бесконечное сводится к максимальному, которое вы можете обработать и оно ограничивает сверху один из диапазонов
источник

N

Nick in pro.jvm
ZLoyer Matveev
Или наоборот к условно бесконечному, лол.
Если не прав приведите пример ситуации, могу заблуждаться
источник

V

V in pro.jvm
Alexei Vinogradov
Хороший ответ!)

А что, если не от кости, а от генератора целых чисел с результатами от 1 до 1000? ;-)
Диапазоны
источник

ZM

ZLoyer Matveev in pro.jvm
Nick
Если не прав приведите пример ситуации, могу заблуждаться
Это не всегда работает, потому что не всегда мы можем знать о граничных условиях (чужой код).
источник

ZM

ZLoyer Matveev in pro.jvm
И тут все закончится тем, что тестирование не покроет всех кейсов в общем случае. Вам надо иметь код самой функции такой, чтобы вы могли воспроизвести ситуацию с прода. А не мок с фиксированным числом.
источник

V

V in pro.jvm
ZLoyer Matveev
Это не всегда работает, потому что не всегда мы можем знать о граничных условиях (чужой код).
У тестировщиков есть же теории тестирования диапазонов больших)
источник

ZM

ZLoyer Matveev in pro.jvm
V
У тестировщиков есть же теории тестирования диапазонов больших)
🤞
источник

AV

Alexei Vinogradov in pro.jvm
Nick
Это зависит от вашего кода. Как правило обращение к генерации случайной величины сводится к конечному числу диапазонов сгенерированных чисел. Вот эти диапазоны вы и должны протестировать и тут вам неважно рендомно или фиксировано вы получаете число из диапазона
Ну кажется примерно так, но как то сложно описано.

Заменяем ГСЧ моком, возращающим постоянный результат (ну или для любителей акробатики- случайный результат из диапазона эквивалентных значений), оптимальное количество тестов равно количеству классов эквивалентности. То есть с костью - от 2 до 6.

Ну и на практике самая сложная часть - изменение кода, позволяющее заменить ГСЧ на мок. :-)
источник

N

Nick in pro.jvm
ZLoyer Matveev
Это не всегда работает, потому что не всегда мы можем знать о граничных условиях (чужой код).
Возможно, но зачем мы тестируем чужой код? И что мешает на основе простестировпнного чужого кода сформировать модель его поведения и определить те же диапазоны для тестмровпния? Да возможно разово нам потребуется декомпильнуть или пройтм весь интовый диапазон? Но мы будем опираться на уже предсказуемое поведение черной коробки
источник

DC

Denis Chikanov in pro.jvm
ZLoyer Matveev
Или наоборот к условно бесконечному, лол.
Ээ, в смысле? У тебя для каждого значения принципиально отличается поведение?
источник

AV

Alexei Vinogradov in pro.jvm
V
У тестировщиков есть же теории тестирования диапазонов больших)
Ага, называется - классы эквивалентности. Если например, например бросок кости оценивается по критерию "2" или "не 2", то достаточно 2 тестов.
источник

ZM

ZLoyer Matveev in pro.jvm
Nick
Возможно, но зачем мы тестируем чужой код? И что мешает на основе простестировпнного чужого кода сформировать модель его поведения и определить те же диапазоны для тестмровпния? Да возможно разово нам потребуется декомпильнуть или пройтм весь интовый диапазон? Но мы будем опираться на уже предсказуемое поведение черной коробки
Я вродь сказал что тестирование не спасет в общем случае от проблем. Самое главное воспроизвести ситуацию с прода.
источник

DC

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

ZM

ZLoyer Matveev in pro.jvm
Имеет. Потому что код написанный соответствующе мокать не надо.
источник

N

Nick in pro.jvm
Alexei Vinogradov
Ага, называется - классы эквивалентности. Если например, например бросок кости оценивается по критерию "2" или "не 2", то достаточно 2 тестов.
Плюс минус это вкладываю в понятия диапазонов, которые фактически сводят множества всех ситуаций в определенные конечные границы
источник

AV

Alexei Vinogradov in pro.jvm
Nick
Плюс минус это вкладываю в понятия диапазонов, которые фактически сводят множества всех ситуаций в определенные конечные границы
Ну да, я догадался :-)
источник

DC

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

AV

Alexei Vinogradov in pro.jvm
Denis Chikanov
Нет, был поставлен вопрос "как протестировать". Ответ "да тестировать не надо/не всегда надо/бесполезно/етц" не отвечает на вопрос "как тестировать"
Там есть опция "тестировать код не надо, если есть тестировщик" :))
источник

AV

Alexei Vinogradov in pro.jvm
И у неё даже есть сторонники))
источник