Как проверить работу формы с делением 10 на введенное значение с одной попытки
Что проверяют
Это вопрос на приоритизацию: какой единственный тест даст больше всего информации о риске. Интервьюер ждёт не список из десяти проверок, а одно значение с обоснованием. Следом почти всегда спрашивают: «А если бы попыток было три?»
Как отвечать
С одной попытки вводите 0. Деление на ноль это самая вероятная точка отказа такой формы, и одна проверка покрывает сразу несколько вещей: есть ли валидация ввода, как обработана ошибка и что увидит пользователь. Поведение зависит от стека, и хорошо, если вы это назовёте:
- JavaScript:
10 / 0не бросает исключение, а возвращаетInfinity,10 / -0даёт-Infinity. Если фронтенд считает сам, в поле результата легко окажется «Infinity»; - Python:
ZeroDivisionErrorи для целых, и для дробных чисел. Без обработки это ошибка 500 или пустой экран; - Java: с целыми
ArithmeticException, сdoubleрезультатInfinityбез всякого исключения.
Правильное ожидание сверяете с требованиями: сообщение «На ноль делить нельзя», заблокированная кнопка или что-то ещё. Если требований нет, это вопрос к аналитику, а не повод придумать ответ самому.
Когда попыток больше, продолжайте по классам эквивалентности и границам:
- дробный результат:
3, чтобы увидеть округление3.3333…и число знаков после запятой; - формат ввода:
0,5с запятой и0.5с точкой, пробелы, пустое поле, буквы,1e3; - крайние значения: отрицательное
-2, очень большое и очень маленькое число, при которых результат теряет точность или уходит в экспоненциальную запись.
Где спотыкаются
Не замечают условие «с одной попытки» и начинают перечислять весь чек-лист. Интервьюер спрашивал именно про выбор.
Выбирают «нормальное» значение вроде 2. Такой тест почти ничего не рискует найти: счастливый путь обычно проверил сам разработчик.
Заявляют, что деление на ноль всегда вызовет исключение. В браузерном JavaScript это не так, и баг выглядит не как ошибка, а как странное «Infinity» в поле результата.