Каковы ключевые аспекты тестирования банковских процессов?

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

Ответ

Тестирование финансовых систем требует повышенного внимания к безопасности, точности и надёжности.

Ключевые аспекты:

  1. Безопасность и соответствие стандартам:

    • Аутентификация и авторизация: RBAC, многофакторная аутентификация.
    • Защита данных: шифрование (TLS, шифрование в rest), защита от OWASP Top 10 (инъекции, XSS).
    • Соответствие: PCI DSS для платежей, GDPR/ФЗ-152 для персональных данных.
  2. Точность транзакций и целостность данных:

    • Корректность расчётов (проценты, комиссии, конвертация валют).
    • ACID-свойства в БД: атомарность транзакций, консистентность балансов.
    • Механизмы отката (rollback) и компенсирующих транзакций при ошибках.
    # Пример теста на недостаточность средств
    def test_account_withdrawal_insufficient_funds():
        account = Account(balance=100.00)
        result = account.withdraw(amount=200.00)
        assert result.is_success == False
        assert result.error_code == "INSUFFICIENT_FUNDS"
        assert account.balance == 100.00  # Баланс не изменился
  3. Интеграционное тестирование:

    • Работа с платёжными шлюзами, эквайрингом, системами скоринга.
    • Использование sandbox-окружений и моков для внешних API.
  4. Тестирование на граничные случаи (edge cases):

    • Одновременные транзакции с одного счёта (блокировки).
    • Обработка таймаутов и сбоев сетевых соединений.
    • Валидация ввода: отрицательные суммы, некорректные номера счетов.