Как проверить поле для ввода возраста методом граничных значений

«Как проверить поле для ввода возраста методом граничных значений» — вопрос из категории Техники тест-дизайна, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При тестировании поля возраста с допустимым диапазоном от 18 до 100 лет я применяю метод граничных значений. Тестируются не только сами границы, но и значения рядом с ними.

Набор тестовых значений:

  1. Минимальная граница: 18 (валидно)
  2. Значение сразу ниже минимума: 17 (невалидно)
  3. Значение сразу выше минимума: 19 (валидно)
  4. Максимальная граница: 100 (валидно)
  5. Значение сразу ниже максимума: 99 (валидно)
  6. Значение сразу выше максимума: 101 (невалидно)

Практическая реализация в тестах (на примере Java + JUnit):

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.*;

class AgeValidatorTest {

    private boolean isValidAge(int age) {
        return age >= 18 && age <= 100;
    }

    @ParameterizedTest
    @ValueSource(ints = {18, 19, 99, 100}) // Валидные граничные значения
    void validAgeBoundaries_ShouldReturnTrue(int age) {
        assertTrue(isValidAge(age), "Age " + age + " should be valid");
    }

    @ParameterizedTest
    @ValueSource(ints = {17, 101}) // Невалидные граничные значения
    void invalidAgeBoundaries_ShouldReturnFalse(int age) {
        assertFalse(isValidAge(age), "Age " + age + " should be invalid");
    }
}

Дополнительно всегда проверяю нечисловые вводы (буквы, символы), пустую строку, отрицательные числа и ноль, так как эти кейсы часто выявляют ошибки валидации на стороне сервера или фронтенда.