Какие техники тест-дизайна применить для тестирования поля ввода email?

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

Ответ

Тестирование поля email требует комбинации техник для проверки валидации, функциональности и UX.

1. Эквивалентное Разделение и Анализ Граничных Значений:

  • Валидные классы эквивалентности: user@example.com, first.last@sub.domain.co.uk, user+tag@example.org.
  • Невалидные классы: отсутствие @ или домена, двойные точки (user..name@ex.com), спецсимволы в домене.
  • Граничные значения: длина строки (макс. 254 символа), пустая строка.

2. Тестирование Состояний и Переходов:

  • Проверить состояния поля: пустое, с валидным email, с невалидным email, в фокусе.
  • Проверить переходы: ввод символов, вставка, очистка, отправка формы.

3. Пример теста на JavaScript (Jest):

describe('Email field validation', () => {
  test('accepts valid email formats', () => {
    const validEmails = [
      'simple@example.com',
      'very.common@example.com',
      'disposable.style.email.with+symbol@example.com',
      'other.email-with-dash@example.com'
    ];
    validEmails.forEach(email => {
      expect(validateEmail(email)).toBe(true);
    });
  });

  test('rejects invalid email formats', () => {
    const invalidEmails = [
      'plainaddress',
      '@no-local-part.com',
      'user@.no-domain.com',
      'user@domain..com'
    ];
    invalidEmails.forEach(email => {
      expect(validateEmail(email)).toBe(false);
    });
  });
});

4. Дополнительные проверки:

  • Функциональность: автозаполнение, копирование/вставка.
  • UX: отображение ошибок, подсказки (placeholder).
  • Безопасность: попытка инъекции (например, SQL через локальную часть).
  • Интеграция: совпадение валидации на фронтенде и бэкенде.