Какие основные техники тестирования полей ввода данных?

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

Ответ

Тестирование полей ввода — это комбинация проверки функциональности, удобства использования и безопасности.

Ключевые техники:

  1. Проверка валидации (позитивные/негативные тесты):

    • Граничные значения: Минимальная/максимальная длина, допустимые диапазоны чисел.
    • Корректные/некорректные типы данных: Ввод чисел в текстовое поле, дат в неверном формате.
    • Обязательность поля: Поведение при отправке пустого значения.
  2. Проверка безопасности:

    • SQL-инъекция: Попытка ввода ' OR '1'='1 или '; DROP TABLE users;--.
    • XSS (Межсайтовый скриптинг): Ввод тегов <script>alert('XSS')</script> или javascript: в атрибутах.
    • Инъекция команд: && dir или | cat /etc/passwd (для систем, взаимодействующих с ОС).
  3. Проверка логики обработки:

    • Тримминг пробелов: Удаляются ли пробелы в начале/конце строки?
    • Обработка регистра: Чувствительно ли поле к регистру (логин/пароль)?
    • Маски ввода: Корректно ли применяются маски для телефонов, кредитных карт?
  4. Проверка интеграции и зависимостей:

    • Условная обязательность: Поле становится обязательным только при определенных значениях другого поля.
    • Валидация связей: Согласованность дат ("дата окончания" не раньше "даты начала").

Пример автоматизированной проверки на 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

Важно: Сообщения об ошибках должны быть понятными пользователю и не раскрывать внутреннюю информацию системы.