Ответ
Тестирование полей ввода — это комбинация проверки функциональности, удобства использования и безопасности.
Ключевые техники:
-
Проверка валидации (позитивные/негативные тесты):
- Граничные значения: Минимальная/максимальная длина, допустимые диапазоны чисел.
- Корректные/некорректные типы данных: Ввод чисел в текстовое поле, дат в неверном формате.
- Обязательность поля: Поведение при отправке пустого значения.
-
Проверка безопасности:
- SQL-инъекция: Попытка ввода
' OR '1'='1или'; DROP TABLE users;--. - XSS (Межсайтовый скриптинг): Ввод тегов
<script>alert('XSS')</script>илиjavascript:в атрибутах. - Инъекция команд:
&& dirили| cat /etc/passwd(для систем, взаимодействующих с ОС).
- SQL-инъекция: Попытка ввода
-
Проверка логики обработки:
- Тримминг пробелов: Удаляются ли пробелы в начале/конце строки?
- Обработка регистра: Чувствительно ли поле к регистру (логин/пароль)?
- Маски ввода: Корректно ли применяются маски для телефонов, кредитных карт?
-
Проверка интеграции и зависимостей:
- Условная обязательность: Поле становится обязательным только при определенных значениях другого поля.
- Валидация связей: Согласованность дат ("дата окончания" не раньше "даты начала").
Пример автоматизированной проверки на Python:
def test_email_field_validation():
# Негативные тесты
assert not is_valid_email("") # Пустое
assert not is_valid_email("user") # Нет @ и домена
assert not is_valid_email("user@") # Нет домена
# Позитивный тест
assert is_valid_email("user@example.com") # Валидный email
Важно: Сообщения об ошибках должны быть понятными пользователю и не раскрывать внутреннюю информацию системы.