Приведи пример тест-кейсов для проверки поля ввода на веб-форме

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

Ответ

Пример набора тест-кейсов для поля "Имя пользователя" с требованиями:

  • Обязательное поле.
  • Допустимы только буквы и пробелы.
  • Длина от 2 до 50 символов.

Тест-кейсы (покрывают позитивные и негативные сценарии):

Тип теста Входные данные Действие Ожидаемый результат
Позитивный Анна Ввести и отправить форму Данные принимаются, форма отправляется.
Позитивный (граница) А (2 символа) Ввести и отправить форму Данные принимаются.
Позитивный (граница) Александр Сергеевич Пушкин (50 символов) Ввести и отправить форму Данные принимаются.
Негативный (валидация) (пробел) Ввести и отправить форму Сообщение об ошибке: "Поле обязательно для заполнения".
Негативный (валидация) А (1 символ) Ввести и отправить форму Сообщение об ошибке: "Минимум 2 символа".
Негативный (валидация) А.repeat(51) (51 символ) Ввести и отправить форму Ввод обрезается до 50 символов или выводится ошибка.
Негативный (валидация) John123 Ввести и отправить форму Сообщение об ошибке: "Допустимы только буквы и пробелы".
Негативный (безопасность) <script>alert(1)</script> Ввести и отправить форму Скрипт не выполняется, данные санитизируются или отклоняются.

Пример автоматизированного теста на Cypress:

describe('Валидация поля "Имя"', () => {
  beforeEach(() => {
    cy.visit('/registration');
  });

  it('Успешно принимает корректное имя', () => {
    cy.get('#name-input').type('Мария').blur();
    cy.get('.error-message').should('not.exist');
    cy.get('#name-input').should('have.value', 'Мария');
  });

  it('Показывает ошибку при вводе цифр', () => {
    cy.get('#name-input').type('Анна1').blur();
    cy.get('.error-message')
      .should('be.visible')
      .and('contain.text', 'Допустимы только буквы и пробелы');
  });

  it('Показывает ошибку при вводе менее 2 символов', () => {
    cy.get('#name-input').type('Я').blur();
    cy.get('.error-message').should('contain.text', 'Минимум 2 символа');
  });
});

Дополнительные проверки (не функциональные):

  • Юзабилити: Подсказка (placeholder), фокус при загрузке страницы.
  • Доступность (a11y): Наличие связанного <label>, корректные ARIA-атрибуты.
  • Интеграция: Сохранение введенного значения после обновления страницы (если требуется).