Расскажите про классы эквивалентности и граничные значения. Как бы вы протестировали поле возраста от 18 до 60?
Короткий ответ
- Класс эквивалентности — значения, обрабатываемые одинаково
- Из каждого класса достаточно одного представителя
- Для 18–60: валидный класс и два невалидных
- Граничные значения: 17, 18, 19 и 59, 60, 61
- Ошибки чаще живут на границах диапазонов
- Добавить спецклассы: пусто, буквы, дробные, отрицательные
Эквивалентность сокращает число тестов без потери покрытия, а граничные значения целятся туда, где ошибки вероятнее всего.
Как сказать вслух
пример ответаКласс эквивалентности — это группа значений, которые система обрабатывает одинаково, поэтому достаточно проверить одно значение из группы. Для поля от 18 до 60 есть валидный класс, например 35, и два невалидных — меньше 18 и больше 60. Дальше техника граничных значений: проверяю сами границы и соседние числа — 17, 18, 59, 60, 61. И обязательно добавляю нестандартный ввод: пустое поле, буквы, ноль, отрицательные числа.
Подробный ответ
Основной ответ
Эквивалентное разбиение (equivalence partitioning) делит все возможные входные данные на классы, внутри которых поведение системы предполагается одинаковым: если работает одно значение класса, работают и остальные. Это резко сокращает количество тестов. Анализ граничных значений (boundary value analysis) дополняет технику: дефекты из-за ошибок в условиях (>= вместо >) концентрируются на границах классов, поэтому проверяются граница и её соседи. Для диапазона 18–60: валидный класс (например, 35), невалидные классы ниже и выше, границы 17/18 и 60/61, по расширенной схеме ещё 19 и 59. Отдельно проверяются недопустимые типы ввода: пустая строка, пробелы, буквы, дробные, отрицательные, очень длинные строки — это тоже классы эквивалентности.
Ключевые моменты
- Один представитель класса. Проверять 20, 30 и 40 бессмысленно — это один класс, достаточно одного значения.
- Два или три значения на границу. Минимум — граница и ближайшее невалидное; расширенно — граница плюс оба соседа.
- Невалидные классы обязательны. Негативные сценарии находят больше дефектов, чем позитивные, про них часто забывают.
- Техника применима не только к числам. Длина строк, даты, размеры файлов, роли пользователей — везде есть классы и границы.
Практический контекст
Классическая практическая задача на собеседовании джуниора: дают поле или форму и просят составить проверки. Интервьюер смотрит на системность: кандидат должен назвать технику, а не хаотично перечислять значения. Сильный ход — проговорить вслух и валидные, и невалидные классы, границы, спецсимволы и уточнить требования: включительны ли границы, что должно происходить при ошибке.
Частые ошибки
- Перечисляют случайные значения вместо системного разбиения на классы
- Забывают негативные классы: буквы, пусто, отрицательные числа
- Не уточняют у интервьюера, включены ли границы в допустимый диапазон