Проверка граничных значений на алфавитном промежутке предполагает тестирование первого и последнего разрешенного символа, а также символов непосредственно до и после допустимого диапазона, если они существуют в наборе символов.
Как можно выполнить проверку граничных значений не на числовом промежутке, а на алфавитном?
Например, для поля, принимающего кириллические буквы в нижнем регистре (а-я):
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Проверка граничных значений на алфавитном промежутке предполагает тестирование первого и последнего разрешенного символа, а также символов непосредственно до и после допустимого диапазона, если они существуют в наборе символов.
Например, для поля, принимающего кириллические буквы в нижнем регистре (а-я):
-
Нижняя граница:
- 'а' (первый разрешенный символ)
- Символ перед 'а' (если применимо и существует в используемой кодировке)
-
Верхняя граница:
- 'я' (последний разрешенный символ)
- Символ после 'я' (если применимо и существует в используемой кодировке)
Дополнительно могут проверяться:
-
Пустая строка:
"" -
Строка из одного символа: 'б' (любой символ внутри диапазона)
-
Строка из символов вне диапазона:
- Латиница: 'a', 'z'
- Цифры: '1', '9'
- Спецсимволы: '$', '#'
- Кириллица в верхнем регистре: 'А', 'Я'
-
Строка, содержащая символы как внутри, так и вне диапазона: "абвA1"
Тестирование включает отправку этих значений в поле ввода и проверку ожидаемого поведения системы: принятие разрешенных значений и отклонение (или корректная обработка) недопустимых.
Пример в коде на Python:
# Функциональность для валидации строки на кириллицу в нижнем регистре
def validate_cyrillic_lowercase(text):
import re
return bool(re.fullmatch('[а-я]+', text))
# Тестовые случаи для граничных значений
test_cases = {
"Нижняя граница (первый символ)": ('а', True),
"Нижняя граница (перед диапазоном, невалидно)": ('`', False), # Пример символа перед 'а' в некоторых кодировках
"Верхняя граница (последний символ)": ('я', True),
"Верхняя граница (после диапазона, невалидно)": ('{', False), # Пример символа после 'я' в некоторых кодировках
"Внутри диапазона": ('абв', True),
"Пустая строка": ('', False),
"Латиница": ('abc', False),
"Цифры": ('123', False),
"Спецсимволы": ('@#$', False),
"Кириллица верхний регистр": ('АБВ', False),
"Смешанная строка": ('абвA1', False)
}
# Выполнение тестов
for description, (value, expected) in test_cases.items():
actual = validate_cyrillic_lowercase(value)
assert actual == expected, f"Тест: {description}, Значение: '{value}', Ожидается: {expected}, Получено: {actual}"
print(f"Тест '{description}' для значения '{value}' пройден.")