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

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

Ответ

Тестирование формы оплаты требует проверки функциональности, безопасности и пользовательского опыта.

Пример структуры тест-кейсов:

1. Валидация полей (Positive & Negative Testing)

// Пример теста с невалидным номером карты
it('should show error for invalid Luhn-check card number', () => {
  paymentForm.fillCardNumber('1111-1111-1111-1111');
  paymentForm.submit();
  expect(paymentForm.getErrorText()).toContain('Invalid card number');
});
  • Номер карты: Валидный (проходит алгоритм Луна), невалидный, слишком короткий/длинный, нечисловые символы.
  • Срок действия: Будущая дата, истекшая дата, неверный формат (MM/YY).
  • CVV/CVC: 3-4 цифры, неверная длина, нечисловые символы.
  • Держатель карты: Кириллица/латиница, спецсимволы, пустое поле.

2. Безопасность

  • Маскирование данных: Номер карты и CVV не должны отображаться открытым текстом.
  • Защита от инъекций: Ввод HTML/JS-кода (например, <script>alert('xss')</script>) должен быть санитизирован или отклонен.
  • Отсутствие логирования чувствительных данных: CVV и полный номер карты не должны попадать в логи приложения или сервера.
  • HTTPS: Все запросы должны отправляться по защищенному протоколу.

3. Интеграция с платежным шлюзом

  • Успешный платеж с тестовыми данными (например, карта 4242 4242 4242 4242).
  • Обработка ошибок шлюза: insufficient_funds, card_declined, invalid_cvc.
  • Таймауты и недоступность шлюза.

4. UX/UI

  • Автоформатирование: Автоматическая расстановка пробелов в номере карты.
  • Переход между полями (например, по нажатию Tab или после ввода полного номера).
  • Состояние кнопки "Оплатить": Активна только при полностью валидной форме.
  • Отображение лоадера во время обработки платежа.